diff --git a/code/WorkInProgress/Chemistry-Reagents.dm b/code/WorkInProgress/Chemistry-Reagents.dm
index baf05dd7790..b4647b65d1b 100644
--- a/code/WorkInProgress/Chemistry-Reagents.dm
+++ b/code/WorkInProgress/Chemistry-Reagents.dm
@@ -1054,7 +1054,7 @@ datum
return
imidazoline
- name = "imidazoline"
+ name = "Imidazoline"
id = "imidazoline"
description = "Heals eye damage"
reagent_state = LIQUID
@@ -1516,7 +1516,7 @@ datum
return
banana
- name = "Essence of Banana"
+ name = "Banana Juice"
id = "banana"
description = "The raw essence of a banana. HONK"
nutriment_factor = 1 * REAGENTS_METABOLISM
@@ -1951,6 +1951,26 @@ datum
..()
return
+ carrotjuice
+ name = "Carrot juice"
+ id = "carrotjuice"
+ description = "It is just like a carrot but without crunching."
+ reagent_state = LIQUID
+ nutriment_factor = 0.3 * REAGENTS_METABOLISM
+ on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ M:eye_blurry = max(M:eye_blurry-1 , 0)
+ M:eye_blind = max(M:eye_blind-1 , 0)
+ if(!data) data = 1
+ switch(data)
+ if(1 to 20)
+ //nothing
+ if(21 to INFINITY)
+ if (prob(data-10))
+ M:disabilities &= ~1
+ data++
+ ..()
+ return
kahlua
name = "Kahlua"
@@ -2496,3 +2516,22 @@ datum
M.confused = max(M:confused+2,0)
..()
return
+
+ bahama_mama
+ name = "Bahama mama"
+ id = "bahama_mama"
+ description = "Tropic cocktail."
+ reagent_state = LIQUID
+ on_mob_life(var/mob/living/M as mob)
+ if(!data) data = 1
+ data++
+ M.dizziness +=3
+ if(data >= 55 && data <165)
+ if (!M.stuttering) M.stuttering = 1
+ M.stuttering += 3
+ else if(data >= 165 && prob(33))
+ M.confused = max(M:confused+2,0)
+ if (M.bodytemperature > 310)
+ M.bodytemperature = max(310, M.bodytemperature-5)
+ ..()
+ return
diff --git a/code/WorkInProgress/Chemistry-Recipes.dm b/code/WorkInProgress/Chemistry-Recipes.dm
index d2be1d89e1b..e3913ff3422 100644
--- a/code/WorkInProgress/Chemistry-Recipes.dm
+++ b/code/WorkInProgress/Chemistry-Recipes.dm
@@ -509,8 +509,8 @@ datum
name = "Soy Sauce"
id = "soysauce"
result = "soysauce"
- required_reagents = list("soymilk" = 1, "acid" = 1)
- result_amount = 2
+ required_reagents = list("soymilk" = 4, "acid" = 1)
+ result_amount = 5
cheesewheel
name = "Cheesewheel"
@@ -750,4 +750,11 @@ datum
id = "ginfizz"
result = "ginfizz"
required_reagents = list("gin" = 2, "sodawater" = 1, "limejuice" = 1)
- result_amount = 5
\ No newline at end of file
+ result_amount = 5
+
+ bahama_mama
+ name = "Bahama mama"
+ id = "bahama_mama"
+ result = "bahama_mama"
+ required_reagents = list("rum" = 2, "orangejuice" = 2, "limejuice" = 1, "ice" = 1)
+ result_amount = 5
diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm
index a7db98acd36..7b594ce7add 100644
--- a/code/WorkInProgress/Chemistry-Tools.dm
+++ b/code/WorkInProgress/Chemistry-Tools.dm
@@ -2474,8 +2474,20 @@
desc = "White and nutritious soy goodness!"
if("berryjuice")
icon_state = "berryjuice"
- name = "Glass berry joice"
+ name = "Glass of berry juice"
desc = "Berry juice. Or maybe its jam. Who cares?"
+ if("carrotjuice")
+ icon_state = "carrotjuice"
+ name = "Glass of carrot juice"
+ desc = "It is just like a carrot but without crunching."
+ if("banana")
+ icon_state = "banana"
+ name = "Glass of banana juice"
+ desc = "The raw essence of a banana. HONK"
+ if("bahama_mama")
+ icon_state = "bahama_mama"
+ name = "Bahama Mama"
+ desc = "Tropic cocktail"
else
icon_state ="glass_brown"
name = "Glass of ..what?"
diff --git a/code/defines/obj/hydro.dm b/code/defines/obj/hydro.dm
index 1daed768afa..e6cc3cce052 100644
--- a/code/defines/obj/hydro.dm
+++ b/code/defines/obj/hydro.dm
@@ -62,6 +62,7 @@
maturation = 5
production = 5
yield = 2
+ potency = 10
plant_type = 0
growthstages = 6
@@ -107,6 +108,7 @@
maturation = 8
production = 6
yield = 2
+ potency = 10
plant_type = 0
growthstages = 6
@@ -221,7 +223,7 @@
maturation = 10
production = 1
yield = 4
- potency = 0
+ potency = 10
oneharvest = 1
plant_type = 0
growthstages = 5
@@ -460,10 +462,9 @@
var/potency = -1
var/plant_type = 0
icon = 'harvest.dmi'
- var/poison_amt = 0
- var/drug_amt = 0
- var/heat_amt = 0
- New()
+ New(newloc,newpotency)
+ if (!isnull(newpotency))
+ potency = newpotency
..()
src.pixel_x = rand(-5.0, 5)
src.pixel_y = rand(-5.0, 5)
@@ -485,11 +486,6 @@
user << "- Production speed: \blue [production]"
user << "- Endurance: \blue [endurance]"
user << "- Healing properties: \blue [reagents.get_reagent_amount("nutriment")]"
- user << "- Amatoxins: \blue [poison_amt]%"
- user << "- Psilocybin: \blue [drug_amt]%"
- user << "- Capsaicin: \blue [heat_amt]%"
- user << ""
-
return
/obj/item/weapon/grown/attackby(var/obj/item/O as obj, var/mob/user as mob)
@@ -554,6 +550,7 @@
name = "Berries"
desc = "Nutritious!"
icon_state = "berrypile"
+ potency = 10
New()
..()
reagents.add_reagent("nutriment", 2)
@@ -566,9 +563,14 @@
New()
..()
reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("capsaicin", max(round(heat_amt / 5, 1), 4))
+ reagents.add_reagent("capsaicin", max(round(potency / 5, 1), 4))
bitesize = max(round(reagents.total_volume / 2, 1), 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/chili/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ . = ..()
+ if (istype(O, /obj/item/device/analyzer/plant_analyzer))
+ user << "- Capsaicin: \blue [reagents.get_reagent_amount("capsaicin")]%"
+
/obj/item/weapon/reagent_containers/food/snacks/grown/eggplant
seed = "/obj/item/seeds/eggplantseed"
name = "Eggplant"
@@ -592,6 +594,7 @@
name = "Tomato"
desc = "Tom-mae-to or to-mah-to? You decide."
icon_state = "tomato"
+ potency = 10
New()
..()
reagents.add_reagent("nutriment", 2)
@@ -614,18 +617,24 @@
New()
..()
reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("frostoil", max(round(heat_amt / 5, 1), 4))
+ reagents.add_reagent("frostoil", max(round(potency / 5, 1), 4))
bitesize = max(round(reagents.total_volume / 2, 1), 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/icepepper/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ . = ..()
+ if (istype(O, /obj/item/device/analyzer/plant_analyzer))
+ user << "- Frostoil: \blue [reagents.get_reagent_amount("frostoil")]%"
+
/obj/item/weapon/reagent_containers/food/snacks/grown/carrot
seed = "/obj/item/seeds/carrotseed"
name = "Carrot"
desc = "Good for the eyes!"
icon_state = "carrot"
+ potency = 10
New()
..()
reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("imidazoline", 2)
+ reagents.add_reagent("imidazoline", max(round(potency / 5, 1), 4))
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita
seed = "/obj/item/seeds/amanitamycelium"
@@ -636,10 +645,16 @@
New()
..()
reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("amatoxin", max(poison_amt, 4))
- reagents.add_reagent("psilocybin", max(drug_amt, 1))
+ reagents.add_reagent("amatoxin", max(round(potency * 0.4, 1), 4))
+ reagents.add_reagent("psilocybin", max(round(potency / 25, 1), 1))
bitesize = max(round(reagents.total_volume / 2, 1), 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/amanita/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ . = ..()
+ if (istype(O, /obj/item/device/analyzer/plant_analyzer))
+ user << "- Amatoxins: \blue [reagents.get_reagent_amount("amatoxin")]%"
+ user << "- Psilocybin: \blue [reagents.get_reagent_amount("psilocybin")]%"
+
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel
seed = "/obj/item/seeds/angelmycelium"
name = "Destroying angel"
@@ -649,10 +664,16 @@
New()
..()
reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("amatoxin", max(poison_amt, 14))
- reagents.add_reagent("psilocybin", max(drug_amt, 1))
+ reagents.add_reagent("amatoxin", max(round(potency * 0.4, 1), 14))
+ reagents.add_reagent("psilocybin", max(round(potency / 25, 1), 1))
bitesize = max(round(reagents.total_volume / 2, 1), 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/angel/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ . = ..()
+ if (istype(O, /obj/item/device/analyzer/plant_analyzer))
+ user << "- Amatoxins: \blue [reagents.get_reagent_amount("amatoxin")]%"
+ user << "- Psilocybin: \blue [reagents.get_reagent_amount("psilocybin")]%"
+
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap
seed = "/obj/item/seeds/libertymycelium"
name = "Liberty cap"
@@ -662,9 +683,14 @@
New()
..()
reagents.add_reagent("nutriment", 2)
- reagents.add_reagent("psilocybin", max(drug_amt, 4))
+ reagents.add_reagent("psilocybin", max(round(potency / 5, 1), 4))
bitesize = max(round(reagents.total_volume / 2), 1)
+/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ . = ..()
+ if (istype(O, /obj/item/device/analyzer/plant_analyzer))
+ user << "- Psilocybin: \blue [reagents.get_reagent_amount("psilocybin")]%"
+
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/plumphelmet
seed = "/obj/item/seeds/plumpmycelium"
name = "Plump Helmet"
diff --git a/code/defines/obj/machinery.dm b/code/defines/obj/machinery.dm
index 44eed315d59..a185b21be46 100644
--- a/code/defines/obj/machinery.dm
+++ b/code/defines/obj/machinery.dm
@@ -443,14 +443,14 @@
use_power = 1
idle_power_usage = 10
active_power_usage = 2000
-
+/*
/obj/machinery/wire
name = "wire"
icon = 'power_cond.dmi'
use_power = 1
idle_power_usage = 0
active_power_usage = 1
-
+*/
/obj/machinery/power
name = null
icon = 'power.dmi'
@@ -586,48 +586,6 @@
var/otherarea = null
var/id = 1
-/obj/machinery/microwave
- name = "Microwave"
- icon = 'kitchen.dmi'
- icon_state = "mw"
- layer = 2.9
- density = 1
- anchored = 1
- use_power = 1
- idle_power_usage = 5
- active_power_usage = 100
- flags = OPENCONTAINER | NOREACT
-
-
-/obj/machinery/processor
- name = "Food Processor"
- icon = 'kitchen.dmi'
- icon_state = "processor"
- layer = 2.9
- density = 1
- anchored = 1
- var/broken = 0
- var/processing = 0
- use_power = 1
- idle_power_usage = 5
- active_power_usage = 50
-
-
-/obj/machinery/gibber
- name = "Gibber"
- desc = "The name isn't descriptive enough?"
- icon = 'kitchen.dmi'
- icon_state = "grinder"
- density = 1
- anchored = 1
- var/operating = 0 //Is it on?
- var/dirty = 0 // Does it need cleaning?
- var/gibtime = 40 // Time from starting until meat appears
- var/mob/occupant // Mob who has been put inside
- use_power = 1
- idle_power_usage = 2
- active_power_usage = 50
-
/obj/machinery/holopad
name = "holopad"
desc = "A floor-mounted device for projecting AI holograms."
@@ -637,4 +595,4 @@
var/slave_holo = null
use_power = 1
idle_power_usage = 5
- active_power_usage = 100
\ No newline at end of file
+ active_power_usage = 100
diff --git a/code/defines/procs/statistics.dm b/code/defines/procs/statistics.dm
index dda6e43a00c..d73962fcd91 100644
--- a/code/defines/procs/statistics.dm
+++ b/code/defines/procs/statistics.dm
@@ -120,7 +120,7 @@ proc/sql_report_death(var/mob/living/carbon/human/H)
return
if(!H)
return
- if(!H.client || !H.mind)
+ if(!H.key || !H.mind)
return
var/turf/T = H.loc
@@ -157,7 +157,7 @@ proc/sql_report_cyborg_death(var/mob/living/silicon/robot/H)
return
if(!H)
return
- if(!H.client || !H.mind)
+ if(!H.key || !H.mind)
return
var/turf/T = H.loc
@@ -196,4 +196,4 @@ proc/statistic_cycle()
sql_poll_players()
sleep(600)
sql_poll_admins()
- sleep(6000) // Poll every ten minutes
\ No newline at end of file
+ sleep(6000) // Poll every ten minutes
diff --git a/code/game/machinery/gibber.dm b/code/game/machinery/gibber.dm
deleted file mode 100644
index e1ea84b21b5..00000000000
--- a/code/game/machinery/gibber.dm
+++ /dev/null
@@ -1,132 +0,0 @@
-/obj/machinery/gibber/New()
- ..()
- src.overlays += image('kitchen.dmi', "grindnotinuse")
-
-/obj/machinery/gibber/attack_paw(mob/user as mob)
- return src.attack_hand(user)
-
-/obj/machinery/gibber/relaymove(mob/user as mob)
- src.go_out()
- return
-
-/obj/machinery/gibber/attack_hand(mob/user as mob)
- if(operating)
- user << "\red It's locked and running"
- return
- else
- src.startgibbing(user)
-
-/obj/machinery/gibber/attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
- if(src.occupant)
- user << "\red The gibber is full, empty it first!"
- return
- if (!( istype(G, /obj/item/weapon/grab)) || !(istype(G.affecting, /mob/living/carbon/human)))
- user << "\red This item is not suitable for the gibber!"
- return
- if(G.affecting.abiotic())
- user << "\red Subject may not have abiotic items on."
- return
-
- user.visible_message("\red [user] starts to put [G.affecting] into the gibber!")
- src.add_fingerprint(user)
- sleep(30)
- if(G)
- if(G.affecting)
- user.visible_message("\red [user] stuffs [G.affecting] into the gibber!")
- var/mob/M = G.affecting
- if(M.client)
- M.client.perspective = EYE_PERSPECTIVE
- M.client.eye = src
- M.loc = src
- src.occupant = M
- del(G)
-
-/obj/machinery/gibber/verb/eject()
- set category = "Object"
- set name = "Empty Gibber"
- set src in oview(1)
-
- if (usr.stat != 0)
- return
- src.go_out()
- add_fingerprint(usr)
- return
-
-/obj/machinery/gibber/proc/go_out()
- if (!src.occupant)
- return
- for(var/obj/O in src)
- O.loc = src.loc
- if (src.occupant.client)
- src.occupant.client.eye = src.occupant.client.mob
- src.occupant.client.perspective = MOB_PERSPECTIVE
- src.occupant.loc = src.loc
- src.occupant = null
- return
-
-
-/obj/machinery/gibber/proc/startgibbing(mob/user as mob)
- if(src.operating)
- return
- if(!src.occupant)
- for(var/mob/M in viewers(src, null))
- M.show_message("\red You hear a loud metallic grinding sound.", 1)
- return
- else
- for(var/mob/M in viewers(src, null))
- M.show_message("\red You hear a loud squelchy grinding sound.", 1)
- src.operating = 1
- src.dirty += 1
- var/sourcename = src.occupant.real_name
- var/sourcejob = src.occupant.job
- var/sourcenutriment = src.occupant.nutrition / 15
- var/sourcetotalreagents = src.occupant.reagents.total_volume
- var/totalslabs = 3
-
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat1 = new
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat2 = new
- var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat3 = new
-
- newmeat1.name = sourcename + newmeat1.name
- newmeat1.subjectname = sourcename
- newmeat1.subjectjob = sourcejob
- newmeat1.reagents.add_reagent ("nutriment", sourcenutriment / totalslabs) // Thehehe. Fat guys go first
- src.occupant.reagents.trans_to (newmeat1, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the body to meat
- newmeat2.name = sourcename + newmeat2.name
- newmeat2.subjectname = sourcename
- newmeat2.subjectjob = sourcejob
- newmeat2.reagents.add_reagent ("nutriment", sourcenutriment / totalslabs)
- src.occupant.reagents.trans_to (newmeat2, round (sourcetotalreagents / totalslabs, 1))
- newmeat3.name = sourcename + newmeat3.name
- newmeat3.subjectname = sourcename
- newmeat3.subjectjob = sourcejob
- newmeat3.reagents.add_reagent ("nutriment", sourcenutriment / totalslabs)
- src.occupant.reagents.trans_to (newmeat3, round (sourcetotalreagents / totalslabs, 1))
- if(src.occupant.client)
- var/mob/dead/observer/newmob
- newmob = new/mob/dead/observer(src.occupant)
- src.occupant:client:mob = newmob
- newmob:client:eye = newmob
- del(src.occupant)
- else
- del(src.occupant)
- spawn(src.gibtime)
- playsound(src.loc, 'splat.ogg', 50, 1)
- operating = 0
- var/turf/Tx1 = locate(src.x - 1, src.y, src.z)
- var/turf/Tx2 = locate(src.x - 2, src.y, src.z)
- var/turf/Tx3 = locate(src.x - 3, src.y, src.z)
- if(istype(Tx1, /turf/simulated/floor/)) // Make it so the blood that flies out only appears on the freezer floor
- new /obj/decal/cleanable/blood/gibs(Tx1)
- newmeat1.loc = get_turf(Tx1)
- if(istype(Tx2, /turf/simulated/floor/))
- new /obj/decal/cleanable/blood/gibs(Tx2)
- newmeat2.loc = get_turf(Tx2)
- if(istype(Tx3, /turf/simulated/floor/))
- new /obj/decal/cleanable/blood/gibs(Tx3)
- newmeat3.loc = get_turf(Tx3)
- if(src.dirty == 1)
- src.overlays += image('kitchen.dmi', "grindbloody")
- src.operating = 0
-
-
diff --git a/code/game/machinery/hydroponics.dm b/code/game/machinery/hydroponics.dm
index 6fcf2379ee2..2ed7a40b7c4 100644
--- a/code/game/machinery/hydroponics.dm
+++ b/code/game/machinery/hydroponics.dm
@@ -678,7 +678,7 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
new item(user.loc)
t_amount++
else
- var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new item(user.loc) // User gets a consumable
+ var/obj/item/weapon/reagent_containers/food/snacks/grown/t_prod = new item(user.loc, src.myseed.potency) // User gets a consumable
t_prod.seed = src.myseed.mypath
t_prod.species = src.myseed.species
t_prod.lifespan = src.myseed.lifespan
@@ -688,13 +688,6 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
t_prod.yield = src.myseed.yield
t_prod.potency = src.myseed.potency
t_prod.plant_type = src.myseed.plant_type
- if(src.myseed.species == "amanita" || src.myseed.species == "angel")
- t_prod.poison_amt = round(src.myseed.potency * 0.4, 1) // Potency translates to poison amount
- t_prod.drug_amt = round(src.myseed.potency / 25, 1) // Small trip
- else if(src.myseed.species == "liberty")
- t_prod.drug_amt = round(src.myseed.potency / 5, 1) // TRIP TIME
- else if(src.myseed.species == "chili" || src.myseed.species == "chiliice")
- t_prod.heat_amt = src.myseed.potency // BRING ON THE HEAT //BUG: heat_amt not used at all
t_amount++
src.harvest = 0
src.lastproduce = src.age
diff --git a/code/game/machinery/blender.dm b/code/game/machinery/kitchen/blender.dm
similarity index 79%
rename from code/game/machinery/blender.dm
rename to code/game/machinery/kitchen/blender.dm
index 761e2e73427..c35424eb084 100644
--- a/code/game/machinery/blender.dm
+++ b/code/game/machinery/kitchen/blender.dm
@@ -78,28 +78,27 @@ the blender or the processor: Processor items are solid objects and Blender resu
if (src.stat != 0) //NOPOWER etc
return
if(src.processing)
- usr << "The blender is in the process of blending."
- else if(!src.container)
- usr << "The blender doesn't have an attached container!"
- else
- playsound(src.loc, 'blender.ogg', 50, 1)
- src.processing = 1
- usr << "You turn on the blender."
- use_power(50)
- for(var/obj/O in src.contents)
- if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/berries))
- src.reagents.add_reagent("berryjuice", 5)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans))
- src.reagents.add_reagent("soymilk", 5)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato))
- src.reagents.add_reagent("ketchup", 5)
- else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/corn))
- src.reagents.add_reagent("cornoil", 5)
- if(istype(O, /obj/item/weapon/reagent_containers/food/snacks)) //This is intentionally not an "else if"
- O.reagents.trans_to(src, O.reagents.total_volume) //Think of it as the "pulp" leftover.
- del(O)
- src.processing = 0
- usr << "The contents of the blender have been blended."
+ usr << "\red The blender is in the process of blending."
+ return
+ if(!src.container)
+ usr << "\red The blender doesn't have an attached container!"
+ return
+ playsound(src.loc, 'blender.ogg', 50, 1)
+ src.processing = 1
+ usr << "\blue You turn on the blender."
+ use_power(250)
+ for(var/obj/O in src.contents)
+ if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/soybeans))
+ src.reagents.add_reagent("soymilk", 5)
+ else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/tomato))
+ src.reagents.add_reagent("ketchup", 5)
+ else if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/corn))
+ src.reagents.add_reagent("cornoil", 5)
+ if(istype(O, /obj/item/weapon/reagent_containers/food/snacks)) //This is intentionally not an "else if"
+ O.reagents.trans_to(src, O.reagents.total_volume) //Think of it as the "pulp" leftover.
+ del(O)
+ src.processing = 0
+ usr << "The contents of the blender have been blended."
return
/obj/machinery/blender/verb/detach() //Transfers the contents of the Blender to the Blender Jug and then ejects the jug.
diff --git a/code/game/machinery/kitchen/gibber.dm b/code/game/machinery/kitchen/gibber.dm
new file mode 100644
index 00000000000..5c44ec6f722
--- /dev/null
+++ b/code/game/machinery/kitchen/gibber.dm
@@ -0,0 +1,144 @@
+
+/obj/machinery/gibber
+ name = "Gibber"
+ desc = "The name isn't descriptive enough?"
+ icon = 'kitchen.dmi'
+ icon_state = "grinder"
+ density = 1
+ anchored = 1
+ var/operating = 0 //Is it on?
+ var/dirty = 0 // Does it need cleaning?
+ var/gibtime = 40 // Time from starting until meat appears
+ var/mob/living/occupant // Mob who has been put inside
+ use_power = 1
+ idle_power_usage = 2
+ active_power_usage = 500
+
+
+/obj/machinery/gibber/New()
+ ..()
+ src.overlays += image('kitchen.dmi', "grjam")
+
+/obj/machinery/gibber/update_icon()
+ overlays = null
+ if (dirty)
+ src.overlays += image('kitchen.dmi', "grbloody")
+ if(stat & (NOPOWER|BROKEN))
+ return
+ if (!occupant)
+ src.overlays += image('kitchen.dmi', "grjam")
+ else if (operating)
+ src.overlays += image('kitchen.dmi', "gruse")
+ else
+ src.overlays += image('kitchen.dmi', "gridle")
+
+/obj/machinery/gibber/attack_paw(mob/user as mob)
+ return src.attack_hand(user)
+
+/obj/machinery/gibber/relaymove(mob/user as mob)
+ src.go_out()
+ return
+
+/obj/machinery/gibber/attack_hand(mob/user as mob)
+ if(stat & (NOPOWER|BROKEN))
+ return
+ if(operating)
+ user << "\red It's locked and running"
+ return
+ else
+ src.startgibbing(user)
+
+/obj/machinery/gibber/attackby(obj/item/weapon/grab/G as obj, mob/user as mob)
+ if(src.occupant)
+ user << "\red The gibber is full, empty it first!"
+ return
+ if (!( istype(G, /obj/item/weapon/grab)) || !(istype(G.affecting, /mob/living/carbon/human)))
+ user << "\red This item is not suitable for the gibber!"
+ return
+ if(G.affecting.abiotic())
+ user << "\red Subject may not have abiotic items on."
+ return
+
+ user.visible_message("\red [user] starts to put [G.affecting] into the gibber!")
+ src.add_fingerprint(user)
+ if(do_after(user, 30) && G && G.affecting && !occupant)
+ user.visible_message("\red [user] stuffs [G.affecting] into the gibber!")
+ var/mob/M = G.affecting
+ if(M.client)
+ M.client.perspective = EYE_PERSPECTIVE
+ M.client.eye = src
+ M.loc = src
+ src.occupant = M
+ del(G)
+ update_icon()
+
+/obj/machinery/gibber/verb/eject()
+ set category = "Object"
+ set name = "Empty Gibber"
+ set src in oview(1)
+
+ if (usr.stat != 0)
+ return
+ src.go_out()
+ add_fingerprint(usr)
+ return
+
+/obj/machinery/gibber/proc/go_out()
+ if (!src.occupant)
+ return
+ for(var/obj/O in src)
+ O.loc = src.loc
+ if (src.occupant.client)
+ src.occupant.client.eye = src.occupant.client.mob
+ src.occupant.client.perspective = MOB_PERSPECTIVE
+ src.occupant.loc = src.loc
+ src.occupant = null
+ update_icon()
+ return
+
+
+/obj/machinery/gibber/proc/startgibbing(mob/user as mob)
+ if(src.operating)
+ return
+ if(!src.occupant)
+ for(var/mob/M in viewers(src, null))
+ M.show_message("\red You hear a loud metallic grinding sound.", 1)
+ return
+ use_power(1000)
+ for(var/mob/M in viewers(src, null))
+ M.show_message("\red You hear a loud squelchy grinding sound.", 1)
+ src.operating = 1
+ update_icon()
+ var/sourcename = src.occupant.real_name
+ var/sourcejob = src.occupant.job
+ var/sourcenutriment = src.occupant.nutrition / 15
+ var/sourcetotalreagents = src.occupant.reagents.total_volume
+ var/totalslabs = 3
+
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/human/allmeat[totalslabs]
+ for (var/i=1 to totalslabs)
+ var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new
+ newmeat.name = sourcename + newmeat.name
+ newmeat.subjectname = sourcename
+ newmeat.subjectjob = sourcejob
+ newmeat.reagents.add_reagent ("nutriment", sourcenutriment / totalslabs) // Thehehe. Fat guys go first
+ src.occupant.reagents.trans_to (newmeat, round (sourcetotalreagents / totalslabs, 1)) // Transfer all the reagents from the
+ allmeat[i] = newmeat
+
+ src.occupant.death(1)
+ src.occupant.ghostize()
+ del(src.occupant)
+ spawn(src.gibtime)
+ playsound(src.loc, 'splat.ogg', 50, 1)
+ operating = 0
+ for (var/i=1 to totalslabs)
+ var/obj/item/meatslab = allmeat[i]
+ var/turf/Tx = locate(src.x - i, src.y, src.z)
+ meatslab.loc = src.loc
+ meatslab.throw_at(Tx,i,3)
+ if (!Tx.density)
+ new /obj/decal/cleanable/blood/gibs(Tx,i)
+ src.operating = 0
+ update_icon()
+
+
diff --git a/code/game/machinery/kitchen/juicer.dm b/code/game/machinery/kitchen/juicer.dm
new file mode 100644
index 00000000000..f3b6c0ea7b7
--- /dev/null
+++ b/code/game/machinery/kitchen/juicer.dm
@@ -0,0 +1,166 @@
+
+/obj/machinery/juicer
+ name = "Juicer"
+ icon = 'kitchen.dmi'
+ icon_state = "juicer1"
+ layer = 2.9
+ density = 0
+ anchored = 0
+ use_power = 1
+ idle_power_usage = 5
+ active_power_usage = 100
+ var/obj/item/weapon/reagent_containers/beaker = null
+ var/global/list/allowed_items = list (
+ /obj/item/weapon/reagent_containers/food/snacks/grown/tomato = "tomatojuice",
+ /obj/item/weapon/reagent_containers/food/snacks/grown/carrot = "carrotjuice",
+ /obj/item/weapon/reagent_containers/food/snacks/grown/berries = "berryjuice",
+ /obj/item/weapon/reagent_containers/food/snacks/banana = "banana",
+ )
+
+/obj/machinery/juicer/New()
+ beaker = new /obj/item/weapon/reagent_containers/glass/large(src)
+
+/obj/machinery/juicer/update_icon()
+ icon_state = "juicer"+num2text(!isnull(beaker))
+ return
+
+
+/obj/machinery/juicer/attackby(var/obj/item/O as obj, var/mob/user as mob)
+ if (istype(O,/obj/item/weapon/reagent_containers/glass) || \
+ istype(O,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
+ if (beaker)
+ return 1
+ else
+ user.before_take_item(O)
+ O.loc = src
+ beaker = O
+ src.verbs += /obj/machinery/juicer/verb/detach
+ update_icon()
+ src.updateUsrDialog()
+ return 0
+ if (!is_type_in_list(O, allowed_items))
+ user << "It looks as not containing any juice."
+ return 1
+ user.before_take_item(O)
+ O.loc = src
+ src.updateUsrDialog()
+ return 0
+
+/obj/machinery/juicer/attack_paw(mob/user as mob)
+ return src.attack_hand(user)
+
+/obj/machinery/juicer/attack_ai(mob/user as mob)
+ return 0
+
+/obj/machinery/juicer/attack_hand(mob/user as mob)
+ user.machine = src
+ interact(user)
+
+/obj/machinery/juicer/proc/interact(mob/user as mob) // The microwave Menu
+ var/is_chamber_empty = 0
+ var/is_beaker_ready = 0
+ var/processing_chamber = ""
+ var/beaker_contents = ""
+
+ for (var/i in allowed_items)
+ for (var/obj/item/O in src.contents)
+ if (!istype(O,i))
+ continue
+ processing_chamber+= "some [O]
"
+ break
+ if (!processing_chamber)
+ is_chamber_empty = 1
+ processing_chamber = "Nothing."
+ if (!beaker)
+ beaker_contents = "\The [src] has no beaker attached."
+ else if (!beaker.reagents.total_volume)
+ beaker_contents = "\The [src] has attached an empty beaker."
+ is_beaker_ready = 1
+ else if (beaker.reagents.total_volume < beaker.reagents.maximum_volume)
+ beaker_contents = "\The [src] has attached a beaker with something."
+ is_beaker_ready = 1
+ else
+ beaker_contents = "\The [src] has attached a beaker and beaker is full!"
+
+ var/dat = {"
+Processing chamber contains:
+[processing_chamber]
+[beaker_contents]
+"}
+ if (is_beaker_ready && !is_chamber_empty && !(stat & (NOPOWER|BROKEN)))
+ dat += "Turn on!
"
+ if (beaker)
+ dat += "Detach a beacker!
"
+ user << browse("Juicer[dat]", "window=juicer")
+ onclose(user, "juicer")
+ return
+
+
+/obj/machinery/juicer/Topic(href, href_list)
+ if(..())
+ return
+ usr.machine = src
+ switch(href_list["action"])
+ if ("juice")
+ juice()
+
+ if ("detach")
+ detach()
+ src.updateUsrDialog()
+ return
+
+/obj/machinery/juicer/verb/detach()
+ set category = "Object"
+ set name = "Detach Beacker from the juicer"
+ set src in oview(1)
+ if (usr.stat != 0)
+ return
+ if (!beaker)
+ return
+ src.verbs -= /obj/machinery/juicer/verb/detach
+ beaker.loc = src.loc
+ beaker = null
+ update_icon()
+
+/obj/machinery/juicer/proc/get_juice_id(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
+ for (var/i in allowed_items)
+ if (istype(O, i))
+ return allowed_items[i]
+
+/obj/machinery/juicer/proc/get_juice_amount(var/obj/item/weapon/reagent_containers/food/snacks/grown/O)
+ if (!istype(O))
+ return 5
+ else
+ return round(5*sqrt(O.potency))
+
+/obj/machinery/juicer/proc/juice()
+ power_change() //it is a portable machine
+ if(stat & (NOPOWER|BROKEN))
+ return
+ if (!beaker || beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
+ return
+ playsound(src.loc, 'juicer.ogg', 50, 1)
+ for (var/obj/item/weapon/reagent_containers/food/snacks/O in src.contents)
+ var/r_id = get_juice_id(O)
+ beaker.reagents.add_reagent(r_id,get_juice_amount(O))
+ del(O)
+ if (beaker.reagents.total_volume >= beaker.reagents.maximum_volume)
+ break
+
+/obj/crate/blabla
+ New()
+ ..()
+ new/obj/machinery/juicer(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/banana(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/banana(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/tomato(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/carrot(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src)
+ new/obj/item/weapon/reagent_containers/food/snacks/banana(src)
+
diff --git a/code/game/machinery/microwave.dm b/code/game/machinery/kitchen/microwave.dm
similarity index 76%
rename from code/game/machinery/microwave.dm
rename to code/game/machinery/kitchen/microwave.dm
index 5c035c4fd34..935b7bf9fc4 100644
--- a/code/game/machinery/microwave.dm
+++ b/code/game/machinery/kitchen/microwave.dm
@@ -1,35 +1,47 @@
+/obj/machinery/microwave
+ name = "Microwave"
+ icon = 'kitchen.dmi'
+ icon_state = "mw"
+ layer = 2.9
+ density = 1
+ anchored = 1
+ use_power = 1
+ idle_power_usage = 5
+ active_power_usage = 100
+ flags = OPENCONTAINER | NOREACT
+ var/operating = 0 // Is it on?
+ var/dirty = 0 // = {0..100} Does it need cleaning?
+ var/broken = 0 // ={0,1,2} How broken is it???
+ var/global/list/datum/recipe/available_recipes // List of the recipes you can use
+ var/global/list/acceptable_items // List of the items you can put in
+ var/global/list/acceptable_reagents // List of the reagents you can put in
+ var/global/max_n_of_items = 0
+
+
// see code/modules/food/recipes_microwave.dm for recipes
/*******************
* Initialising
********************/
-/obj/machinery/microwave
- var/operating = 0 // Is it on?
- var/dirty = 0 // = {0..100} Does it need cleaning?
- var/broken = 0 // ={0,1,2} How broken is it???
- var/list/datum/recipe/available_recipes // List of the recipes you can use
- var/list/acceptable_items // List of the items you can put in
- var/list/acceptable_reagents // List of the reagents you can put in
- var/max_n_of_items = 0
/obj/machinery/microwave/New()
//..() //do not need this
reagents = new/datum/reagents(100)
reagents.my_atom = src
- available_recipes = new
- for (var/type in (typesof(/datum/recipe)-/datum/recipe))
- available_recipes+= new type
- acceptable_items = new
- acceptable_reagents = new
- for (var/datum/recipe/recipe in available_recipes)
- for (var/item in recipe.items)
- //if (!(item in acceptable_items))
- acceptable_items |= item
- for (var/reagent in recipe.reagents)
- acceptable_reagents |= reagent
- if (recipe.items)
- max_n_of_items = max(max_n_of_items,recipe.items.len)
+ if (!available_recipes)
+ available_recipes = new
+ for (var/type in (typesof(/datum/recipe)-/datum/recipe))
+ available_recipes+= new type
+ acceptable_items = new
+ acceptable_reagents = new
+ for (var/datum/recipe/recipe in available_recipes)
+ for (var/item in recipe.items)
+ acceptable_items |= item
+ for (var/reagent in recipe.reagents)
+ acceptable_reagents |= reagent
+ if (recipe.items)
+ max_n_of_items = max(max_n_of_items,recipe.items.len)
/*******************
* Item Adding
@@ -103,12 +115,11 @@
istype(O,/obj/item/weapon/reagent_containers/food/drinks) || \
istype(O,/obj/item/weapon/reagent_containers/food/condiment) \
)
- var/obj/item/weapon/reagent_containers/glass/G = O
- if (!G.reagents)
+ if (!O.reagents)
return 1
- for (var/datum/reagent/R in G.reagents.reagent_list)
+ for (var/datum/reagent/R in O.reagents.reagent_list)
if (!(R.id in acceptable_reagents))
- user << "\red Your [G] contains components unsuitable for cookery."
+ user << "\red Your [O] contains components unsuitable for cookery."
return 1
//G.reagents.trans_to(src,G.amount_per_transfer_from_this)
else if(istype(O,/obj/item/weapon/grab))
@@ -192,7 +203,7 @@
dat = {"Ingredients:
[dat]"}
dat += {"
\
Turn on!
\
-Dispose contents!
\
+Eject ingredients!
\
"}
user << browse("Microwave Controls[dat]", "window=microwave")
@@ -206,6 +217,8 @@
************************************/
/obj/machinery/microwave/proc/cook()
+ if(stat & (NOPOWER|BROKEN))
+ return
start()
if (reagents.total_volume==0 && !(locate(/obj) in contents)) //dry run
if (!wzhzhzh(10))
@@ -295,9 +308,12 @@
/obj/machinery/microwave/proc/dispose()
for (var/obj/O in contents)
- del(O)
+ O.loc = src.loc
+ if (src.reagents.total_volume)
+ src.dirty++
src.reagents.clear_reagents()
usr << "\blue You dispose of the microwave contents."
+ src.updateUsrDialog()
/obj/machinery/microwave/proc/muck_start()
playsound(src.loc, 'splat.ogg', 50, 1) // Play a splat sound
@@ -354,38 +370,3 @@
if ("dispose")
dispose()
return
-/*
- var/cooking = cooked_item // Get the item that needs to be spawned
- if(!isnull(cooking))
- src.operating = 1 // Turn it on so it can't be used again while it's cooking
- src.icon_state = "mw1" //Make it look on too
- src.updateUsrDialog()
- src.being_cooked = new cooking(src)
- use_power(500*(cook_time/50)/2)
- spawn(cook_time) //After the cooking time
- use_power(500*(cook_time/50)/2)
- if(!isnull(src.being_cooked))
- playsound(src.loc, 'ding.ogg', 50, 1)
- if(istype(src.being_cooked, /obj/item/weapon/reagent_containers/food/snacks/humanburger))
- src.being_cooked.name = humanmeat_name + src.being_cooked.name
- src.being_cooked:job = humanmeat_job
- else if(istype(src.being_cooked, /obj/item/weapon/reagent_containers/food/snacks/humeatpie))
- src.being_cooked.name = humanmeat_name + src.being_cooked.name
- src.being_cooked:job = humanmeat_job
- else if(istype(src.being_cooked, /obj/item/weapon/reagent_containers/food/snacks/humankabob))
- src.being_cooked.name = humanmeat_name + src.being_cooked.name
- src.being_cooked:job = humanmeat_job
- if(istype(src.being_cooked, /obj/item/weapon/reagent_containers/food/snacks/donkpocket))
- src.being_cooked:warm = 1
- src.being_cooked:reagents.add_reagent("tricordrazine", 5)
- src.being_cooked:bitesize = 6
- src.being_cooked.name = "Warm " + src.being_cooked.name
- src.being_cooked:cooltime()
- src.being_cooked.loc = get_turf(src) // Create the new item
- src.being_cooked = null // We're done!
-
- src.operating = 0 // Turn the microwave back off
- src.icon_state = "mw"
- else
- return
-*/
diff --git a/code/game/machinery/processor.dm b/code/game/machinery/kitchen/processor.dm
similarity index 90%
rename from code/game/machinery/processor.dm
rename to code/game/machinery/kitchen/processor.dm
index 5b282bcc2e9..39ccea93bb9 100644
--- a/code/game/machinery/processor.dm
+++ b/code/game/machinery/kitchen/processor.dm
@@ -1,3 +1,19 @@
+
+/obj/machinery/processor
+ name = "Food Processor"
+ icon = 'kitchen.dmi'
+ icon_state = "processor"
+ layer = 2.9
+ density = 1
+ anchored = 1
+ var/broken = 0
+ var/processing = 0
+ use_power = 1
+ idle_power_usage = 5
+ active_power_usage = 50
+
+
+
/datum/food_processor_process
var/input
var/output
@@ -122,7 +138,7 @@
"You turn on \a [src].", \
"You hear a food processor")
playsound(src.loc, 'blender.ogg', 50, 1)
- use_power(50)
+ use_power(500)
sleep(P.time)
P.process(src.loc, O)
src.processing = 0
@@ -130,4 +146,3 @@
"You hear food processor stops")
-
diff --git a/code/game/machinery/morgue.dm b/code/game/machinery/morgue.dm
index 31b38b9c3ea..8a581fc6a90 100644
--- a/code/game/machinery/morgue.dm
+++ b/code/game/machinery/morgue.dm
@@ -268,10 +268,8 @@
for (var/obj/item/W in M)
if (prob(10))
W.loc = src
- if (M.client)
- var/mob/dead/observer/newmob = new(M)
- M.client.mob = newmob
- newmob.client.eye = newmob // Hrm
+ M.death(1)
+ M.ghostize()
del(M)
cremating = 0
locked = 0
diff --git a/code/game/magic/library.dm b/code/game/magic/library.dm
index 1ae945e8d25..dea1b639cfa 100644
--- a/code/game/magic/library.dm
+++ b/code/game/magic/library.dm
@@ -80,7 +80,7 @@
if(!newname)
return
else
- src.setname(newname)
+ src.setname(sanitize(newname))
else
..()
attack_hand(var/mob/user as mob)
@@ -189,7 +189,7 @@
if(!title)
return
else
- src.name = title
+ src.name = sanitize(title)
else if("Contents")
var/content = strip_html(input("Write your book's contents (HTML NOT allowed):"),8192) as message|null
if(!content)
@@ -201,7 +201,7 @@
if(!nauthor)
return
else
- src.author = nauthor
+ src.author = sanitize(nauthor)
else
return
else if(istype(W, /obj/item/weapon/barcodescanner))
@@ -362,7 +362,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
if(href_list["settitle"])
var/newtitle = input("Enter a title to search for:") as text|null
if(newtitle)
- title = newtitle
+ title = sanitize(newtitle)
else
title = null
title = dd_replacetext(title, "'", "''")
@@ -375,7 +375,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
if(href_list["setauthor"])
var/newauthor = input("Enter an author to search for:") as text|null
if(newauthor)
- author = newauthor
+ author = sanitize(newauthor)
else
author = null
author = dd_replacetext(author, "'", "''")
@@ -570,8 +570,8 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
buffer_mob = input("Enter the recipient's name:") as text|null
if(href_list["checkout"])
var/datum/borrowbook/b = new /datum/borrowbook
- b.bookname = buffer_book
- b.mobname = buffer_mob
+ b.bookname = sanitize(buffer_book)
+ b.mobname = sanitize(buffer_mob)
b.getdate = world.time
b.duedate = world.time + (checkoutperiod * 600)
checkouts.Add(b)
@@ -584,7 +584,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f
if(href_list["setauthor"])
var/newauthor = input("Enter the author's name: ") as text|null
if(newauthor)
- scanner.cache.author = newauthor
+ scanner.cache.author = sanitize(newauthor)
if(href_list["setcategory"])
var/newcategory = input("Choose a category: ") in list("Fiction", "Non-Fiction", "Adult", "Reference", "Religion")
if(newcategory)
diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm
index a58082ad914..f1bf8072dad 100644
--- a/code/game/objects/items.dm
+++ b/code/game/objects/items.dm
@@ -466,5 +466,7 @@
istype(W, /obj/item/weapon/kitchenknife) || \
istype(W, /obj/item/weapon/scalpel) || \
istype(W, /obj/item/weapon/kitchen/utensil/knife) || \
- istype(W, /obj/item/weapon/kitchen/utensil/fork) \
+ istype(W, /obj/item/weapon/shard) || \
+ istype(W, /obj/item/weapon/reagent_containers/syringe) || \
+ istype(W, /obj/item/weapon/kitchen/utensil/fork) && W.icon_state != "forkloaded" \
)
diff --git a/code/game/objects/radio/signaler.dm b/code/game/objects/radio/signaler.dm
index 107d90f437c..d037b78c370 100644
--- a/code/game/objects/radio/signaler.dm
+++ b/code/game/objects/radio/signaler.dm
@@ -13,6 +13,9 @@
/obj/item/device/radio/signaler/attack_self(mob/user as mob, flag1)
user.machine = src
+ interact(user,flag1)
+
+/obj/item/device/radio/signaler/interact(mob/user as mob, flag1)
var/t1
if ((src.b_stat && !( flag1 )))
t1 = text("-------
\nGreen Wire: []
\nRed Wire: []
\nBlue Wire: []
\n", (src.wires & 4 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 2 ? text("Cut Wire", src) : text("Mend Wire", src)), (src.wires & 1 ? text("Cut Wire", src) : text("Mend Wire", src)))
diff --git a/code/game/research/designs.dm b/code/game/research/designs.dm
index 04400224db8..df3fe65334e 100644
--- a/code/game/research/designs.dm
+++ b/code/game/research/designs.dm
@@ -118,7 +118,7 @@ datum
req_tech = list("programming" = 2, "biotech" = 3)
build_type = IMPRINTER
materials = list("$glass" = 2000, "acid" = 20)
- build_path = "/obj/machinery/scan_consolenew"
+ build_path = "/obj/item/weapon/circuitboard/scan_consolenew"
comconsole
name = "Circuit Design (Communications)"
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index f34347dac60..75779e92d2f 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -19,9 +19,12 @@
/*if(src.stat != 2) //this check causes nothing but troubles. Commented out for Nar-Sie's sake. --rastaf0
src << "Only dead people and admins get to ghost, and admins don't use this verb to ghost while alive."
return*/
- if(src.client)
- src.client.mob = new/mob/dead/observer(src)
+ if(src.key)
+ var/mob/dead/observer/ghost = new(src)
+ ghost.key = src.key
src.verbs -= /mob/proc/ghostize
+ if (ghost.client)
+ ghost.client.eye = ghost
return
/mob/proc/adminghostize()
diff --git a/code/modules/mob/living/carbon/alien/humanoid/death.dm b/code/modules/mob/living/carbon/alien/humanoid/death.dm
index 0e34eea9827..176a70add08 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/death.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/death.dm
@@ -29,9 +29,9 @@
// world << "Bomb has ignited?"
A.part4.ignite()
- if (src.client)
+ if (src.key)
spawn(10)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
diff --git a/code/modules/mob/living/carbon/brain/death.dm b/code/modules/mob/living/carbon/brain/death.dm
index 8986d162aec..250e721e0b5 100644
--- a/code/modules/mob/living/carbon/brain/death.dm
+++ b/code/modules/mob/living/carbon/brain/death.dm
@@ -29,8 +29,8 @@
log_game("Rebooting because of no live players")
world.Reboot()
return
- if (src.client)
+ if (src.key)
spawn(50)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index 89747ea9924..051f892469f 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -42,8 +42,7 @@
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
if(mind)
mind.store_memory("Time of death: [tod]", 0)
- if(client)
- sql_report_death(src)
+ sql_report_death(src)
//src.icon_state = "dead"
ticker.mode.check_win()
diff --git a/code/modules/mob/living/carbon/monkey/death.dm b/code/modules/mob/living/carbon/monkey/death.dm
index c37ec6c31ad..1424a645b96 100644
--- a/code/modules/mob/living/carbon/monkey/death.dm
+++ b/code/modules/mob/living/carbon/monkey/death.dm
@@ -36,9 +36,9 @@
log_game("Rebooting because of no live players")
world.Reboot()
return
- if (src.client)
+ if (src.key)
spawn(50)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index a7682d43c41..421870f5fc4 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -255,8 +255,8 @@
if (get_turf(M) in V) //this is slow, but I don't think we'd have a lot of wardrobewhores every round --rastaf0
listening+=M
else
- if (M.ghost_ears && !(M in listening))
- listening+=M
+ if (M.client && M.client.ghost_ears)
+ listening|=M
for (var/obj/O in ((V | src.contents)-used_radios)) //radio in pocket could work, radio in backpack wouldn't --rastaf0
spawn (0)
diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm
index a66c6a9eab3..6238e343d7a 100644
--- a/code/modules/mob/living/silicon/ai/death.dm
+++ b/code/modules/mob/living/silicon/ai/death.dm
@@ -44,8 +44,8 @@
log_game("Rebooting because of no live players")
world.Reboot()
return
- if (src.client)
+ if (src.key)
spawn(50)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/hivebot/death.dm b/code/modules/mob/living/silicon/hivebot/death.dm
index 22458b58f34..37c523fba6e 100644
--- a/code/modules/mob/living/silicon/hivebot/death.dm
+++ b/code/modules/mob/living/silicon/hivebot/death.dm
@@ -17,8 +17,8 @@
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
store_memory("Time of death: [tod]", 0)
- if (src.client)
+ if (src.key)
spawn(50)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/hivebot/mainframe.dm b/code/modules/mob/living/silicon/hivebot/mainframe.dm
index fa308a22776..9527ae9c1a3 100644
--- a/code/modules/mob/living/silicon/hivebot/mainframe.dm
+++ b/code/modules/mob/living/silicon/hivebot/mainframe.dm
@@ -55,9 +55,9 @@
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
mind.store_memory("Time of death: [tod]", 0)
- if (src.client)
+ if (src.key)
spawn(50)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
return ..(gibbed)
diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm
index 547d2eee6dd..71eda89e226 100644
--- a/code/modules/mob/living/silicon/robot/death.dm
+++ b/code/modules/mob/living/silicon/robot/death.dm
@@ -24,9 +24,7 @@
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
store_memory("Time of death: [tod]", 0)
- if(mind)
- if(client)
- sql_report_cyborg_death(src)
+ sql_report_cyborg_death(src)
for(var/mob/M in world)
if ((M.client && !( M.stat )))
@@ -38,8 +36,8 @@
log_game("Rebooting because of no live players")
world.Reboot()
return
- if (src.client)
+ if (src.key)
spawn(50)
- if(src.client && src.stat == 2)
+ if(src.key && src.stat == 2)
src.verbs += /mob/proc/ghostize
return ..(gibbed)
\ No newline at end of file
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index f6adfa9e455..0d4b27b5f2b 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1356,16 +1356,16 @@
src << browse('changelog.html', "window=changes;size=675x650")
src.client.changes = 1
-/mob/var/ghost_ears = 1
-/mob/verb/toggle_ghost_ears()
+/client/var/ghost_ears = 1
+/client/verb/toggle_ghost_ears()
set name = "Ghost ears"
set category = "OOC"
set desc = "Hear talks from everywhere"
src.ghost_ears = !src.ghost_ears
if (ghost_ears)
- usr << "Now you hear all speech in world"
+ usr << "\blue Now you hear all speech in the world"
else
- usr << "Now you hear speech only from nearest creatures."
+ usr << "\blue Now you hear speech only from nearest creatures."
/mob/verb/observe()
set name = "Observe"
diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi
index 75aa89b252b..e737d460941 100644
Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ
diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi
index 2d5beac526c..3a5630364d2 100644
Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ
diff --git a/maps/tgstation.2.0.7.dmm b/maps/tgstation.2.0.7.dmm
index 89eb5466d60..caf6963ecb6 100644
--- a/maps/tgstation.2.0.7.dmm
+++ b/maps/tgstation.2.0.7.dmm
@@ -3150,7 +3150,7 @@
"biD" = (/obj/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"biE" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"biF" = (/obj/table{dir = 9; icon_state = "tabledir"; pixel_y = 0},/obj/item/weapon/reagent_containers/food/condiment/enzyme,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
-"biG" = (/obj/table{dir = 5; icon_state = "tabledir"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
+"biG" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/machinery/juicer,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"biH" = (/obj/table/reinforced{icon_state = "reinf_tabledir"; dir = 4},/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 1},/obj/window/reinforced,/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen)
"biI" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"biJ" = (/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"},/turf/simulated/wall,/area/crew_quarters/bar)
@@ -3386,7 +3386,7 @@
"bnf" = (/obj/device/piano{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bng" = (/obj/stool{pixel_y = 8},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bnh" = (/obj/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/obj/item/clothing/head/helmet/that{throwforce = 1; throwing = 1},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
-"bni" = (/obj/table/reinforced{dir = 9; icon_state = "reinf_tabledir"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/gun/shotgun,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
+"bni" = (/obj/table/reinforced{dir = 9; icon_state = "reinf_tabledir"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/weapon/gun/shotgun,/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bnj" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/utilitybelt/medical{pixel_x = -6; pixel_y = 8},/turf/simulated/floor{icon_state = "white"; dir = 8},/area/medical/medbay)
"bnk" = (/obj/table{icon_state = "table_vertical"; dir = 4},/obj/item/weapon/gun/syringe{pixel_y = 3},/obj/item/weapon/gun/syringe,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bnl" = (/obj/secure_closet/medical1{pixel_x = 5},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/medical/medbay)
@@ -3442,7 +3442,7 @@
"boj" = (/obj/table{icon_state = "tabledir"; dir = 5},/obj/item/weapon/reagent_containers/food/condiment/peppermill,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bok" = (/obj/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bol" = (/obj/landmark/start{name = "Barman"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
-"bom" = (/obj/table/reinforced{dir = 10; icon_state = "reinf_tabledir"},/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = "SS13"},/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
+"bom" = (/obj/machinery/camera{c_tag = "Bar"; dir = 8; network = "SS13"},/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bon" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/obj/secure_closet/medical3{pixel_x = -5},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/medbay)
"boo" = (/obj/machinery/light,/obj/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bop" = (/obj/table{icon_state = "table_vertical"; dir = 1},/obj/item/weapon/storage/firstaid/syringes,/obj/item/weapon/storage/utilitybelt/medical{pixel_x = 4; pixel_y = -7},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
@@ -3546,66 +3546,66 @@
"bqj" = (/obj/table{icon_state = "tabledir"; dir = 6},/obj/item/weapon/reagent_containers/food/drinks/cola,/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; icon = 'status_display.dmi'; icon_state = "entertainment"; pixel_x = -30},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bqk" = (/obj/stool/chair{dir = 1},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bql" = (/obj/stool{pixel_y = 8},/mob/living/carbon/monkey{name = "Mr Deempisi"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
-"bqm" = (/obj/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; desc = "Damn, they better have /tg/thechannel on these things."; icon = 'status_display.dmi'; icon_state = "entertainment"; pixel_y = -30},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
-"bqn" = (/obj/machinery/requests_console{department = "Bar"; departmentType = 2; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
-"bqo" = (/turf/simulated/wall,/area/medical/genetics)
-"bqp" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"; dir = 8},/area/medical/genetics)
-"bqq" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqr" = (/mob/living/carbon/monkey{name = "Jade"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqt" = (/mob/living/carbon/monkey{name = "McKinley"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqu" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqv" = (/obj/machinery/dna_scannernew,/obj/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqw" = (/obj/machinery/computer/cloning,/obj/machinery/light{dir = 1},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqx" = (/obj/machinery/clonepod,/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
-"bqy" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/genetics)
-"bqz" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/camera{c_tag = "Genetics Entrance"; dir = 4; network = "SS13"},/obj/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
-"bqA" = (/obj/table{dir = 10; icon_state = "tabledir"},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen{pixel_y = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
-"bqB" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/surgery)
-"bqC" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
-"bqD" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/securearea{desc = "A warning sign which reads 'NO SMOKING'"; icon_state = "nosmoking2"; name = "NO SMOKING"},/turf/simulated/wall,/area/medical/surgery)
-"bqE" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 10; icon_state = "intact-b-f"; initialize_directions = 10; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/surgery)
-"bqF" = (/obj/table{icon_state = "tabledir"; dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery)
-"bqG" = (/obj/machinery/vending/cigarette{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery)
-"bqH" = (/obj/machinery/power/apc{name = "Starboard Solar APC"; dir = 8; pixel_x = -26; pixel_y = 3},/obj/stool,/obj/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
-"bqI" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Starboard Solar Control"; track = 2},/obj/cable{icon_state = "0-2"; d2 = 2},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
-"bqJ" = (/obj/grille,/obj/window/reinforced{dir = 8},/obj/window/reinforced,/turf/simulated/floor/plating/airless,/area/maintenance/starboardsolar)
-"bqK" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/maintenance/starboardsolar)
-"bqL" = (/obj/cable,/turf/simulated/floor/plating/airless,/area/solar/starboard)
-"bqM" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating/airless,/area/solar/starboard)
-"bqN" = (/obj/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/apmaint)
-"bqO" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/maintenance/apmaint)
-"bqP" = (/obj/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/apmaint)
-"bqQ" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/obj/machinery/conveyor{dir = 1; id = "miningToQM"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/apmaint)
-"bqR" = (/obj/table{dir = 9; icon_state = "tabledir"},/obj/item/weapon/module/power_control,/turf/simulated/floor,/area/quartermaster/qm)
-"bqS" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/quartermaster/qm)
-"bqT" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm)
-"bqU" = (/obj/table{dir = 9; icon_state = "tabledir"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/quartermaster/qm)
-"bqV" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/stamp/denied,/obj/machinery/light/small,/turf/simulated/floor,/area/quartermaster/qm)
-"bqW" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/quartermaster/qm)
-"bqX" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/quartermaster/qm)
-"bqY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/disposalpipe/segment,/obj/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/meson,/turf/simulated/floor,/area/quartermaster/qm)
-"bqZ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall/r_wall,/area/quartermaster/qm)
-"bra" = (/turf/simulated/floor{dir = 10; icon_state = "brown"},/area/hallway/primary/aft)
-"brb" = (/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/hallway/primary/aft)
-"brc" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/hallway/primary/aft)
-"brd" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/aft)
-"bre" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/aft)
-"brf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/aft)
-"brg" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
-"brh" = (/obj/machinery/atmospherics/pipe/simple{dir = 5},/turf/simulated/floor,/area/hallway/primary/aft)
-"bri" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
-"brj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple{dir = 10},/turf/simulated/floor,/area/hallway/primary/aft)
-"brk" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/aft)
-"brl" = (/obj/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft)
-"brm" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
-"brn" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft)
-"bro" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/maintenance/asmaint)
-"brp" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"brq" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
-"brr" = (/obj/disposalpipe/segment,/turf/simulated/wall,/area/crew_quarters/bar)
-"brs" = (/obj/stool{pixel_y = 8},/obj/machinery/disposal,/obj/disposalpipe/trunk,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
-"brt" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
+"bqm" = (/obj/table/reinforced{dir = 10; icon_state = "reinf_tabledir"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
+"bqn" = (/turf/simulated/wall,/area/medical/genetics)
+"bqo" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"; dir = 8},/area/medical/genetics)
+"bqp" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqq" = (/mob/living/carbon/monkey{name = "Jade"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqs" = (/mob/living/carbon/monkey{name = "McKinley"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqt" = (/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqu" = (/obj/machinery/dna_scannernew,/obj/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqv" = (/obj/machinery/computer/cloning,/obj/machinery/light{dir = 1},/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqw" = (/obj/machinery/clonepod,/obj/cable{d2 = 8; icon_state = "0-8"},/obj/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
+"bqx" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/genetics)
+"bqy" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/camera{c_tag = "Genetics Entrance"; dir = 4; network = "SS13"},/obj/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
+"bqz" = (/obj/table{dir = 10; icon_state = "tabledir"},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen{pixel_y = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
+"bqA" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 5; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/surgery)
+"bqB" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)
+"bqC" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/securearea{desc = "A warning sign which reads 'NO SMOKING'"; icon_state = "nosmoking2"; name = "NO SMOKING"},/turf/simulated/wall,/area/medical/surgery)
+"bqD" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 10; icon_state = "intact-b-f"; initialize_directions = 10; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/surgery)
+"bqE" = (/obj/table{icon_state = "tabledir"; dir = 6},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery)
+"bqF" = (/obj/machinery/vending/cigarette{pixel_x = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery)
+"bqG" = (/obj/machinery/power/apc{name = "Starboard Solar APC"; dir = 8; pixel_x = -26; pixel_y = 3},/obj/stool,/obj/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
+"bqH" = (/obj/machinery/power/solar_control{id = "starboardsolar"; name = "Starboard Solar Control"; track = 2},/obj/cable{icon_state = "0-2"; d2 = 2},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
+"bqI" = (/obj/grille,/obj/window/reinforced{dir = 8},/obj/window/reinforced,/turf/simulated/floor/plating/airless,/area/maintenance/starboardsolar)
+"bqJ" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/maintenance/starboardsolar)
+"bqK" = (/obj/cable,/turf/simulated/floor/plating/airless,/area/solar/starboard)
+"bqL" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating/airless,/area/solar/starboard)
+"bqM" = (/obj/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/apmaint)
+"bqN" = (/obj/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/maintenance/apmaint)
+"bqO" = (/obj/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/apmaint)
+"bqP" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/light/small{dir = 4},/obj/machinery/conveyor{dir = 1; id = "miningToQM"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/apmaint)
+"bqQ" = (/obj/table{dir = 9; icon_state = "tabledir"},/obj/item/weapon/module/power_control,/turf/simulated/floor,/area/quartermaster/qm)
+"bqR" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/quartermaster/qm)
+"bqS" = (/obj/machinery/computer/supplycomp,/turf/simulated/floor,/area/quartermaster/qm)
+"bqT" = (/obj/table{dir = 9; icon_state = "tabledir"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/quartermaster/qm)
+"bqU" = (/obj/table{dir = 5; icon_state = "tabledir"},/obj/item/weapon/stamp/denied,/obj/machinery/light/small,/turf/simulated/floor,/area/quartermaster/qm)
+"bqV" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/quartermaster/qm)
+"bqW" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/quartermaster/qm)
+"bqX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/disposalpipe/segment,/obj/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/meson,/turf/simulated/floor,/area/quartermaster/qm)
+"bqY" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/wall/r_wall,/area/quartermaster/qm)
+"bqZ" = (/turf/simulated/floor{dir = 10; icon_state = "brown"},/area/hallway/primary/aft)
+"bra" = (/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/hallway/primary/aft)
+"brb" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "brown"},/area/hallway/primary/aft)
+"brc" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "browncorner"},/area/hallway/primary/aft)
+"brd" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/aft)
+"bre" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/aft)
+"brf" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
+"brg" = (/obj/machinery/atmospherics/pipe/simple{dir = 5},/turf/simulated/floor,/area/hallway/primary/aft)
+"brh" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
+"bri" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple{dir = 10},/turf/simulated/floor,/area/hallway/primary/aft)
+"brj" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/aft)
+"brk" = (/obj/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft)
+"brl" = (/obj/machinery/atmospherics/pipe/simple,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
+"brm" = (/obj/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/aft)
+"brn" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/maintenance/asmaint)
+"bro" = (/obj/machinery/atmospherics/pipe/tank/air,/turf/simulated/floor/plating,/area/maintenance/asmaint)
+"brp" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
+"brq" = (/obj/disposalpipe/segment,/turf/simulated/wall,/area/crew_quarters/bar)
+"brr" = (/obj/stool{pixel_y = 8},/obj/machinery/disposal,/obj/disposalpipe/trunk,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
+"brs" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
+"brt" = (/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; desc = "Damn, they better have /tg/thechannel on these things."; icon = 'status_display.dmi'; icon_state = "entertainment"; pixel_y = -30},/obj/table/reinforced{dir = 8; icon_state = "reinf_tabledir"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"bru" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/closet/gmcloset,/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"brv" = (/obj/machinery/light/small,/obj/machinery/disposal,/obj/disposalpipe/trunk{dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar)
"brw" = (/obj/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/wall,/area/crew_quarters/bar)
@@ -5375,28 +5375,28 @@
"bZs" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/storage)
"bZt" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/toxins/storage)
"bZu" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor,/area/toxins/storage)
-"bZv" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area)
-"bZw" = (/obj/machinery/light{dir = 1},/obj/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/engine/engineering)
-"bZx" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/engine/engineering)
-"bZy" = (/obj/table{icon_state = "table_vertical"; dir = 4},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor,/area/engine/engineering)
-"bZz" = (/obj/crate/radiation,/turf/simulated/floor,/area/engine/engineering)
-"bZA" = (/obj/grille,/obj/window/reinforced{dir = 1},/obj/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
-"bZB" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 1},/obj/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
-"bZC" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor,/area/engine/engineering)
-"bZD" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 8},/obj/window/reinforced,/obj/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
-"bZE" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 1},/obj/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
-"bZF" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
-"bZG" = (/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/engine/engineering)
-"bZH" = (/obj/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/engineering)
-"bZI" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/engine/engineering)
-"bZJ" = (/obj/item/weapon/caution{desc = "Caution! Construction area!"; name = "construction area sign"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering)
-"bZK" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Construction Site Access"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/engine/engineering)
-"bZL" = (/turf/simulated/floor/plating/airless,/area/engine/engineering)
-"bZM" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/toxins/storage)
-"bZN" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/toxins/storage)
-"bZO" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/toxins/storage)
-"bZP" = (/obj/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area)
-"bZQ" = (/obj/lattice,/obj/grille,/obj/lattice,/turf/space,/area)
+"bZv" = (/obj/machinery/light{dir = 1},/obj/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/engine/engineering)
+"bZw" = (/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/engine/engineering)
+"bZx" = (/obj/table{icon_state = "table_vertical"; dir = 4},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor,/area/engine/engineering)
+"bZy" = (/obj/crate/radiation,/turf/simulated/floor,/area/engine/engineering)
+"bZz" = (/obj/grille,/obj/window/reinforced{dir = 1},/obj/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
+"bZA" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 1},/obj/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
+"bZB" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor,/area/engine/engineering)
+"bZC" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 8},/obj/window/reinforced,/obj/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
+"bZD" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 1},/obj/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
+"bZE" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering)
+"bZF" = (/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/engine/engineering)
+"bZG" = (/obj/landmark/start{name = "Station Engineer"},/turf/simulated/floor,/area/engine/engineering)
+"bZH" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/turf/simulated/floor,/area/engine/engineering)
+"bZI" = (/obj/item/weapon/caution{desc = "Caution! Construction area!"; name = "construction area sign"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering)
+"bZJ" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Construction Site Access"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/engine/engineering)
+"bZK" = (/turf/simulated/floor/plating/airless,/area/engine/engineering)
+"bZL" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/toxins/storage)
+"bZM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/toxins/storage)
+"bZN" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/toxins/storage)
+"bZO" = (/obj/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area)
+"bZP" = (/obj/lattice,/obj/grille,/obj/lattice,/turf/space,/area)
+"bZQ" = (/obj/structure/girder,/turf/simulated/floor/plating/airless,/area)
"bZR" = (/obj/grille,/obj/window/reinforced{dir = 8},/obj/window/reinforced{dir = 1},/obj/window/reinforced,/obj/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/engine/engineering)
"bZS" = (/obj/grille,/obj/window/reinforced{dir = 1},/obj/window/reinforced,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering)
"bZT" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/cable{icon_state = "0-2"; d2 = 2},/obj/window/reinforced{dir = 1},/obj/window/reinforced,/obj/cable{icon_state = "0-4"; d2 = 4},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering)
@@ -5415,21 +5415,21 @@
"cag" = (/obj/closet/firecloset,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering)
"cah" = (/obj/computerframe,/turf/simulated/floor/plating/airless,/area)
"cai" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating/airless,/area)
-"caj" = (/obj/machinery/door/airlock/engineering{icon_state = "door_locked"; locked = 1; name = "Fusion Engine"; req_access_txt = "10"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/engine/engineering)
-"cak" = (/obj/item/weapon/caution{desc = "Caution! Construction area!"; name = "construction area sign"},/turf/simulated/floor,/area/engine/engineering)
-"cal" = (/obj/table{dir = 8; icon_state = "table_horizontal"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering)
-"cam" = (/obj/table{dir = 1; icon_state = "table_horizontal"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering)
-"can" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering)
-"cao" = (/obj/table{icon_state = "tabledir"; dir = 4},/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor,/area/engine/engineering)
-"cap" = (/obj/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/engine/engineering)
-"caq" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor,/area/engine/engineering)
-"car" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering)
-"cas" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor,/area/engine/engineering)
-"cat" = (/obj/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering)
-"cau" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering)
-"cav" = (/obj/item/weapon/storage/pill_bottle/kelotane,/turf/simulated/floor,/area/engine/engineering)
-"caw" = (/obj/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/engineering)
-"cax" = (/obj/door_assembly/door_assembly_eng,/turf/simulated/floor/plating/airless,/area)
+"caj" = (/obj/door_assembly/door_assembly_eng,/turf/simulated/floor/plating/airless,/area/engine/engineering)
+"cak" = (/obj/machinery/door/airlock/engineering{icon_state = "door_locked"; locked = 1; name = "Fusion Engine"; req_access_txt = "10"},/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor/plating,/area/engine/engineering)
+"cal" = (/obj/item/weapon/caution{desc = "Caution! Construction area!"; name = "construction area sign"},/turf/simulated/floor,/area/engine/engineering)
+"cam" = (/obj/table{dir = 8; icon_state = "table_horizontal"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering)
+"can" = (/obj/table{dir = 1; icon_state = "table_horizontal"; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering)
+"cao" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering)
+"cap" = (/obj/table{icon_state = "tabledir"; dir = 4},/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor,/area/engine/engineering)
+"caq" = (/obj/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = "90Curve"},/turf/simulated/floor,/area/engine/engineering)
+"car" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor,/area/engine/engineering)
+"cas" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering)
+"cat" = (/obj/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = "Streight"},/obj/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = "90Curve"},/turf/simulated/floor,/area/engine/engineering)
+"cau" = (/obj/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering)
+"cav" = (/obj/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = "Streight"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering)
+"caw" = (/obj/item/weapon/storage/pill_bottle/kelotane,/turf/simulated/floor,/area/engine/engineering)
+"cax" = (/obj/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/engineering)
"cay" = (/obj/grille,/obj/window/reinforced{dir = 4},/obj/cable,/obj/cable{icon_state = "0-2"; d2 = 2},/obj/window/reinforced{dir = 1},/obj/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/engineering)
"caz" = (/obj/grille,/obj/window/reinforced,/obj/window/reinforced{dir = 4},/obj/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering)
"caA" = (/obj/table{icon_state = "tabledir"; dir = 6; pixel_x = 0},/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering)
@@ -7889,18 +7889,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberberberbfNbfObfObfObfObfObfObfObfObmqbmrbmsbmtbmubmvbmwbmxbmybbMbmzbmAbmBbmCbmDbmEbmFbmGaElaElbmHbggblrbmIbmJbmKbmLbmMbmNbggbmOblzbmPbmQbmRbmSbmTblFblzblyblzbmUbhFbmVbmWbmXbhFbmYbhFbmZbnaaElaElbcqbnbbncbndbnebcrbnfbngbcubcubdQbdQbcubcubkDbnhbcubcubnibgDbgEbgKbnjbeebnkbeebnlbgKbnmbnnbnobeebnpbiUbgPbiUbnqbnrbkPbnsbkRbntbnubnubnubnvbkRbkRbnwbmfbnxblcbmmbnyblfbnzbieblhaadaaaaaaaaaaaaaaablibmpblkaadblibmpblkaadblibmpblkaaaaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberberberaaaaaaaaaaaaaaaaaaaaaaaaaaabnAbnBbnBbnBbnCbnDbnEbnFbnGbnHbnIbnIbnIbnJbnIbnKbnLbnMbnNbnNbnNbggbggbggblxbnObnPbnPbnPbnPbnQbnRbnSbnTbnTbnUbnTbnVbnRbnSbnRbgtbnWbnXbnYbnZboabobbocbgvbodbnNbnNbcqboeblMbofbogbcrbohbcubcubfhboibojbfkbcubngbokbolbcubomblSbcAbgYbonboobopboqborbgKbosbosbotboubovbiUbgPbiUbowbnrboxbmfbmfboybmhbmfbozbkWboAbmfbmfbmfbmfblcboBboCboDblgbieboEaadaadaaaaaaaaaaaablibmpblkaadblibmpblkaaablibmpblkaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberberberaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFboGboHboIboJbnGboKboLboMboNboOboPboQboRboSboTboTboTboTboUboVboTboWboTboTboTboTboXboYboZbpaboTbpbbpcbpdboTboZboYboVbpebpebpebpebpebpebpfbpgbphboTboTbpibpjbpkbplbpmbcrbpnbpobppbpqbprbpsbfkbcubngbptbcubcubpubgDbpvbpwbpwbpxbpwbpybpwbpwbpwbpwbpwbpwbpzbiUbgPbiUbpAbpBbpCbnsbpDbpEbpFbpGbpGbkWbpHbpIbpJbpKbpLbjRbpMbpNbpObjYbpPbpQbpRbpSbpTaadaadaadblibmpblkaaablibmpblkaaablibmpblkaaaaadaiYaiYaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberberberaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFbpUbpVbpVbpWbnGbpXbpYbpZbpYbqabpYbqbbqcboSbqdbqeboTboTboTboVboTboTboTboTboTboTboTboTboZbqfboTbpbboTbqgboTboZboTboVboTboTboTboTboTboTboTboZbphboTbqhbcqbcrbqibcrbkAbcrbqjbngbcubcubqkbhMbcubcubqlbqmbcubqnaXObgDbgEbqobqpbqqbqrbqsbqtbqubqobqvbqwbqxbqybqzbgPbiUbqAbjRbqBbjYbpObjYbjXbjYbjYbjWbqCbqDbqEbjRblfbjRbqFbnybqGbjRbiebpQbqHbqIbqJbpSbqKaadaaabqLaadaaaaaabqMaadaaaaaabqMaadaadaaaaadaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFbqNbqObqPbqQbnGbqRbqSbqTbqUbqVbqWbqXbqYbqZbrabrbbrcbrbbrbbrdboTboTboTbreboTboTboTbrfbrgboVboTbpbboTboTboTbrhbribrjboTboTboTboTboTbrkbrlbrmbrnboTboTbrobrpbrqbrpbrrbrsbngbcubngbcubrtbcubngbcubngaXObrubcubrvbrwbrxbrybrzbrAbrBbrCbrBbrDbqobrEbrFbrGbrHbiUbgPbiUbeebjSbgObeebrIbrJbrKbmfbrLbrMbmfbrMbrNbmfbrOblcbmmbnybrPbjRbrQbrRbrSbrTbrUbrVbrUbrWbrXbrXbrXbrXbrYbrZbsabsabsabrZbsabsabsabsbaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqNbscbsdbsebsebsebsebsebsebsfbsgbshbsibsjbskbslbsmbsnbsobspbsobsqbsrbsqbsobspbssbsqbstbsuboVbsqbsvbsvbsvbswbsxbsvbsvbsvbsybsybszbrobsAbsBbsCbrobsDbsEbsFbrrbsGbsHbngbsIbngbsJbsKbsLbsMbcuaXOaXObsNaXObgDbsObqobqobqvbsPbqqbqvbsQbqobsRbsSbsTbsUbsVbsWbiUbsXbsYbsZbtabtbbtcbkWbmfbtdbtdbtdbtdbtdbtebtfblcbmmbnybtgbjRbiebthbtibtjbpRbpSbqKaadaadbtkaadaaaaadbqMaadaaaaadbqMaadaaaaaaaadaaaaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFbtlbtmbtnbtmbtobtmbtmbtmbtpbtqbtrbtsbttbtqbtubtvbsnboTboTboTbsrboTbsrboTbtwbtxbtybtzbtAbtzbtBbtCbtDbtEbtFbtGbtHbtIbtJbtKbtLbtMbtNbtObtObtObtPbtQbtRbtQbtSbtTbtUbtVbtWbtXbtYbtVbtVbtZbuabtZbubbucbudbgDbuebufbugbuhbuibqqbqqbujbukbulbrGbqqbumbiUbgPbiUbunbuobupbuqburbusbkWbutbjRbjRbjRbjRbjVbpObpObjYbjYbuubpObuvbuwbpQbuxbuxbpQaadaaaaaablibmpblkaaablibmpblkaadblibmpblkaaaaaaaiYaiXaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsnbsnbsnbuybsnbuzbsnbuAbuBbtqbtqbuCbtqbuDbuEbuFbuGbuHbuIbsnbuJbuKbuLbsqboTbsqbuLbuMbuNbsqboTbpbboTbsAbsvbuObuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvbbvbbvcbvbbvdbvebvbbvbbvfbuVbuVbuVbuVbuVbvgbvhbvibucbvjbgDbuebufbvkbvlbvmbvnbvobsTbsUbvnbvpbqqbvqbiUbiVbsVbvrbvsbvtbvubvvbvwbvxbvybvzbvAbvAbvBbvCbvDbvEbvFbvFbvGbvHbvIbvJbvKbvLbvMbvNaadaaaaaablibmpblkaaablibmpblkaadblibmpblkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaabvObvPbvQbvPbvRaaaaaaaaaaaabsnbvSbvTbvUbvVbvWbvXbvYbvZbsnbwabwbbsnbwcbsnbwdbuAbwebwfbsnboFboFboFboFbwgboFboFbwhbwibsqboTbpbboTbsqbsvbsvbwjbwkbwlbwmbwnbwobtQbwpbwqbwrbwsbwtbwubwvbwvbwwbtQbtQbtObwxbtObwybwqbwzbwzbwzbwAbwBbrrbwCbwDbwEbgDbuebufbvkbwFbwGbwHbwIbwJbqobwKbwLbwMbqobwNbeebiUbwObwPbwQbwRbwSbwTbvxbvybwUbwVbvNbvNbwWbvNbwXbvNbvybvNbwYbwZbwZbxabvNbvNbxbaaaaadaaablibmpblkaadblibmpblkaaablibmpblkaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvPbxcbxdbxdbvPbxebxfbxgbsnbsnbtvbtvbtvbtvbxhbxibxjbxkbxlbxmbxnbxobxnbxpbxqbxrbxsbtvbsnbpVbpVbpVbpVbpVbpVbpVbxtbxuboTboTbxvbxwbxxbxybsvbswbsvbsvbsvbsvbsvbsybxzbsybsybsybsybxAbxBbxCbxCbxCbxDbsybsybsybxEbxEbxFbxEbxEbxGbxHbxIbxJbxKbxLbxMbxNbxEbvkbqobqobqobqobxObqobqobvkbxPbqobxQbxRbxQbsYbsYbvxbxSbtcbsYbvxbxTbxUbvNbvNbxVbxWbxXbxYbxZbvNbvNaaaaaaaaaaaaaadaadaadaadaadaadblibmpblkaadblibmpblkaaablibmpblkaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberberberaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFbpUbpVbpVbpWbnGbpXbpYbpZbpYbqabpYbqbbqcboSbqdbqeboTboTboTboVboTboTboTboTboTboTboTboTboZbqfboTbpbboTbqgboTboZboTboVboTboTboTboTboTboTboTboZbphboTbqhbcqbcrbqibcrbkAbcrbqjbngbcubcubqkbhMbcubcubqlbokbcubcubqmbgDbgEbqnbqobqpbqqbqrbqsbqtbqnbqubqvbqwbqxbqybgPbiUbqzbjRbqAbjYbpObjYbjXbjYbjYbjWbqBbqCbqDbjRblfbjRbqEbnybqFbjRbiebpQbqGbqHbqIbpSbqJaadaaabqKaadaaaaaabqLaadaaaaaabqLaadaadaaaaadaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaberberberberberaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFbqMbqNbqObqPbnGbqQbqRbqSbqTbqUbqVbqWbqXbqYbqZbrabrbbrabrabrcboTboTboTbrdboTboTboTbrebrfboVboTbpbboTboTboTbrgbrhbriboTboTboTboTboTbrjbrkbrlbrmboTboTbrnbrobrpbrobrqbrrbngbcubngbcubrsbcubngbcubngbrtbrubcubrvbrwbrxbrybrzbrAbrBbrCbrBbrDbqnbrEbrFbrGbrHbiUbgPbiUbeebjSbgObeebrIbrJbrKbmfbrLbrMbmfbrMbrNbmfbrOblcbmmbnybrPbjRbrQbrRbrSbrTbrUbrVbrUbrWbrXbrXbrXbrXbrYbrZbsabsabsabrZbsabsabsabsbaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqMbscbsdbsebsebsebsebsebsebsfbsgbshbsibsjbskbslbsmbsnbsobspbsobsqbsrbsqbsobspbssbsqbstbsuboVbsqbsvbsvbsvbswbsxbsvbsvbsvbsybsybszbrnbsAbsBbsCbrnbsDbsEbsFbrqbsGbsHbngbsIbngbsJbsKbsLbsMbcuaXOaXObsNaXObgDbsObqnbqnbqubsPbqpbqubsQbqnbsRbsSbsTbsUbsVbsWbiUbsXbsYbsZbtabtbbtcbkWbmfbtdbtdbtdbtdbtdbtebtfblcbmmbnybtgbjRbiebthbtibtjbpRbpSbqJaadaadbtkaadaaaaadbqLaadaaaaadbqLaadaaaaaaaadaaaaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboFbtlbtmbtnbtmbtobtmbtmbtmbtpbtqbtrbtsbttbtqbtubtvbsnboTboTboTbsrboTbsrboTbtwbtxbtybtzbtAbtzbtBbtCbtDbtEbtFbtGbtHbtIbtJbtKbtLbtMbtNbtObtObtObtPbtQbtRbtQbtSbtTbtUbtVbtWbtXbtYbtVbtVbtZbuabtZbubbucbudbgDbuebufbugbuhbuibqpbqpbujbukbulbrGbqpbumbiUbgPbiUbunbuobupbuqburbusbkWbutbjRbjRbjRbjRbjVbpObpObjYbjYbuubpObuvbuwbpQbuxbuxbpQaadaaaaaablibmpblkaaablibmpblkaadblibmpblkaaaaaaaiYaiXaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsnbsnbsnbuybsnbuzbsnbuAbuBbtqbtqbuCbtqbuDbuEbuFbuGbuHbuIbsnbuJbuKbuLbsqboTbsqbuLbuMbuNbsqboTbpbboTbsAbsvbuObuPbuQbuRbuSbuTbuUbuVbuWbuXbuYbuZbvabvbbvbbvbbvcbvbbvdbvebvbbvbbvfbuVbuVbuVbuVbuVbvgbvhbvibucbvjbgDbuebufbvkbvlbvmbvnbvobsTbsUbvnbvpbqpbvqbiUbiVbsVbvrbvsbvtbvubvvbvwbvxbvybvzbvAbvAbvBbvCbvDbvEbvFbvFbvGbvHbvIbvJbvKbvLbvMbvNaadaaaaaablibmpblkaaablibmpblkaadblibmpblkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaabvObvPbvQbvPbvRaaaaaaaaaaaabsnbvSbvTbvUbvVbvWbvXbvYbvZbsnbwabwbbsnbwcbsnbwdbuAbwebwfbsnboFboFboFboFbwgboFboFbwhbwibsqboTbpbboTbsqbsvbsvbwjbwkbwlbwmbwnbwobtQbwpbwqbwrbwsbwtbwubwvbwvbwwbtQbtQbtObwxbtObwybwqbwzbwzbwzbwAbwBbrqbwCbwDbwEbgDbuebufbvkbwFbwGbwHbwIbwJbqnbwKbwLbwMbqnbwNbeebiUbwObwPbwQbwRbwSbwTbvxbvybwUbwVbvNbvNbwWbvNbwXbvNbvybvNbwYbwZbwZbxabvNbvNbxbaaaaadaaablibmpblkaadblibmpblkaaablibmpblkaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbbhbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvPbxcbxdbxdbvPbxebxfbxgbsnbsnbtvbtvbtvbtvbxhbxibxjbxkbxlbxmbxnbxobxnbxpbxqbxrbxsbtvbsnbpVbpVbpVbpVbpVbpVbpVbxtbxuboTboTbxvbxwbxxbxybsvbswbsvbsvbsvbsvbsvbsybxzbsybsybsybsybxAbxBbxCbxCbxCbxDbsybsybsybxEbxEbxFbxEbxEbxGbxHbxIbxJbxKbxLbxMbxNbxEbvkbqnbqnbqnbqnbxObqnbqnbvkbxPbqnbxQbxRbxQbsYbsYbvxbxSbtcbsYbvxbxTbxUbvNbvNbxVbxWbxXbxYbxZbvNbvNaaaaaaaaaaaaaadaadaadaadaadaadblibmpblkaadblibmpblkaaablibmpblkaadaiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvQbyabyabxdbvQbybbycbydbyebyfbtvbygbtvbtvbtvbtvbvWbtvbsnbyhbyibyjbykbylbymbynbyobypbsnbpVbpVbyqbyqbyqbyqbyqbyrbysbsCbytbpbbyubsybyvbywbyxbyybyybyzbyybyybyybyAbyybyBbxEbsybyCaaaaaaaaaaaaaaaaadaaabsybsybsybsybyDbsybyEbyFbyGbyHbyIbyJbyKbyLbyIbyJbyIbyIbyIbyIbyMbyIbyIbyNbyObyPbyQbyRbySbyTbyUbyVbyWbyWbyXbyYbyZbzabyZbyZbzbbzcbzdbzebzfbvybzfaaaaaaaaaaaaaaaaaaaaaaadaiYaaablibzgblkaaablibzgblkaadblibzgblkaaaaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvPbxdbxdbxdbzhbzibtvbtvbzibtvbtvbtvbtvbygbtvbtvbzjbsnbsnbzkbzlbsnbsnbzmbznbzobzpbtqbzqbzrbzrbzsbztbzubzvbzwbzxbzybzzbzAbzBbzCbtObzDbtObtObzEbzFbxEbxEbzGbxEbxEbxEbzHbxEbsybyCbzIbzJbzJbzJbzJbzKbzJbzJbzJbzJbzLbzMbzLbzMbzNbzObzPbzPbzPbzQbzPbzPbzPbzPbzPbzRbzRbzSbzRbzRbzRbzSbzTbzUbzVbzUbzTbzWbzXbzYbzYbzZbzXbzXbAabxbbxbbAbbAcbAbbxbbxbbxbbxbaaaaaaaaaaaaaaaaaaaaaaadaiYaaaaadaadaaaaaaaadaadaadaaaaaaaaaaaaaaaaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvQbyabyabyabvQbAdbAebAfbyebAgbtvbtvbtvbtvbtvbtvbvWbAhaaaaaaaaabAibAjbAkbAlbAmbAnbpVbpVbpVbpVbyqbAobAobApbAqbArbysbyqboTbpbbAsbsybAtbAubAvbAwbAxbAxbAxbAxbAxbAxbAxbAybAxbAxbAzbAAbABbACbACbACbACbADaadaaaaaabsybsybAEbAEbAEbzHbAFbAGbAHbAIbAJbAKbALbAMbANbAObAPbAQbARbASbATbAUbAVbAWbAXbAWbAVbAYbAZbBabBbbBcbBdbBebBfbBgbBhbBibBjbBkbBlbBmbBmbBnaadaaaaadaaaaaaaaaaaaaaaaiXaiXaiYaiYaiXaiXaiYaiYaiYaiXaiXaiXaiXaiXaiXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabvPbBobBpbBqbvPbBrbxfbxgbsnbsnbBsbBtbBubtvbBvbBwbvWbBxaaaaaaaaabBybBzbBAbBBbBCbBDbBEbBEbBFbBGbBHbBIbBIbBJbBKbBLbBMbBNbBObBPboTbBQbBRbBSbBTbBUbBVbBWbBXbBYbBZbCabBTbCbbCcbCdbCebCfbBTbCgbChbCibCjbCkaadaaaaaaaaaaaaaaaaaabClbzHbAFbCmbCnbCnbCnbCobCpbCqbCrbCsbCtbAQbCubCvbCwbAUbCxbCybCzbCybCxbAYbBdbCAbBdbCBbBdbBebBfbCCbCDbCDbBjbBkbCEbCFbCFbCGacRacRacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCHbvPbCIbvPbCJaaaaaaaaaaaabsnbsnbzkbzlbCKbzkbCLbCMbCNbCObCPbCQbCQbCRboGbCSbCTbCUbzrbzsbCVbzsbzsbztbztbztbCWbCXbCXbCXbCYbCZbribtObDabBTbDbbBUbDcbDdbBTbBTbDdbBTbBTbCbbDebDfbDgbDhbDibDjbDkbDlbBTbDmaadaaaaaaaaaaaaaaaaaabDnbzHbAFbCqbDobDpbCqbDqbDrbDsbDtbCsbDubAUbDvbDwbDxbDybDzbDAbDBbDAbDCbDDbDEbDFbDGbDHbBdbDIbBfbDJbDKbDLbDMbDNbDNbDObDObDObDPbDOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCHbvPbCIbvPbCJaaaaaaaaaaaabsnbsnbzkbzlbCKbzkbCLbCMbCNbCObCPbCQbCQbCRboGbCSbCTbCUbzrbzsbCVbzsbzsbztbztbztbCWbCXbCXbCXbCYbCZbrhbtObDabBTbDbbBUbDcbDdbBTbBTbDdbBTbBTbCbbDebDfbDgbDhbDibDjbDkbDlbBTbDmaadaaaaaaaaaaaaaaaaaabDnbzHbAFbCqbDobDpbCqbDqbDrbDsbDtbCsbDubAUbDvbDwbDxbDybDzbDAbDBbDAbDCbDDbDEbDFbDGbDHbBdbDIbBfbDJbDKbDLbDMbDNbDNbDObDObDObDPbDOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabCQbDQbDRbDSbDTbDTbDUbDVbDWbDXbDYbDSbCQbDZbEabEbboFbxtbBzbyqbEcbEdbEebAobArbArbEfbCXbEgbEhbEibpbbEjbsybEkbBTbBTbElbBTbBTbBTbBTbEmbEnbEobEpbBTbDfbEqbErbEsbBTbEtbEubEvbDmaadbEwbEwbEwbEwbEwaaabExbzHbAFbCqbEybEzbEAbDqbEBbECbDqbCsbEDbAUbEEbEFbCwbEGbEHbEIbEJbEIbEKbAYbELbBdbBdbEMbBdbBdbBfbENbEObEPbEQbERbESbETbEUbEVbEWbEXaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEYbDTbDTbDTbDTbDTbDTbDVbEZbDTbDTbDTbDTbFabEabFbboFbxtbBzbyqbFcbAobAobArbFdbArbArbCXbFebFfboVbFgboVbsybFhbBTbFibBUbFjbBTbBTbBTbCbbFkbFlbFmbEvbDfbFnbFobFpbFqbFrbFsbFtbFubFvbFwbFxbFybFzbEwaaabAEbzHbAFbDqbDqbDqbDqbDqbFAbFBbFCbCsbFDbAUbFEbFFbFGbFHbFIbFJbFKbFJbFLbzYbFMbFNbFObFPbFQbFRbBfbFSbFTbFTbFUbFVbFTbFWbFXbFYbFZbEXaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGabDTbDTbGbbDTbDTbDTbDVbGcbDTbDTbDTbDTbGdbEabGeboFbwhboFbyqbAobArbArbArbArbArbArbCXbGfbFfboTbpbboTbGgbBTbBTbBTbGhbGibGjbGkbGlbGmbGnbGobGpbGqbGrbGsbGtbGubGvbGwbGxbGybDmaadbGzbGAbFzbGBbEwaadbAEbzHbAFbGCbGDbGEbGFbDqbGGbGHbCobGIbGJbGKbGLbGMbGNbGObEGbGPbCxbGPbGQbGRbGSbGTbGUbGVbGUbGWbGXbGYbGZbEPbHabHbbHcbHdbHebEVbHfbEXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7909,10 +7909,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaaaaaabCQbCQbCQbCQbCQbJcbJdbJebJfbJgbJhbJibImbJgbJhbJibImbJjbJkboYboTboTbpbbJlbJmbJnbJobJpbJqbJrbJsbJtbJubJvbBTbBTbJwbBTbJxbJybJzbJAbJBbJCbJDbJEbJFbFvbFwbJGbFzbFzbEwaadbAEbJHbJIbJJbJKbJKbJKbJLbJMbJNbJObJObJPbJQbJQbJQbJQbJRbJSbJTbEJbJUbJVbJWbJXbJYbJZbKabBdbKbbKcaaaaaaaaabKdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadaadaaabKebAjbpVbKfbKgbKhbKibKjbKkbKlbKmbKlbKnbKobKmbKpbImbJjbJkboTboTboTbpbbKqbKrbKsbKtbKubKvbKwbKxbKybKzbKAbBTbKBbKCbBTbKDbKEbKFbBTbJBbJybKGbKHbDmaadbGzbKIbKJbGBbEwaadbAEbzHbAFbKKbKLbKMbKNbDqbDqbIFbDqbKObKPbEJbEJbEJbEJbKQbKRbEIbEJbEIbIQbKSbKTbKUbBdbKabBdbKVbKWaaaaaaaaabKXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaadaaabKYbAjbpVbKZbpVboGboFbHobLabIjbIjbIjbLbbIjbIjbIjbLcbHobHobHobHobLdbpbbLebLfbLgbLhbLibLjbLkbLlbLmbLhbLnbLobKtbKtbKtbLpbLqbLqbLrbJBbHCbLsbLtbLubLvbFwbLwbFzbFzbEwaadbAEbzHbAFbAFbAFbAFbLxbDqbDqbIFbLybLzbLAbLBbLCbLCbLDbLEbLFbLGbEJbLHbHXbLIbLJbLKbLLbKabBdbBebKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaabLMbLMbLMboFbpVbLNboFbqNbqPbHqbImbJgbJhbLObLbbJgbJhbJibImbImbLPbImbLQboTbpbbLRbsqbLSbKtbLTbLUbLVbLWbLXbIrbLYbJBbLZbKtbMabBVbLrbBVbMbbJBbJCbKGbMcbDmaadbEwbEwbEwbEwbEwaadbAEbzHbAFbMdbMebMdbAFbMfbDqbMgbCobMhbMibMjbMkbMkbMlbMmbMnbEIbEJbMobMpbMqbMrbMqbMqbMsbMtbMtbMuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaabLMbLMbLMboFbpVbLNboFbqMbqObHqbImbJgbJhbLObLbbJgbJhbJibImbImbLPbImbLQboTbpbbLRbsqbLSbKtbLTbLUbLVbLWbLXbIrbLYbJBbLZbKtbMabBVbLrbBVbMbbJBbJCbKGbMcbDmaadbEwbEwbEwbEwbEwaadbAEbzHbAFbMdbMebMdbAFbMfbDqbMgbCobMhbMibMjbMkbMkbMlbMmbMnbEIbEJbMobMpbMqbMrbMqbMqbMsbMtbMtbMuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaabLMbMvbMwboFbpVbKZboFbMxbMybHqbImbMzbMAbKlbMBbKobMCbKpbImbImbMDbImbLQboTbpbboTbMEbMFbMGbMHbIrbFjbKvbMIbIrbGmbJBbLZbKtbMabBVbMbbBVbMbbMJbJCbMKbMLbJFbFvbFwbMMbMNbMObEwaadbClbzHbAFbMPbMPbMPbMQbFBbMRbMSbCqbMTbMUbMUbMUbMVbMWbMXbMYbMZbEJbNabNbbNcbNdbNebNfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaabLMbMvbNgbNhboIbNiboFbNjbNkbNjbNjbNjbNjbNjbNjbNjbNjbNlbNlbNjbNjbNjbNjbNmbNnbNoboVboTboTbNpbNqbNrbNsbNtbNqbGmbNubKtbKtbKtbNvbMbbBVbMbbJBbJCbKGbNwbDmaadbGzbNxbNybNzbEwaadbDnbNAbAFbNBbNCbNCbMQbDqbNDbNEbDqbNFbNGbNHbNIbMVbNJbNKbNLbEIbEJbEIbNMbNNbNObNPbNfbNQbNRbNRbNRbNRbNSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaiXaiXaiYaiYaiXaiYaiYaiYbNTaiYaiYaiYaiXaiXaaaaaaaadaadaaaaaaaaaaaaaaaaaabLMbMvbNUbNjbNjbNVbNjbNWbNXbNjbNYbNZbOabNjbObbOcbOdbOebOebOfbOgbribOhbOibpbbOjbsqbOkbOlbOmbOnbIrbLUbAzbIrbLYbJBbKBbOobOpbOqbLqbOrbOsbJBbHCbOtbOubLubLvbFwbOvbMNbMNbEwaadbExbzHbAFbOwbOxbOxbMQbCqbOybOzbFBbOAbOBbOCbODbMkbOEbOFbOGbMZbEJbEIbOHbOIbOJbOKbNfbOLbOMbNPbONbOObOPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaiXaiXaiYaiYaiXaiYaiYaiYbNTaiYaiYaiYaiXaiXaaaaaaaadaadaaaaaaaaaaaaaaaaaabLMbMvbNUbNjbNjbNVbNjbNWbNXbNjbNYbNZbOabNjbObbOcbOdbOebOebOfbOgbrhbOhbOibpbbOjbsqbOkbOlbOmbOnbIrbLUbAzbIrbLYbJBbKBbOobOpbOqbLqbOrbOsbJBbHCbOtbOubLubLvbFwbOvbMNbMNbEwaadbExbzHbAFbOwbOxbOxbMQbCqbOybOzbFBbOAbOBbOCbODbMkbOEbOFbOGbMZbEJbEIbOHbOIbOJbOKbNfbOLbOMbNPbONbOObOPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaaaaaaaadaadaaaaadaadaaaaaaaadaadaadaaaaiXaaaaadaadaaaaaaaaaaaaaaaaaaaaabLMbMvbNUbOQbORbOebOSbOebOebOTbOUbOVbOebOWbOebOVbOebOebOebOXbOYboTbOZbPabPbbPcbPdbsqbsqbsqbnRbPebPfbPgbIrbPhbPibBTbGqbPjbBTbGubPkbPlbPmbGwbKGbBTbDmaadbEwbEwbEwbEwbEwaadbAEbzHbAFbPnbPobDqbPpbPqbDqbIFbPrbPsbPtbPubPvbPwbPxbPybPzbPAbEJbPBbPCbPDbPEbPFbPGbPHbNPbNPbPIbPJbNfbNfbNfbNfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaaabPKbPLbPMaaabPKbPLbPMaaabPKbPLbPMaadbPNaadaadaaaaaaaaaaaaaaaaaaaaaaaabLMbMvbNUbPObPPbOebOUbOebPQbPRbPSbPTbPSbPSbPSbPSbPUbPSbPVbOXbPWboTboZbPXbPYbPZbQabQbbQcbQbbQdbBTbBTbEqbGzbQebFobQfbOqbOsbQgbQhbQibFpbQjbJCbQkbQlbJFbFvbFwbQmbQnbQnbEwaadbAEbzHbAFbQobQpbQqbQrbQsbQtbQubQvbLAbQwbQwbQwbQxbQybQybQzbQAbQBbQCbQDbQEbQFbQGbQHbQIbQIbQIbQJbQKbQLbQMbQMbNfaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaaabPKbQNbPMaaabPKbQNbPMaaabPKbQNbPMaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaabLMbMvbNUbNjbNjbQObOebOebQPbQQbOebQRbQQbQSbQQbQTbOebQUbQVbQWbQXboTbQYbQZboTbRabQabRbbBTbRbbBTbBTbBTbKvbRcbBTbJBbCgbCjbChbRdbRebDjbRfbRgbJCbKGbRhbDmaadbGzbRibRjbRkbEwaadbAEbzHbAFbRlbRmbRnbRobRpbRqbRrbRsbRtbRubRvbRwbRxbRybRzbRAbRBbRCbRDbREbRFbRGbNPbNPbNPbNPbNPbRHbRIbQMbQMbQMbNfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -7927,26 +7927,26 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYaadbPKbWNbPMaaabPKbWNbPMaaabPKbWNbPMaadaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaabLMbYdbYebYebYebYfbLMbLMbYgbYhbYibYjbYjbYkbYibYibYibYlbYmbYnbYobYpbYqbYrbVybYsbWobWtbYtbYubYvbYwbYwbUsbWnbUvbEwbXQbYxbXQbEwbXSbYybXSbEwbXWbYzbXWbEwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXobUIbXpbUIbYAbXpbXpbUIaaabWKbYBbXtbYCbYDbYDbYDbWKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYaadbPKbWNbPMaaabPKbWNbPMaadbPKbWNbPMaadaadaadaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVebVebYEbUvbVfbVfbYFbUvbYGbYHbYIbYJbWTbYKbYLbYMbYNbVybYObYPbYLbYQbVybYRbYSbYTbYUbYNbUvbEwbEwbEwbEwbEwbEwbEwbEwbEwbEwbEwbEwbEwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXobUIbYVbUIbYWbYWbYWbUIaaabWKbYXbXtbYYbYZbYZbZabWKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNTaadbPKbZbbPMaaabPKbZbbPMaaabPKbZbbPMaadaiYaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaabUvbZcbUvbUvbUvbUvbZdbZebWhbZfbZfbZfbWhbWhbWhbZgbZhbZibZjbZkbZlbZmbWhbWhbZnbZobZpbZqbUvbUvbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaabaaaaaaaaaaaaaaaaabaaabWKbZrbZsbZtbZubZubZubWKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYaaaaadaaaaaaaaaaadaadaadaaaaaaaadaadaaaaiYaadaadaaaaaaaaaacRacRbZvbZvbZvaadaadaadaadaadaadaaaaadbZqbVybZwbWhbWhbWhbWhbZxbVybZybVybVybZzbZAbZBbZCbZDbZCbZEbZFbZGbZHbVybVybVybZIbZJbZKbZLbZLbUvbUvbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaabaabaabaabaabaabaabaaabVObZMbZNbZMbZMbZMbZMbZOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaiXaiYaiXaiXbZPaiYaiYaiYaiYaiXaiYaiYaiXbZQaadaaaaaaaadaadbZvacRacRacRacRacRacRacRbZRbZSbZSbZSbZSbZTbWhbZUbVybVybZVbZWbZIbVybZXbVybVybZYbZZcaacabcaccabcadbZZcaecafbVybZHbVybZIcagbZqbZLbZLbZLbZLbZLbZLbZLaadaadaadaadaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWwbWxbWxbWyaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbZvcahcaiacRacRacRacRacRbZLbZLbZLbZLbZLcajcakbVycalcamcancaobZIbVybVycapbZibZicaqcarcascatbWgcaucaqbZgbZgbZobVycavbZIcawbUvbZLbZLbZLbZLbZLbZLbZLaaaaaaaadaadacRacRaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadbZvaabaabacRaabacRacRcaxbZRbZSbZSbZSbZScaybVybVybVybVycazcaAcaBcaCcaDcaEcaFcaGbWmcaHcaIcaJcaKcaLbWmcaMcaBcaBcaDcaNcaBcaObUvbZLbZLbZLbZLbZLbZLaadaadaadacRaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadbZvacRbZvacRacRacRacRacRacRacRacRacRaadaadaaaaadcaPcaQbVybVybVybUvbZqcaRbUvcaScaTcaTcaTcaUcaVcaWcaXcaYcaZcaUcaTcaTcaTcaSbUvcaRbZqbUvbZLbZLbZLbZLbZLbZLaadaadaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacRacRacRacRacRacRacRacRacRacRaaaaadaaaaadaaabUvcbacbbcbccbdbUvcbecbfbUvcbgcbhcbicbhcbjcbkcblcbmcbncaZcbocbhcbhcbhcbpbUvcbfcbqbUvbUvbUvbUvbZLbZLbZLaadaadacRaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaacRacRacRacRacRacRacRacRacRacRaaaaaaaaaaaaaadacRbUvbUvbUvbUvbUvbUvbUvcaRbUvbUvcbrcbscbtcbucbvcaDcbwcaDcbxcbycbtcbscbzbUvbUvcaRbUvbUvaadaadbZLbZLaadbZLaaaaadaadacRacRaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYaaaaadaaaaaaaaaaadaadaadaaaaaaaadaadaaaaiYaadaadaaaaaaaaaawzawzawzawzawzaadaadaadaadaadaadaaaaadbZqbVybZvbWhbWhbWhbWhbZwbVybZxbVybVybZybZzbZAbZBbZCbZBbZDbZEbZFbZGbVybVybVybZHbZIbZJbZKbZKbUvbUvbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaabaabaabaabaabaabaabaaabVObZLbZMbZLbZLbZLbZLbZNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiXaiXaiYaiXaiXbZOaiYaiYaiYaiYaiXaiYaiYaiXbZPaadaaaaaaaadaadbZQacRacRacRawzacRacRacRbZRbZSbZSbZSbZSbZTbWhbZUbVybVybZVbZWbZHbVybZXbVybVybZYbZZcaacabcaccabcadbZZcaecafbVybZGbVybZHcagbZqbZKbZKbZKbZKbZKbZKbZKaadaadaadaadaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWwbWxbWxbWyaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbZQcahcaiacRacRacRacRacRcajbZKbZKbZKbZKcakcalbVycamcancaocapbZHbVybVycaqbZibZicarcascatcaubWgcavcarbZgbZgbZobVycawbZHcaxbUvbZKbZKbZKbZKbZKbZKbZKaaaaaaaadaadacRacRaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadbZQaabaabacRaabacRacRacRbZRbZSbZSbZSbZScaybVybVybVybVycazcaAcaBcaCcaDcaEcaFcaGbWmcaHcaIcaJcaKcaLbWmcaMcaBcaBcaDcaNcaBcaObUvbZKbZKbZKbZKbZKbZKaadaadaadacRaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadbZQacRbZQacRacRacRacRacRacRacRacRacRaadaadaaaaadcaPcaQbVybVybVybUvbZqcaRbUvcaScaTcaTcaTcaUcaVcaWcaXcaYcaZcaUcaTcaTcaTcaSbUvcaRbZqbUvbZKbZKbZKbZKbZKbZKaadaadaadaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacRacRacRacRacRacRacRacRacRacRaaaaadaaaaadaaabUvcbacbbcbccbdbUvcbecbfbUvcbgcbhcbicbhcbjcbkcblcbmcbncaZcbocbhcbhcbhcbpbUvcbfcbqbUvbUvbUvbUvbZKbZKbZKaadaadacRaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaacRacRacRacRacRacRacRacRacRacRaaaaaaaaaaaaaadacRbUvbUvbUvbUvbUvbUvbUvcaRbUvbUvcbrcbscbtcbucbvcaDcbwcaDcbxcbycbtcbscbzbUvbUvcaRbUvbUvaadaadbZKbZKaadbZKaaaaadaadacRacRaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacRacRacRacRacRacRacRacRaadaaaaaaaadacRaadacRacRaadaaaaadacRbUvcbAcbBaaaaaaaaaaaacbCcbDcbscbscbscbscbscbDcbEaadcbFcbFcbFcbGcbHbUvaadaadaadaadaadaadaadaaaaadacRaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRacRacRacRacRacRacRacRacRaaaaaaaaaaaaaadaaaaadaadaaaaaaaaaaadbUvcbIcbJaaaaaaaaaaaaaadaadcbFaadcbFaadaaaaaaaaacbKaaaaaaaaacbLcbIbUvaadaadaaaaaaaaaacRaadaadaadaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadbZvacRacRacRacRacRacRacRacRaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaabUvcbMcbNcbFcbFcbFcbFcbOaadaaaaadcbPaadcbFaadcbOcbKaaaaadaaacbQcbRbUvaaaaadaaaaadaadaadaadaadacRaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZLcbSaaaaaaaaaaadaadaaaaaaaaacbTaaaaadcbFaadaaaaadaaabZLcbIbUvaaaaaaaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUaaaaaaawzaaaaaaaaaawzaaaaaaawzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZLbZLaadaadaaaaadcbFaadaadaadaadaadaaaaaaaaaaaaaadbZLbZLcbIbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUaaaaaaawzaaaaaaaaaawzaaaaaaawzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbVcbWbZLaadaaaaaaaaaaaaaadbZLbZLbZLaadcbXcbFaadaaaaadbZLcbWcbVbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbYcbZbZLaadaaaaadcbOcbFaadcbLccabZLaadaaacbOcbKaaaaaabZLccbcccbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbVcbWbZLaadaaaaadaadccdaadbZLbZLbZLaadaaaaaacbKaaaaaabZLcbWcbVbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZLbZLaadaaaaaaaaaaaaaadaadaadaadaadaaaaaacbKaaaaaabZLbZLcbIbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZLcceaaaaaaccfaadaaaaaaaaaaaaaaaaaaaadcbFaadaaaaaabZLbZLcbIbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvccgcchbZLaaaaaaaaacbOaadcbFaadcbOaadcbFaadcbOaaacciaadbZLccjcckbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbWcbWbZLcbFcbFcbFcbFaadaaaaadcbFaadaaaaadaadaadaaaaaabZLcbWcbWbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcclbZLbZLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZLbZLcclbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaadbZQacRacRacRacRacRacRacRacRaadaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaabUvcbMcbNcbFcbFcbFcbFcbOaadaaaaadcbPaadcbFaadcbOcbKaaaaadaaacbQcbRbUvaaaaadaaaaadaadaadaadaadacRaadaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZKcbSaaaaaaaaaaadaadaaaaaaaaacbTaaaaadcbFaadaaaaadaaabZKcbIbUvaaaaaaaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUaaaaaaawzaaaaaaaaaawzaaaaaaawzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZKbZKaadaadaaaaadcbFaadaadaadaadaadaaaaaaaaaaaaaadbZKbZKcbIbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbUaaaaaaawzaaaaaaaaaawzaaaaaaawzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbVcbWbZKaadaaaaaaaaaaaaaadbZKbZKbZKaadcbXcbFaadaaaaadbZKcbWcbVbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbYcbZbZKaadaaaaadcbOcbFaadcbLccabZKaadaaacbOcbKaaaaaabZKccbcccbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbVcbWbZKaadaaaaadaadccdaadbZKbZKbZKaadaaaaaacbKaaaaaabZKcbWcbVbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZKbZKaadaaaaaaaaaaaaaadaadaadaadaadaaaaaacbKaaaaaabZKbZKcbIbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbIbZKcceaaaaaaccfaadaaaaaaaaaaaaaaaaaaaadcbFaadaaaaaabZKbZKcbIbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvccgcchbZKaaaaaaaaacbOaadcbFaadcbOaadcbFaadcbOaaacciaadbZKccjcckbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcbWcbWbZKcbFcbFcbFcbFaadaaaaadcbFaadaaaaadaadaadaaaaaabZKcbWcbWbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUvcclbZKbZKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZKbZKcclbUvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXoaaaaaaaadaaaaaaaaaaadaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccmccnccoccnccmaadaaaaaaaaaaadccmccnccpccnccmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccmccqccrccsccmaadaaaaaaaaaaadccmccsccqccqccmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -8603,14 +8603,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcxJcxicxjcxhcxWcxhcxjcxhcxlcxlcxJcxhcxhcxhcxhcxjcxhcwJcvfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcwAcwycwycxXcxMcxMcxYcxZcyacxUcybcyccxpcyccydcyeacRcyfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcwJcwJcxhcxjcxhcygcyhcyicyjcxlcykcxlcxlcylcymcyncxJcxicxjcwJcvfaadaaaaaaaaaaaaaaacwCaaaaaaaadaadaadcwAcwAcwAcyocwAcwycwXcypcyqcyrcyscytcwYcwYcxqcxrcxEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcwJcwJcxJcxhcygcyucyvcywcxlcxlcxlcxlcxlcyxcyxcyycyncxhcxicwJcvfaadaadaaacvfcyzcyzcyAcyzcyzcyzcyzcyzcyzcwAcwAcyBcwAcwAcwAcyCcyCcyDcyCcyCcyCcwPcwPcwPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcwJcxJcxJcyEcyFcxicxlcxlcxlcxlcxlcxlcxlcxlcyGcyHcxJcyIcwJcvfcvfaadaadcvfcyzcyJcyKcyJcyLcyMcyNcyOcyzcyPcyPcyQcyPcyPcwAcvfaadacRacRaaacvfbZvacRawzaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcwJcxJcxJcyEcyFcxicxlcxlcxlcxlcxlcxlcxlcxlcyGcyHcxJcyIcwJcvfcvfaadaadcvfcyzcyJcyKcyJcyLcyMcyNcyOcyzcyPcyPcyQcyPcyPcwAcvfaadacRacRaaacvfbZQacRawzaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwJcwJcwJcwJcwJcxJcxJcyEcyucxicxlcyRcyRcyRcyRcyRcxlcxlcyScyHcxlcxJcwJcwJcwJcwJcwJaaacyzcyTcyUcyVcyVcyVcyVcyVcyWcyXcyPcyQcyPcyYcwAaadaaaaaaaaaaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcxJcyZczacxJcxJczbczccxlczdaaaaaaaaaaaaaaacyRcxlcySczecxlcxJcxhcxJcxlcwJcwJaadcyzczfczgcyJcyJcyJcyJcyJcyzczhcyPcyQcyPcyPcwAaadaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwJcwJczicxhcyScyncxJcxicxJcxlcxlcyRaaaaaaaaaaaaaaacyRcxlczjcxlcxJczkczlczmcxhcxJcwJcwJcyzcyAczncyzczoczoczoczocyzczpczqczrczqczqcwKcwCaaaaaaaaaaaaaaaaaaaaaaaaacRacRcvfawzacRawzacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwJcwJcxxcxjczscyHcxicxicxicxjcxlcyRaaaaaaaaaaaaaaacyRcxlcztcxlcxJczuczvczmcxhczwcwJcwJczxczyczzczzczAczAczAczAcyzcyzcyzcyzcyzcwAcwAaadaadaaaaaaaaaaaaaaaaaaaaaacRacRcvfawzacRbZvacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwJcwJczBcxJczscyHcxJcxjcyjczCcxlcyRaaaaaaaaaaaaaaacyRcxlcxlczDcxlcxJcxhczEcxjczBczFczFczxczGczHczzczAczAczAczIcyzbZvacRcyzcyzaaaaadaaaaaaaaaaaaaaaaaaaaaacRacRacRcvecvfawzacRawzacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwJcwJcxxcxjczscyHcxicxicxicxjcxlcyRaaaaaaaaaaaaaaacyRcxlcztcxlcxJczuczvczmcxhczwcwJcwJczxczyczzczzczAczAczAczAcyzcyzcyzcyzcyzcwAcwAaadaadaaaaaaaaaaaaaaaaaaaaaacRacRcvfawzacRbZQacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwJcwJczBcxJczscyHcxJcxjcyjczCcxlcyRaaaaaaaaaaaaaaacyRcxlcxlczDcxlcxJcxhczEcxjczBczFczFczxczGczHczzczAczAczAczIcyzbZQacRcyzcyzaaaaadaaaaaaaaaaaaaaaaaaaaaacRacRacRcvecvfawzacRawzacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcxJczJczecxhcxiczKczEcxlcyRaaaaaaaaaaaaaaacyRcxlcxlczLcxJcxJcylczccxJcwJczFczMczNczOczPczzczAczQczAczIczRaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaacRacRacRacRczScvfawzczTawzacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcwJcwJcwJcxJcxJcyEcxlcxlcxhcyRcyRcyRcyRcyRcxlcxlcxlczUcxicxicwJcwJcwJcwJczFczGczxczVczVczWczVczVczVczVczVczVczVaadaadaaaaaaaaaaaaacRacRawzacRacRczTacRczXcvecvfawzcvebZvacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcwJcwJcwJcwJcwJcxJcxJcyEcxlcxlcxhcyRcyRcyRcyRcyRcxlcxlcxlczUcxicxicwJcwJcwJcwJczFczGczxczVczVczWczVczVczVczVczVczVczVaadaadaaaaaaaaaaaaacRacRawzacRacRczTacRczXcvecvfawzcvebZQacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcwJcwJcwJcxhczYczZcxlcxhcxjcxlcxlcxlcxicxhcxlcxlcAaczUcxjcxJcwJcwJcwJaadaadczGczxcAbcAccAcczVcAbcAdcAecAeczVczVaadacRaadaadaadacRacRczSawzacRcvfcveczSczTcAfcvfawzcveawzacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadcwJcwJcxjcxicAgcxlcxlcxhcAhcxhcxicxjcxucxwcxucAhcAicxicxicwJcwJaaaaaaczMcAjczxcAkcAbcAkcAkcAkcAkcAkczVczVaaaaaaaaaaadaaaaaaacRcvecveawzacRcAlcAlcAlcAlcAlcAlcAmcAmcAmacRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxmcxlcxmaadaadczZcylcyHcxJcxJcxJcAncAocAoczecxhcxhcxJcwJcwJaaacApcAqcArczxcAkcAkcAkcAkcAscAkczVczVczVaaaaadaadacRaaacAtcAmcAmcAmcAmcAmcAmcAucAvcAwcAxcAwcAycAzcAmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -8626,8 +8626,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDbcDccDccDccDccDdcCrcCqcCrcCqcDecDfcDfcDfcDgcDfcDhcBNcBQcBRcDicCNcDjcCucDkcBdcBdcAQcDlcDmcAQcAQcAQcAQcAQcDncCXcAfczTcDoacRczTacRacRcAfcCXczxczAcCYczAcDpczxcAkcAkcAkcAkcAkcAkcBBczVcDqcDqawzcDraaaaaaaaaaaaaadaaaaaaaaaaadcAlcDscBvcAwcAwcAwcDtcAmcDucDvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDwcDxcDycDzcDAcDzcCbcCacCbcCacBNcBNcBNcBNcBNcBNcDBcBNcDCcDCcDCcDCcDCcDCcDCcDCcDCcDCcDDcDEcDCcDCczxczxczxczxczxczxczxczxczTcCXcCXcCXczTacRczxczAcDFcCzcCzcDGcBpcBpcBpcBpcBpcBpcDHcDIbWxbWxbWycDJcDqaaaawzawzcDKawzawzawzcAIcAlcAmcBvcAwcAwcAwcAwcDLcAwcDLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBYcCpcCqcCrcCqcCrcCqcCrcCqcBNcDfcBNaaacDCcDMcDMcDMcDMcDMcDNcDMcDMcDMcDMcDCcDMcDMcDOcDMcDMcDMczxczAczAczAcDPczAczxczxczxczxczxczxczxczxczxczAcCYczAczAczxcAkcAbcAkcAkcAkcAkcBBczVcBtawzbWwbWxbWxcDQcDRcDRcDSbWxbWxbWxbWxcDTcDUcDVcBccAwcAwcAwcAmcDucDvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBYcBZcCacCbcDWcCbcCacCbcCacBNcDfcDXaaacDCcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDCcDYcDMcDOcDMcDMcDZczxcEaczAczAczAczAczxczxczxczxcDPczAczAcEbczAczAcEccCzcEdczxcAkcAkcAkcAkcAkcEecBBbZvaadaaacEfcEfcEfcEgbZvawzaaacEhcEhcEfcEicAlcAmcAwcEjcAwcEkcEkcAmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBNcElcBNcBNcBNcBNcBNcBNcBNcBNcBNaaacDCcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcEmcDMcDMcDOcDMcDMcDMczxczAczAczAczAczAcEbczAcEnczAcEocCzcCzcEpcCzcCzcEqczAcCYczxcAkcAkcAkcAkcAkcErcBBbZvaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEscAmcCCcAmcAwcEtcEtcAmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBYcBZcCacCbcDWcCbcCacCbcCacBNcDfcDXaaacDCcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcDCcDYcDMcDOcDMcDMcDZczxcEaczAczAczAczAczxczxczxczxcDPczAczAcEbczAczAcEccCzcEdczxcAkcAkcAkcAkcAkcEecBBbZQaadaaacEfcEfcEfcEgbZQawzaaacEhcEhcEfcEicAlcAmcAwcEjcAwcEkcEkcAmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBNcElcBNcBNcBNcBNcBNcBNcBNcBNcBNaaacDCcDMcDMcDMcDMcDMcDMcDMcDMcDMcDMcEmcDMcDMcDOcDMcDMcDMczxczAczAczAczAczAcEbczAcEnczAcEocCzcCzcEpcCzcCzcEqczAcCYczxcAkcAkcAkcAkcAkcErcBBbZQaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEscAmcCCcAmcAwcEtcEtcAmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBNcBNcBNaaaaaaaaaaaaaaaaaaaaaaaaaaacDCcDMcDMcDCcDCcDCcEucDCcDCcDCcEucDCcDMcDMcEvcEwcExcEwcEycCzcCzcEzcCzcCzcEpcCzcCzcCzcEqczAczAcEbczAczAczAczAcEAczFcEBcBBcErcAkczVawzaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacECcEDcAmcAwcAmcAmcAmcAmcAmcAlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacDCcDMcDMcDCcEEcDNcDMcDCcEEcDNcDMcDCcEFcEFcEFcEGcEHcEIczxcEaczAcCYczAczAcEbczAczAczAczAczFczFczFczFczFczFcEJcEAcEKcvecBBczVczVczVaaaaaaaaaaaaaaaaaaaaaaaacELaaaaaaaadaaaaadaadcAmcEMcENcEOcAwcDacENcAwcAwcAlcAlcAlcAlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadcDMcDCcEPcDMcEQcDCcEPcDMcEPcDCcDMcDMcDMcDMcDOcDMcDCczAczAcERcESczAcEbczAczAczAczAczFcvecvecETcvecvecEUcEVcvecvfcvfawzawzawzaaaaaaaaacyfaaaaaaaaaaaaaaaaaaaadcEWcEWaadaadcAmcEXcAwcAwcAwcAwcAwcAwcAwcEYcAwcEZcAlaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/sound/machines/juicer.ogg b/sound/machines/juicer.ogg
new file mode 100644
index 00000000000..43c5edb6618
Binary files /dev/null and b/sound/machines/juicer.ogg differ
diff --git a/tgstation.dme b/tgstation.dme
index 83fcb431e49..8e125b70d7a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -49,6 +49,7 @@
#define FILE_DIR "code/game/machinery/computer"
#define FILE_DIR "code/game/machinery/doors"
#define FILE_DIR "code/game/machinery/embedded_controller"
+#define FILE_DIR "code/game/machinery/kitchen"
#define FILE_DIR "code/game/machinery/pipe"
#define FILE_DIR "code/game/magic"
#define FILE_DIR "code/game/magic/cultist"
@@ -346,7 +347,6 @@
#include "code\game\machinery\alarm.dm"
#include "code\game\machinery\atmo_control.dm"
#include "code\game\machinery\autolathe.dm"
-#include "code\game\machinery\blender.dm"
#include "code\game\machinery\camera.dm"
#include "code\game\machinery\cell_charger.dm"
#include "code\game\machinery\constructable_frame.dm"
@@ -356,18 +356,15 @@
#include "code\game\machinery\door_control.dm"
#include "code\game\machinery\flasher.dm"
#include "code\game\machinery\Freezer.dm"
-#include "code\game\machinery\gibber.dm"
#include "code\game\machinery\hologram.dm"
#include "code\game\machinery\hydroponics.dm"
#include "code\game\machinery\igniter.dm"
#include "code\game\machinery\lightswitch.dm"
#include "code\game\machinery\machinery.dm"
-#include "code\game\machinery\microwave.dm"
#include "code\game\machinery\morgue.dm"
#include "code\game\machinery\navbeacon.dm"
#include "code\game\machinery\OpTable.dm"
#include "code\game\machinery\overview.dm"
-#include "code\game\machinery\processor.dm"
#include "code\game\machinery\recharger.dm"
#include "code\game\machinery\rechargestation.dm"
#include "code\game\machinery\requests_console.dm"
@@ -420,6 +417,11 @@
#include "code\game\machinery\embedded_controller\access_controller.dm"
#include "code\game\machinery\embedded_controller\airlock_controller.dm"
#include "code\game\machinery\embedded_controller\embedded_controller_base.dm"
+#include "code\game\machinery\kitchen\blender.dm"
+#include "code\game\machinery\kitchen\gibber.dm"
+#include "code\game\machinery\kitchen\juicer.dm"
+#include "code\game\machinery\kitchen\microwave.dm"
+#include "code\game\machinery\kitchen\processor.dm"
#include "code\game\machinery\pipe\construction.dm"
#include "code\game\machinery\pipe\pipe_dispenser.dm"
#include "code\game\magic\library.dm"