diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm
index 118749b8d8c..9440163b460 100644
--- a/code/game/objects/effects/portals.dm
+++ b/code/game/objects/effects/portals.dm
@@ -31,6 +31,9 @@
/obj/effect/portal/Destroy()
portals -= src
+ if(istype(creator, /obj/item/weapon/hand_tele))
+ var/obj/item/weapon/hand_tele/O = creator
+ O.active_portals--
return ..()
/obj/effect/portal/proc/teleport(atom/movable/M as mob|obj)
diff --git a/code/game/objects/structures/engicart.dm b/code/game/objects/structures/engicart.dm
index 7982316e4ad..1697fff9c48 100644
--- a/code/game/objects/structures/engicart.dm
+++ b/code/game/objects/structures/engicart.dm
@@ -25,62 +25,65 @@
return
/obj/structure/engineeringcart/attackby(obj/item/I, mob/user)
var/fail_msg = "There is already one of those in [src]."
- if(istype(I, /obj/item/stack/sheet/glass))
- if(!myglass)
- put_in_cart(I, user)
- myglass=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/stack/sheet/metal))
- if(!mymetal)
- put_in_cart(I, user)
- mymetal=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/stack/sheet/plasteel))
- if(!myplasteel)
- put_in_cart(I, user)
- myplasteel=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/device/flashlight))
- if(!myflashlight)
- put_in_cart(I, user)
- myflashlight=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/weapon/storage/toolbox/mechanical))
- if(!mybluetoolbox)
- put_in_cart(I, user)
- mybluetoolbox=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/weapon/storage/toolbox/electrical))
- if(!myyellowtoolbox)
- put_in_cart(I, user)
- myyellowtoolbox=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/weapon/storage/toolbox))
- if(!myredtoolbox)
- put_in_cart(I, user)
- myredtoolbox=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/taperoll/engineering/))
- if(!myengitape)
- put_in_cart(I, user)
- myengitape=I
- update_icon()
- else
- user << fail_msg
+ if(!I.is_robot_module())
+ if(istype(I, /obj/item/stack/sheet/glass))
+ if(!myglass)
+ put_in_cart(I, user)
+ myglass=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/stack/sheet/metal))
+ if(!mymetal)
+ put_in_cart(I, user)
+ mymetal=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/stack/sheet/plasteel))
+ if(!myplasteel)
+ put_in_cart(I, user)
+ myplasteel=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/device/flashlight))
+ if(!myflashlight)
+ put_in_cart(I, user)
+ myflashlight=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/weapon/storage/toolbox/mechanical))
+ if(!mybluetoolbox)
+ put_in_cart(I, user)
+ mybluetoolbox=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/weapon/storage/toolbox/electrical))
+ if(!myyellowtoolbox)
+ put_in_cart(I, user)
+ myyellowtoolbox=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/weapon/storage/toolbox))
+ if(!myredtoolbox)
+ put_in_cart(I, user)
+ myredtoolbox=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/taperoll/engineering/))
+ if(!myengitape)
+ put_in_cart(I, user)
+ myengitape=I
+ update_icon()
+ else
+ user << fail_msg
+ else
+ usr << "You cannot interface your modules [src]!"
/obj/structure/engineeringcart/attack_hand(mob/user)
user.set_machine(src)
diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm
index b51ff8b2f79..9ca2d7cbdb4 100644
--- a/code/game/objects/structures/janicart.dm
+++ b/code/game/objects/structures/janicart.dm
@@ -445,50 +445,53 @@
/obj/structure/janitorialcart/attackby(obj/item/I, mob/user)
var/fail_msg = "There is already one of those in [src]."
- if(istype(I, /obj/item/weapon/mop))
- var/obj/item/weapon/mop/m=I
- if(m.reagents.total_volume < m.reagents.maximum_volume)
- wet_mop(m, user)
- return
- if(!mymop)
- m.janicart_insert(user, src)
- else
- user << fail_msg
+ if(!I.is_robot_module())
+ if(istype(I, /obj/item/weapon/mop))
+ var/obj/item/weapon/mop/m=I
+ if(m.reagents.total_volume < m.reagents.maximum_volume)
+ wet_mop(m, user)
+ return
+ if(!mymop)
+ m.janicart_insert(user, src)
+ else
+ user << fail_msg
- else if(istype(I, /obj/item/weapon/storage/bag/trash))
- if(!mybag)
- var/obj/item/weapon/storage/bag/trash/t=I
- t.janicart_insert(user, src)
- else
- user << fail_msg
- else if(istype(I, /obj/item/weapon/reagent_containers/spray/cleaner))
- if(!myspray)
- put_in_cart(I, user)
- myspray=I
- update_icon()
- else
- user << fail_msg
- else if(istype(I, /obj/item/device/lightreplacer))
- if(!myreplacer)
- var/obj/item/device/lightreplacer/l=I
- l.janicart_insert(user,src)
- else
- user << fail_msg
- else if(istype(I, /obj/item/weapon/caution))
- if(signs < max_signs)
- put_in_cart(I, user)
- signs++
- update_icon()
- else
- user << "[src] can't hold any more signs."
- else if(mybag)
- mybag.attackby(I, user)
- else if(istype(I, /obj/item/weapon/crowbar))
- user.visible_message("[user] begins to empty the contents of [src].")
- if(do_after(user, 30))
- usr << "You empty the contents of [src]'s bucket onto the floor."
- reagents.reaction(src.loc)
- src.reagents.clear_reagents()
+ else if(istype(I, /obj/item/weapon/storage/bag/trash))
+ if(!mybag)
+ var/obj/item/weapon/storage/bag/trash/t=I
+ t.janicart_insert(user, src)
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/weapon/reagent_containers/spray/cleaner))
+ if(!myspray)
+ put_in_cart(I, user)
+ myspray=I
+ update_icon()
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/device/lightreplacer))
+ if(!myreplacer)
+ var/obj/item/device/lightreplacer/l=I
+ l.janicart_insert(user,src)
+ else
+ user << fail_msg
+ else if(istype(I, /obj/item/weapon/caution))
+ if(signs < max_signs)
+ put_in_cart(I, user)
+ signs++
+ update_icon()
+ else
+ user << "[src] can't hold any more signs."
+ else if(mybag)
+ mybag.attackby(I, user)
+ else if(istype(I, /obj/item/weapon/crowbar))
+ user.visible_message("[user] begins to empty the contents of [src].")
+ if(do_after(user, 30))
+ usr << "You empty the contents of [src]'s bucket onto the floor."
+ reagents.reaction(src.loc)
+ src.reagents.clear_reagents()
+ else
+ usr << "You cannot interface your modules [src]!"
/obj/structure/janitorialcart/attack_hand(mob/user)
user.set_machine(src)
diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm
index 76a1b525247..d6e8c0595fd 100644
--- a/maps/cyberiad.dmm
+++ b/maps/cyberiad.dmm
@@ -2351,7 +2351,7 @@
"aTk" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{_color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aTl" = (/obj/item/weapon/lighter/random,/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar)
"aTm" = (/obj/structure/stool,/turf/simulated/floor/wood,/area/maintenance/abandonedbar)
-"aTn" = (/obj/item/weapon/shard,/obj/item/stack/rods,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
+"aTn" = (/obj/item/weapon/shard,/obj/item/stack/rods,/obj/item/weapon/airlock_electronics,/turf/simulated/floor/plating{dir = 9; icon_regular_floor = "escape"},/area/maintenance/abandonedbar)
"aTo" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "escape"},/area/maintenance/abandonedbar)
"aTp" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/library)
"aTq" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/library)
@@ -2445,7 +2445,7 @@
"aVa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics)
"aVb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics)
"aVc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics)
-"aVd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
+"aVd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating{dir = 5; icon_regular_floor = "escape"},/area/maintenance/abandonedbar)
"aVe" = (/obj/machinery/vending/autodrobe,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
"aVf" = (/obj/structure/table/woodentable,/obj/item/trash/plate,/turf/simulated/floor/wood,/area/maintenance/abandonedbar)
"aVg" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/patron,/obj/item/weapon/storage/fancy/cigarettes/cigpack_shadyjims,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
@@ -2516,7 +2516,7 @@
"aWt" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/grass,/area/hydroponics)
"aWu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area)
"aWv" = (/obj/machinery/atmospherics/pipe/simple{_color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Hydroponics"; req_access_txt = "35"},/turf/simulated/floor,/area/hydroponics)
-"aWw" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
+"aWw" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating{dir = 4; icon_regular_floor = "escape"},/area/maintenance/abandonedbar)
"aWx" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/library)
"aWy" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/library)
"aWz" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office)
@@ -2740,7 +2740,7 @@
"baJ" = (/obj/machinery/newscaster{pixel_x = 27; pixel_y = 1},/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
"baK" = (/obj/structure/bookcase{name = "bookcase (Fiction)"},/turf/simulated/floor/wood,/area/library)
"baL" = (/obj/structure/bookcase{name = "bookcase (Non-Fiction)"},/turf/simulated/floor/wood,/area/library)
-"baM" = (/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
+"baM" = (/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating{dir = 4; icon_regular_floor = "whitecorner"},/area/maintenance/abandonedbar)
"baN" = (/obj/machinery/door/morgue{dir = 2; name = "Private Study"; req_access_txt = "37"},/turf/simulated/floor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/library)
"baO" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
"baP" = (/turf/simulated/floor/carpet,/area/chapel/main)
@@ -2946,7 +2946,7 @@
"beH" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hydroponics)
"beI" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/hydroponics)
"beJ" = (/obj/item/trash/cheesie,/turf/simulated/floor{icon_state = "whitehall"; dir = 5},/area/maintenance/abandonedbar)
-"beK" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
+"beK" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "escape"},/area/maintenance/abandonedbar)
"beL" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Library APC"; pixel_x = -25},/turf/simulated/floor/carpet,/area/library)
"beM" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/library)
"beN" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/wood,/area/library)
@@ -12525,7 +12525,7 @@
"eGS" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
"eGT" = (/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"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/engiestation/solars)
"eGU" = (/obj/structure/table/woodentable,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/storage/pill_bottle/random_drug_bottle,/turf/simulated/floor{dir = 10; icon_state = "purple"},/area/maintenance/abandonedbar)
-"eGV" = (/obj/item/weapon/stool,/turf/simulated/floor/plating,/area/maintenance/abandonedbar)
+"eGV" = (/obj/item/weapon/stool,/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "purplecorner"},/area/maintenance/abandonedbar)
"eGW" = (/obj/machinery/door/airlock/glass_research{name = "Telescience Pad"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/engine,/area/toxins/telesci)
"eGX" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "7"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
"eGY" = (/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes{charge = 1e+006},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering)
@@ -12652,7 +12652,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaEUaEVaEWaEXaDeaDeaDeaDfaEYaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaiaEZaFaaFbaaiaEoaaiaFcaFdaFeaFfaFgaaiaEpayVayVayVayVaFhaFiaFjaFkaFkaFkaFkaFlaFkaFmaFnaFoaFkaFkaFpaFpaFqaFraFsaFtabIaFuaouaFvaEwaEwaaqaCIaCJaDNaFwaFxaFyaDNaCJaCJaFzaFAaEBaFBaFCaCJaCJaFDaFEaCJaCJaCJaCJaFFaFGaFHaFIaCJaFJaFKaAwaAwaAwaAwaAwaFKaFLaEPaEQaaaaFMaaaaaaaaaaaaaaaaaaaaqaaqaJFaKtaJDaKuaKvaLzaJEaJDaaqaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaFPaFQaFRaFSaDeaDeaDeaDfaFTaaiaFUaFVaFWaFXaFYaaiaaiaaiaaiaaiaaiaFZaamaaiaEoaaiaFgaGaaGbaFgaFgaaiaGcaGdaGdaGdaGdaGeaGfaaiaaiaaiaaiafbabnaaiaGgaaiafjafbaaiaaiaaiaaiaGhaGiaGjaGkaGlaDKaGmbsTaEwaGnaCIaCJaDNaGoaExaExaDNaCJaCJaCJaGpaGqaGraGsaCJaCJaFDaGtaGuaGvaGvaGvaGwaCJaCJaDSaCJaGxaGyaAwaAwaAwaAwaAwaGzaZmaGBaFKaGCaGDaGCaaaaaaaaaaaqaaqaaqaIPaKuaLBaKuaLBaMEaKuaKuaKuaMDaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaGGaGHaEWaEXaDeaDeaDeaDfaEYaaiaGIaGJaGKaGLaGMaaiaGNaGOaGPaGPaGPaGQaGPaGPaEoaaiaGRaGSaGTaGUbEZaaiaGVaGWaGVaGVayVayVaDsaaiaGXaGYaGZaHaaHbbJTaHdaHeaHfaHgaHhaGYaHiaaiaHjavVaHkaaqaHlaouaHmaHnaHnaHoaHpaHqaHraHsaHsaHtaHuaEFaHvaHuaHuaHwaHxaHyaCJaCJaHzaHAaHBaHCaHCaHCaHDaHEaFHaDSaCJaHFaHGaAwaAwaAwaAwaAwaHHaaiaaiaaiaATaHIaATaaaaaaaaqaaqaVeaaqaTnaToaVdaTlaKuaKuaTmaVfaKuaVgaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaHMaHNaHOaHPaDeaDeaDeaDfaEYaaiaHQaHRaHSaHTaHUaaqaHVaHWaHXaHYaHYaHZaDlaDlaIaaaiaFgaGaaIbaFgaFgaaiaIcayVaIdaGVayVayVaDsaaiaIeaIeaIfaIgaIhaIiaIjaIiaIkaIlaImaInaInaaiaHjavVaIoaaqaHlaouaEwaBhaBiaaqaCIaIpaIqaIraIsaItaItaIuaIvaItaIvaIwaIxaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaaqaIIaIJaIIaaqaIKaAwaAwaAwaAwaAwaILaaiaabaoJaCoaIMaINazTaaaaaqaWwbeJbbWbdpaZlbaMaKuaKuaKuaZkaXQaKuaMFaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaEhaEhaEhaEhaEhaEhaEhaEhaHMaHNaHOaHPaDeaDeaDeaDfaEYaaiaHQaHRaHSaHTaHUaaqaHVaHWaHXaHYaHYaHZaDlaDlaIaaaiaFgaGaaIbaFgaFgaaiaIcayVaIdaGVayVayVaDsaaiaIeaIeaIfaIgaIhaIiaIjaIiaIkaIlaImaInaInaaiaHjavVaIoaaqaHlaouaEwaBhaBiaaqaCIaIpaIqaIraIsaItaItaIuaIvaItaIvaIwaIxaIyaIzaIAaIBaICaIDaIEaIFaIGaIHaaqaIIaIJaIIaaqaIKaAwaAwaAwaAwaAwaILaaiaabaoJaCoaIMaINazTaaaaaqbaMbeJbbWbdpaZlaWwaKuaKuaKuaZkaXQaKuaMFaaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMaaiaaiaaiaaiaaiaaiaaiaDbaIRaISaaiaDbaIRaISaaiaaiaaiaaiaITaDeaDeaDeaDeaDfaIUaaiaIVaIWbLIaIYaIZaaqaJaaGPaEoaJbaGPaGPaGPaJcaJdaaiaJeaJfaJgaJhaFgaaiayVayVaJiaGVayVayVaDsaaiaaiaaiaaiaJjaJkaGYaJlaGYaJkaJmaaiaaiaaiaaiaHjavVaJnaaqaHlaouaDLaBhaBiaaqaJoaJpaaqaaqaaqaaqaaqaaqaaqaJqaaqaaqaaqaaqaaqaaqaJraaqaJsaJtaJtaJtaJuaaqaJvaJwaJxaaqaIKaAwaAwaAwaAwaAwaILaaiaaaaaiaJyaJzaJAaaiaaaaaqcEYeGRaaqbeKbArbLLbdqcCFblabmZeGSaLBaaqaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaJGaJHaJIaAGaAGaJJaJKaAGaAGaJLaJMaJNaaiaCZaJOaEjaDeaDeaDeaDfaEYaaiaaqaaqaouaJPaaqaaqaJaaGPaEoaaiaaiaaiaaiaaiaaiaaiaaiabnaJQaaiaaiaaiaaiaaiaaiaaiaaiaaiaDsaaiaJRaJRaIfaJSaJTaIiaIjaIiaJTaJUaJVaJWaJXaaiaHjavVaHkaaqaJYaAlaJZaBhaBiaaqaKaaJpaaqaKbaKcaKdaKdaaqaKeaKcaKfaaqaKgaKhaKiaaqaKjaaqaJsaJtaJtaJtaJuaaqaKkaKlaKmaaqaKnaKoaKoaKoaKoaKoaKpaaaaaaaaiaKqaKraKsaaiaaaaaqeGUeGVaaqaaqaaqaaqaaqbWwaaqaaqaaqaaqaaqaaqaaiaaiaaiaaiaaiaaiaaiaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDbaKwaKxaDeaDeaDeaDeaKyaDeaDeaDeaKyaDeaKzaKAaKBaKCaKDaKEaKEaKEaKFaEYaaiaKGaKHaKIaKJaaqaaqaKKaGPaEoaaiaKLaKMaKNaKMaKOaaiaKPaKQaKRaKSaKTaaiaKUaKUaKVaKUaKWaaiaDsaaiaGXaGYaKXaKYaJkaGYaKZaGYaJkaLaaLbaGYaHiaaiaHjavVaLcaaqaHlaCGaCHaBhaBiaaqaLdaLeaaqaLfaKcaKcaKcaLgaLhaLiaLjaaqaLkaLlaLmaLnaLoaaqaLpaLqaLraLqaLsaaqaLtaLuaLvaaiaaaaaaaaaaaaaabaaaaaaaaaaaaaaiaLwaLxaLyaaiaMGaaqaaqaaqaaqaLCaLDaLEaLEaMJaLEaOlaLEaMKaLHaLHaLIaLHaLHaLHaLHaLJaLKaLLaaiaLMaaiaaaacEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa