"
- if(inventory_head)
- dat += "
Head: [inventory_head] (Remove)"
- else
- dat += "
Head: Nothing"
- if(inventory_back)
- dat += "
Back: [inventory_back] (Remove)"
- else
- dat += "
Back: Nothing"
-
- user << browse(dat, text("window=mob[];size=325x500", name))
- onclose(user, "mob[real_name]")
- return
-
-/mob/living/simple_mob/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(inventory_head && inventory_back)
- //helmet and armor = 100% protection
- if( istype(inventory_head,/obj/item/clothing/head/helmet) && istype(inventory_back,/obj/item/clothing/suit/armor) )
- if( O.force )
- usr << "This animal is wearing too much armor. You can't cause them any damage."
- for (var/mob/M in viewers(src, null))
- M.show_message("[user] hits [src] with the [O], however [src] is too armored.")
- else
- usr << "This animal is wearing too much armor. You can't reach its skin."
- for (var/mob/M in viewers(src, null))
- M.show_message("[user] gently taps [src] with the [O].")
- if(prob(15))
- visible_emote("looks at [user] with [pick("an amused","an annoyed","a confused","a resentful", "a happy", "an excited")] expression on \his face")
- return
- ..()
-
-/mob/living/simple_mob/corgi/Topic(href, href_list)
- if(usr.stat) return
-
- //Removing from inventory
- if(href_list["remove_inv"])
- if(!Adjacent(usr))
- return
- var/remove_from = href_list["remove_inv"]
- switch(remove_from)
- if("head")
- if(inventory_head)
- name = real_name
- desc = initial(desc)
- speak = list("YAP", "Woof!", "Bark!", "AUUUUUU")
- speak_emote = list("barks", "woofs")
- emote_hear = list("barks", "woofs", "yaps","pants")
- emote_see = list("shakes its head", "shivers")
- desc = "It's a corgi."
- inventory_head.loc = src.loc
- inventory_head = null
- regenerate_icons()
- else
- to_chat(usr, "There is nothing to remove from its [remove_from].")
- return
- if("back")
- if(inventory_back)
- inventory_back.loc = src.loc
- inventory_back = null
- regenerate_icons()
- else
- to_chat(usr, "There is nothing to remove from its [remove_from].")
- return
-
- //Adding things to inventory
- else if(href_list["add_inv"])
- if(!Adjacent(usr))
- return
- var/add_to = href_list["add_inv"]
- if(!usr.get_active_hand())
- usr << "You have nothing in your hand to put on its [add_to]."
- return
- switch(add_to)
- if("head")
- if(inventory_head)
- usr << "It's is already wearing something."
- return
- else
- place_on_head(usr.get_active_hand())
-
- var/obj/item/item_to_add = usr.get_active_hand()
- if(!item_to_add)
- return
-
- var/list/allowed_types = list(
- /obj/item/weapon/bedsheet,
- /obj/item/clothing/glasses/sunglasses,
- /obj/item/clothing/head/caphat,
- /obj/item/clothing/head/that,
- /obj/item/clothing/head/beret,
- /obj/item/clothing/head/nursehat,
- /obj/item/clothing/head/pirate,
- /obj/item/clothing/head/ushanka,
- /obj/item/clothing/head/chefhat,
- /obj/item/clothing/head/wizard,
- /obj/item/clothing/head/wizard/fake,
- /obj/item/clothing/head/hardhat,
- /obj/item/clothing/head/hardhat/white,
- /obj/item/clothing/head/helmet,
- /obj/item/clothing/head/helmet/space/santahat,
- /obj/item/clothing/head/collectable/chef,
- /obj/item/clothing/head/collectable/police,
- /obj/item/clothing/head/collectable/wizard,
- /obj/item/clothing/head/collectable/rabbitears,
- /obj/item/clothing/head/collectable/beret,
- /obj/item/clothing/head/collectable/pirate,
- /obj/item/clothing/head/collectable/hardhat,
- /obj/item/clothing/head/collectable/captain,
- /obj/item/clothing/head/collectable/paper,
- /obj/item/clothing/head/soft
- )
-
- if( ! ( item_to_add.type in allowed_types ) )
- usr << "It doesn't seem too keen on wearing that item."
- return
-
- usr.drop_item()
-
- place_on_head(item_to_add)
-
- if("back")
- if(inventory_back)
- usr << "It's already wearing something."
- return
- else
- var/obj/item/item_to_add = usr.get_active_hand()
- if(!item_to_add)
- return
-
- //Corgis are supposed to be simpler, so only a select few objects can actually be put
- //to be compatible with them. The objects are below.
-
- var/list/allowed_types = list(
- /obj/item/clothing/suit/armor/vest,
- /obj/item/device/radio
- )
-
- if( ! ( item_to_add.type in allowed_types ) )
- usr << "This object won't fit."
- return
-
- usr.drop_item()
- item_to_add.loc = src
- src.inventory_back = item_to_add
- regenerate_icons()
- else
- ..()
-
-/mob/living/simple_mob/corgi/proc/place_on_head(obj/item/item_to_add)
- item_to_add.loc = src
- src.inventory_head = item_to_add
- regenerate_icons()
-
- //Various hats and items (worn on his head) change Ian's behaviour. His attributes are reset when a HAT is removed.
- switch(inventory_head && inventory_head.type)
- if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain)
- name = "Captain [real_name]"
- desc = "Probably better than the last captain."
-/*
- if(/obj/item/clothing/head/accessory/kitty, /obj/item/clothing/head/collectable/kitty)
- name = "Runtime"
- emote_see = list("coughs up a furball", "stretches")
- emote_hear = list("purrs")
- speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW")
- desc = "It's a cute little kitty-cat! ... wait ... what the hell?"
- if(/obj/item/clothing/head/accessory/bunny, /obj/item/clothing/head/collectable/rabbitears)
- name = "Hoppy"
- emote_see = list("twitches its nose", "hops around a bit")
- desc = "This is hoppy. It's a corgi-...urmm... bunny rabbit"
-*/
- if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret)
- name = "Yann"
- desc = "Mon dieu! C'est un chien!"
- speak = list("le woof!", "le bark!", "JAPPE!!")
- emote_see = list("cowers in fear", "surrenders", "plays dead","looks as though there is a wall in front of him")
-/*
- if(/obj/item/clothing/head/det_hat)
- name = "Detective [real_name]"
- desc = "[name] sees through your lies..."
- emote_see = list("investigates the area","sniffs around for clues","searches for scooby snacks")
-*/
- if(/obj/item/clothing/head/nursehat)
- name = "Nurse [real_name]"
- desc = "[name] needs 100cc of beef jerky...STAT!"
- if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate)
- name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]"
- desc = "Yaarghh!! Thar' be a scurvy dog!"
- emote_see = list("hunts for treasure","stares coldly...","gnashes his tiny corgi teeth")
- emote_hear = list("growls ferociously", "snarls")
- speak = list("Arrrrgh!!","Grrrrrr!")
- if(/obj/item/clothing/head/ushanka)
- name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]"
- desc = "A follower of Karl Barx."
- emote_see = list("contemplates the failings of the capitalist economic model", "ponders the pros and cons of vangaurdism")
- if(/obj/item/clothing/head/collectable/police)
- name = "Officer [real_name]"
- emote_see = list("drools","looks for donuts")
- desc = "Stop right there criminal scum!"
- if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard)
- name = "Grandwizard [real_name]"
- speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!")
- if(/obj/item/weapon/bedsheet)
- name = "\improper Ghost"
- speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU")
- emote_see = list("stumbles around", "shivers")
- emote_hear = list("howls","groans")
- desc = "Spooky!"
- if(/obj/item/clothing/head/helmet/space/santahat)
- name = "Rudolph the Red-Nosed Corgi"
- emote_hear = list("barks christmas songs", "yaps")
- desc = "He has a very shiny nose."
- if(/obj/item/clothing/head/soft)
- name = "Corgi Tech [real_name]"
- desc = "The reason your yellow gloves have chew-marks."
diff --git a/code/modules/mob/living/simple_animal/animals/crab.dm b/code/modules/mob/living/simple_animal/animals/crab.dm
deleted file mode 100644
index 0808b11dab5..00000000000
--- a/code/modules/mob/living/simple_animal/animals/crab.dm
+++ /dev/null
@@ -1,87 +0,0 @@
-//Look Sir, free crabs!
-/mob/living/simple_mob/crab
- name = "crab"
- desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time."
- tt_desc = "E Cancer bellianus"
- icon_state = "crab"
- icon_living = "crab"
- icon_dead = "crab_dead"
- faction = "crabs"
- intelligence_level = SA_ANIMAL
-
- wander = 0
- stop_automated_movement = 1
- turns_per_move = 5
- mob_size = MOB_SMALL
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stomps"
- friendly = "pinches"
-
- speak_chance = 1
- speak_emote = list("clicks")
- emote_hear = list("clicks")
- emote_see = list("clacks")
-
- var/obj/item/inventory_head
- var/obj/item/inventory_mask
-
-/mob/living/simple_mob/crab/Life()
- ..()
- //CRAB movement, I'm not porting this up to SA because... "sideways-only movement" var nothanks
- if(!ckey && !stat)
- if(isturf(src.loc) && !resting && !buckled) //This is so it only moves if it's not inside a closet, gentics machine, etc.
- lifes_since_move++
- if(lifes_since_move >= turns_per_move)
- Move(get_step(src,pick(4,8)))
- lifes_since_move = 0
- regenerate_icons()
-
-//COFFEE! SQUEEEEEEEEE!
-/mob/living/simple_mob/crab/Coffee
- name = "Coffee"
- real_name = "Coffee"
- desc = "It's Coffee, the other pet!"
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stomps"
-
-//Sif Crabs
-/mob/living/simple_mob/giant_crab
- name = "giant crab"
- desc = "A large, hard-shelled crustacean. This one is mostly grey."
- tt_desc = "S Cancer holligus"
- icon_state = "sif_crab"
- icon_living = "sif_crab"
- icon_dead = "sif_crab_dead"
- faction = "crabs"
- intelligence_level = SA_ANIMAL
-
- maxHealth = 200
- health = 200
-
- mob_size = MOB_LARGE
- cooperative = 1
- retaliate = 1
- turns_per_move = 3
-
- minbodytemp = 175
-
- melee_damage_lower = 22
- melee_damage_upper = 35
- attack_armor_pen = 35
- attack_sharp = 1
- attack_edge = 1
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stomps"
- friendly = "pinches"
-
- speak_chance = 1
- speak_emote = list("clicks")
- emote_hear = list("clicks")
- emote_see = list("clacks")
diff --git a/code/modules/mob/living/simple_animal/animals/fish.dm b/code/modules/mob/living/simple_animal/animals/fish.dm
deleted file mode 100644
index c4d01233eaf..00000000000
--- a/code/modules/mob/living/simple_animal/animals/fish.dm
+++ /dev/null
@@ -1,80 +0,0 @@
-// Different types of fish! They are all subtypes of this tho
-/mob/living/simple_mob/fish
- name = "fish"
- desc = "Its a fishy. No touchy fishy."
- icon = 'icons/mob/fish.dmi'
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
- intelligence_level = SA_ANIMAL
-
- // By defautl they can be in any water turf. Subtypes might restrict to deep/shallow etc
- var/global/list/suitable_turf_types = list(
- /turf/simulated/floor/beach/water,
- /turf/simulated/floor/beach/coastline,
- /turf/simulated/floor/holofloor/beach/water,
- /turf/simulated/floor/holofloor/beach/coastline,
- /turf/simulated/floor/water
- )
-
-// Don't swim out of the water
-/mob/living/simple_mob/fish/handle_wander_movement()
- if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving?
- lifes_since_move++ //Increment turns since move (turns are life() cycles)
- if(lifes_since_move >= turns_per_move)
- if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled
- var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
- moving_to = pick(cardinal)
- dir = moving_to //How about we turn them the direction they are moving, yay.
- var/turf/T = get_step(src,moving_to)
- if(T && is_type_in_list(T, suitable_turf_types))
- Move(T)
- lifes_since_move = 0
-
-// Take damage if we are not in water
-/mob/living/simple_mob/fish/handle_breathing()
- var/turf/T = get_turf(src)
- if(T && !is_type_in_list(T, suitable_turf_types))
- if(prob(50))
- say(pick("Blub", "Glub", "Burble"))
- adjustBruteLoss(unsuitable_atoms_damage)
-
-/mob/living/simple_mob/fish/bass
- name = "bass"
- tt_desc = "E Micropterus notius"
- icon_state = "bass-swim"
- icon_living = "bass-swim"
- icon_dead = "bass-dead"
-
-/mob/living/simple_mob/fish/trout
- name = "trout"
- tt_desc = "E Salmo trutta"
- icon_state = "trout-swim"
- icon_living = "trout-swim"
- icon_dead = "trout-dead"
-
-/mob/living/simple_mob/fish/salmon
- name = "salmon"
- tt_desc = "E Oncorhynchus nerka"
- icon_state = "salmon-swim"
- icon_living = "salmon-swim"
- icon_dead = "salmon-dead"
-
-/mob/living/simple_mob/fish/perch
- name = "perch"
- tt_desc = "E Perca flavescens"
- icon_state = "perch-swim"
- icon_living = "perch-swim"
- icon_dead = "perch-dead"
-
-/mob/living/simple_mob/fish/pike
- name = "pike"
- tt_desc = "E Esox aquitanicus"
- icon_state = "pike-swim"
- icon_living = "pike-swim"
- icon_dead = "pike-dead"
-
-/mob/living/simple_mob/fish/koi
- name = "koi"
- tt_desc = "E Cyprinus rubrofuscus"
- icon_state = "koi-swim"
- icon_living = "koi-swim"
- icon_dead = "koi-dead"
diff --git a/code/modules/mob/living/simple_animal/animals/fish_vr.dm b/code/modules/mob/living/simple_animal/animals/fish_vr.dm
deleted file mode 100644
index 39cd051d6a0..00000000000
--- a/code/modules/mob/living/simple_animal/animals/fish_vr.dm
+++ /dev/null
@@ -1,41 +0,0 @@
-/mob/living/simple_mob/fish/koi/poisonous
- desc = "A genetic marvel, combining the docility and aesthetics of the koi with some of the resiliency and cunning of the noble space carp."
- health = 50
- maxHealth = 50
-
-/mob/living/simple_mob/fish/koi/poisonous/New()
- ..()
- create_reagents(60)
- reagents.add_reagent("toxin", 45)
- reagents.add_reagent("impedrezene", 15)
-
-/mob/living/simple_mob/fish/koi/poisonous/Life()
- ..()
- if(isbelly(loc) && prob(10))
- var/obj/belly/B = loc
- sting(B.owner)
-
-/mob/living/simple_mob/fish/koi/poisonous/react_to_attack(var/atom/A)
- if(isliving(A) && Adjacent(A))
- var/mob/living/M = A
- visible_message("\The [src][is_dead()?"'s corpse":""] flails at [M]!")
- SpinAnimation(7,1)
- if(prob(75))
- if(sting(M))
- to_chat(M, "You feel a tiny prick.")
- if(is_dead())
- return
- for(var/i = 1 to 3)
- var/turf/T = get_step_away(src, M)
- if(T && is_type_in_list(T, suitable_turf_types))
- Move(T)
- else
- break
- sleep(3)
-
-/mob/living/simple_mob/fish/koi/poisonous/proc/sting(var/mob/living/M)
- if(!M.reagents)
- return 0
- M.reagents.add_reagent("toxin", 2)
- M.reagents.add_reagent("impedrezene", 1)
- return 1
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/animals/fluffy_vr.dm b/code/modules/mob/living/simple_animal/animals/fluffy_vr.dm
deleted file mode 100644
index 9b9073fb491..00000000000
--- a/code/modules/mob/living/simple_animal/animals/fluffy_vr.dm
+++ /dev/null
@@ -1,39 +0,0 @@
-/mob/living/simple_mob/fluffy
- name = "Fluffy"
- desc = "It's a pink Diyaab! It seems to be very tame and quiet."
- icon = 'icons/mob/animal_vr.dmi'
- icon_state = "fluffy"
- icon_living = "fluffy"
- icon_dead = "fluffy_dead"
- icon_rest = "fluffy_sleep"
-
- turns_per_move = 10
- see_in_dark = 5
- mob_size = MOB_TINY
-
- response_help = "scritches"
- response_disarm = "bops"
- response_harm = "kicks"
-
- min_oxy = 16 //Require atleast 16kPA oxygen
- minbodytemp = 223 //Below -50 Degrees Celcius
- maxbodytemp = 323 //Above 50 Degrees Celcius
-
- speak_chance = 1
- speak = list("Squee","Arf arf","Awoo","Squeak")
- speak_emote = list("squeaks", "barks")
- emote_hear = list("howls","squeals")
- emote_see = list("puffs its fur out", "shakes its fur", "stares directly at you")
-
- meat_amount = 1
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
-
-/mob/living/simple_mob/fluffy/Life()
- . = ..()
- if(!. || ai_inactive) return
-
- if(prob(0.5))
- lay_down()
-
- if(resting && prob(5))
- audible_emote("snuffles.")
diff --git a/code/modules/mob/living/simple_animal/animals/fox_vr.dm b/code/modules/mob/living/simple_animal/animals/fox_vr.dm
deleted file mode 100644
index 72265c399f7..00000000000
--- a/code/modules/mob/living/simple_animal/animals/fox_vr.dm
+++ /dev/null
@@ -1,225 +0,0 @@
-/mob/living/simple_mob/fox
- name = "fox"
- desc = "It's a fox. I wonder what it says?"
- tt_desc = "Vulpes vulpes"
- icon = 'icons/mob/fox_vr.dmi'
- icon_state = "fox2"
- icon_living = "fox2"
- icon_dead = "fox2_dead"
- icon_rest = "fox2_rest"
-
- investigates = 1
- specific_targets = 1 //Only targets with Found()
- run_at_them = 0 //DOMESTICATED
- view_range = 5
-
- turns_per_move = 5
- see_in_dark = 6
- mob_size = MOB_TINY
-
- response_help = "scritches"
- response_disarm = "gently pushes aside"
- response_harm = "kicks"
-
- min_oxy = 16 //Require atleast 16kPA oxygen
- minbodytemp = 223 //Below -50 Degrees Celcius
- maxbodytemp = 323 //Above 50 Degrees Celcius
-
- speak_chance = 1
- speak = list("Ack-Ack","Ack-Ack-Ack-Ackawoooo","Awoo","Tchoff")
- speak_emote = list("geckers", "barks")
- emote_hear = list("howls","barks")
- emote_see = list("shakes its head", "shivers", "geckers")
- say_maybe_target = list("Yip?","Yap?")
- say_got_target = list("YAP!","YIP!")
-
- meat_amount = 1
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/fox
-
- var/turns_since_scan = 0
- var/mob/flee_target
-
-/mob/living/simple_mob/fox/init_vore()
- ..()
- var/obj/belly/B = vore_selected
- B.name = "Stomach"
- B.desc = "Slick foxguts. Cute on the outside, slimy on the inside!"
-
- B.emote_lists[DM_HOLD] = list(
- "The foxguts knead and churn around you harmlessly.",
- "With a loud glorp, some air shifts inside the belly.",
- "A thick drop of warm bellyslime drips onto you from above.",
- "The fox turns suddenly, causing you to shift a little.",
- "During a moment of relative silence, you can hear the fox breathing.",
- "The slimey stomach walls squeeze you lightly, then relax.")
-
- B.emote_lists[DM_DIGEST] = list(
- "The guts knead at you, trying to work you into thick soup.",
- "You're ground on by the slimey walls, treated like a mouse.",
- "The acrid air is hard to breathe, and stings at your lungs.",
- "You can feel the acids coating you, ground in by the slick walls.",
- "The fox's stomach churns hungrily over your form, trying to take you.",
- "With a loud glorp, the stomach spills more acids onto you.")
-
-// All them complicated fox procedures.
-/mob/living/simple_mob/fox/Life()
- . = ..()
- if(!.) return
-
- handle_flee_target()
-
-/mob/living/simple_mob/fox/PunchTarget()
- if(istype(target_mob,/mob/living/simple_mob/mouse))
- var/mob/living/simple_mob/mouse/mouse = target_mob
- mouse.splat()
- visible_emote(pick("bites \the [mouse]!","pounces on \the [mouse]!","chomps on \the [mouse]!"))
- else
- ..()
-
-/mob/living/simple_mob/fox/Found(var/atom/found_atom)
- if(istype(found_atom,/mob/living/simple_mob/mouse))
- return found_atom
-
-/mob/living/simple_mob/fox/proc/handle_flee_target()
- //see if we should stop fleeing
- if (flee_target && !(flee_target in ListTargets(view_range)))
- flee_target = null
- GiveUpMoving()
-
- if (flee_target && !stat && !buckled)
- if (resting)
- lay_down()
- if(prob(25)) say("GRRRRR!")
- stop_automated_movement = 1
- walk_away(src, flee_target, 7, 2)
-
-/mob/living/simple_mob/fox/react_to_attack(var/atom/A)
- if(A == src) return
- flee_target = A
- turns_since_scan = 5
-
-/mob/living/simple_mob/fox/ex_act()
- . = ..()
- react_to_attack(src.loc)
-
-/mob/living/simple_mob/fox/MouseDrop(atom/over_object)
- var/mob/living/carbon/H = over_object
- if(!istype(H) || !Adjacent(H)) return ..()
-
- if(H.a_intent == "help")
- get_scooped(H)
- return
- else
- return ..()
-
-/mob/living/simple_mob/fox/get_scooped(var/mob/living/carbon/grabber)
- if (stat >= DEAD)
- return //since the holder icon looks like a living cat
- ..()
-
-//Basic friend AI
-/mob/living/simple_mob/fox/fluff
- var/mob/living/carbon/human/friend
- var/befriend_job = null
-
-/mob/living/simple_mob/fox/fluff/Life()
- . = ..()
- if(!. || ai_inactive || !friend) return
-
- var/friend_dist = get_dist(src,friend)
-
- if (friend_dist <= 4)
- if(stance == STANCE_IDLE)
- if(set_follow(friend))
- handle_stance(STANCE_FOLLOW)
-
- if (friend_dist <= 1)
- if (friend.stat >= DEAD || friend.health <= config.health_threshold_softcrit)
- if (prob((friend.stat < DEAD)? 50 : 15))
- var/verb = pick("yaps", "howls", "whines")
- audible_emote(pick("[verb] in distress.", "[verb] anxiously."))
- else
- if (prob(5))
- visible_emote(pick("nips [friend].",
- "brushes against [friend].",
- "tugs on [friend].",
- "chrrrrs."))
- else if (friend.health <= 50)
- if (prob(10))
- var/verb = pick("yaps", "howls", "whines")
- audible_emote("[verb] anxiously.")
-
-/mob/living/simple_mob/fox/fluff/verb/friend()
- set name = "Become Friends"
- set category = "IC"
- set src in view(1)
-
- if(friend && usr == friend)
- set_dir(get_dir(src, friend))
- say("Yap!")
- return
-
- if (!(ishuman(usr) && befriend_job && usr.job == befriend_job))
- usr << "[src] ignores you."
- return
-
- friend = usr
-
- set_dir(get_dir(src, friend))
- say("Yap!")
-
-/obj/item/weapon/reagent_containers/food/snacks/meat/fox
- name = "Fox meat"
- desc = "The fox doesn't say a goddamn thing, now."
-
-//Captain fox
-/mob/living/simple_mob/fox/fluff/Renault
- name = "Renault"
- desc = "Renault, the Colony Director's trustworthy fox. I wonder what it says?"
- tt_desc = "Vulpes nobilis"
- befriend_job = "Colony Director"
-
-/mob/living/simple_mob/fox/fluff/Renault/init_vore()
- ..()
- var/obj/belly/B = vore_selected
- B.name = "Stomach"
- B.desc = "Slick foxguts. They seem somehow more regal than perhaps other foxes!"
-
- B.emote_lists[DM_HOLD] = list(
- "Renault's stomach walls squeeze around you more tightly for a moment, before relaxing, as if testing you a bit.",
- "There's a sudden squeezing as Renault presses a forepaw against his gut over you, squeezing you against the slick walls.",
- "The 'head fox' has a stomach that seems to think you belong to it. It might be hard to argue, as it kneads at your form.",
- "If being in the captain's fox is a promotion, it might not feel like one. The belly just coats you with more thick foxslime.",
- "It doesn't seem like Renault wants to let you out. The stomach and owner possessively squeeze around you.",
- "Renault's stomach walls squeeze closer, as he belches quietly, before swallowing more air. Does he do that on purpose?")
-
- B.emote_lists[DM_DIGEST] = list(
- "Renault's stomach walls grind hungrily inwards, kneading acids against your form, and treating you like any other food.",
- "The captain's fox impatiently kneads and works acids against you, trying to claim your body for fuel.",
- "The walls knead in firmly, squeezing and tossing you around briefly in disorienting aggression.",
- "Renault belches, letting the remaining air grow more acrid. It burns your lungs with each breath.",
- "A thick glob of acids drip down from above, adding to the pool of caustic fluids in Renault's belly.",
- "There's a loud gurgle as the stomach declares the intent to make you a part of Renault.")
-
-/mob/living/simple_mob/fox/syndicate
- name = "syndi-fox"
- desc = "It's a DASTARDLY fox! The horror! Call the shuttle!"
- tt_desc = "Vulpes malus"
- icon = 'icons/mob/fox_vr.dmi'
- icon_state = "syndifox"
- icon_living = "syndifox"
- icon_dead = "syndifox_dead"
- icon_rest = "syndifox_rest"
-
- // this fox wears a hardsuit
- maxHealth = 100
- health = 100
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider.dm b/code/modules/mob/living/simple_animal/animals/giant_spider.dm
deleted file mode 100644
index c6acf2a769a..00000000000
--- a/code/modules/mob/living/simple_animal/animals/giant_spider.dm
+++ /dev/null
@@ -1,589 +0,0 @@
-
-#define SPINNING_WEB 1
-#define LAYING_EGGS 2
-#define MOVING_TO_TARGET 3
-#define SPINNING_COCOON 4
-
-//basic spider mob, these generally guard nests
-/mob/living/simple_mob/hostile/giant_spider
- name = "giant spider"
- desc = "Furry and brown, it makes you shudder to look at it. This one has deep red eyes."
- tt_desc = "X Brachypelma phorus"
- icon_state = "guard"
- icon_living = "guard"
- icon_dead = "guard_dead"
-
- faction = "spiders"
- intelligence_level = SA_ANIMAL
- maxHealth = 200
- health = 200
- pass_flags = PASSTABLE
- move_to_delay = 6
- speed = 3
-
- stop_when_pulled = 0
- turns_per_move = 5
- see_in_dark = 10
-
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "punches"
-
- melee_damage_lower = 18
- melee_damage_upper = 30
- attack_sharp = 1
- attack_edge = 1
-
- heat_damage_per_tick = 20
- cold_damage_per_tick = 20
-
- speak_chance = 5
- speak_emote = list("chitters")
- emote_hear = list("chitters")
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat
-
- var/busy = 0
- var/poison_per_bite = 5
- var/poison_chance = 10
- var/poison_type = "spidertoxin"
- var/image/eye_layer = null
-
- low_priority = TRUE //VOREStation Edit
-
-/mob/living/simple_mob/hostile/giant_spider/proc/add_eyes()
- if(!eye_layer)
- eye_layer = image(icon, "[icon_state]-eyes")
- eye_layer.plane = PLANE_LIGHTING_ABOVE
-
- overlays += eye_layer
-
-/mob/living/simple_mob/hostile/giant_spider/proc/remove_eyes()
- overlays -= eye_layer
-
-/*
-Nurse Family
-*/
-
-//nursemaids - these create webs and eggs
-/mob/living/simple_mob/hostile/giant_spider/nurse
- desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes."
- tt_desc = "X Brachypelma phorus laetus"
- icon_state = "nurse"
- icon_living = "nurse"
- icon_dead = "nurse_dead"
-
- maxHealth = 40
- health = 40
-
- melee_damage_lower = 8
- melee_damage_upper = 15
- poison_per_bite = 7
- poison_type = "spidertoxin" // VOREStation edit, original is stoxin. (sleep toxins)
-
- var/fed = 0
- var/atom/cocoon_target
- var/egg_inject_chance = 5
-
-/mob/living/simple_mob/hostile/giant_spider/nurse/hat
- desc = "Furry and beige, it makes you shudder to look at it. This one has brilliant green eyes and a tiny nurse hat."
- icon_state = "nursemed"
- icon_living = "nursemed"
- icon_dead = "nursemed_dead"
-
- maxHealth = 50
- health = 50
-
-// VOREStation Edit
- melee_damage_lower = 8
- melee_damage_upper = 16
- poison_type = "tramadol"
- poison_chance = 15
-// VOREStation Edit End
-
-/mob/living/simple_mob/hostile/giant_spider/nurse/queen
- desc = "Absolutely gigantic, this creature is horror itself."
- tt_desc = "X Brachypelma phorus tyrannus"
- icon = 'icons/mob/64x64.dmi'
- icon_state = "spider_queen"
- icon_living = "spider_queen"
- icon_dead = "spider_queen_dead"
-
- maxHealth = 320
- health = 320
-
- melee_damage_lower = 20
- melee_damage_upper = 30
- attack_armor_pen = 25
-
- poison_per_bite = 10
- egg_inject_chance = 10
-
- pixel_x = -16
- pixel_y = -16
- old_x = -16
- old_y = -16
-
-/mob/living/simple_mob/hostile/giant_spider/webslinger
- desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes, and a cloak of web."
- tt_desc = "X Brachypelma phorus balisticus"
- icon_state = "webslinger"
- icon_living = "webslinger"
- icon_dead = "webslinger_dead"
-
- maxHealth = 90
- health = 90
-
- projectilesound = 'sound/weapons/thudswoosh.ogg'
- projectiletype = /obj/item/projectile/bola
- ranged = 1
- firing_lines = 1
- cooperative = 1
- shoot_range = 5
-
- melee_damage_lower = 8
- melee_damage_upper = 15
- poison_per_bite = 2
- poison_type = "psilocybin"
-
- spattack_prob = 15
- spattack_min_range = 0
- spattack_max_range = 5
-
-/mob/living/simple_mob/hostile/giant_spider/webslinger/AttackTarget() //One day.
- var/mob/living/carbon/human/victim = null //Webslinger needs to know if its target is human later.
- if(ishuman(target_mob))
- victim = target_mob
- if(!victim.legcuffed)
- projectiletype = /obj/item/projectile/bola
- shoot_range = 7
- else
- projectiletype = /obj/item/projectile/webball
- shoot_range = 5
- else
- projectiletype = /obj/item/projectile/webball
- shoot_range = 5
- return ..()
-
-/mob/living/simple_mob/hostile/giant_spider/carrier
- desc = "Furry, beige, and red, it makes you shudder to look at it. This one has luminous green eyes."
- tt_desc = "X Brachypelma phorus gerulus"
- icon_state = "carrier"
- icon_living = "carrier"
- icon_dead = "carrier_dead"
-
- maxHealth = 100
- health = 100
-
- melee_damage_lower = 8
- melee_damage_upper = 25
-
- poison_per_bite = 3
- poison_type = "chloralhydrate"
-
- var/spiderling_count = 0
- var/spiderling_type = /obj/effect/spider/spiderling
- var/swarmling_type = /mob/living/simple_mob/hostile/giant_spider/hunter
- var/swarmling_faction = "spiders"
-
-/mob/living/simple_mob/hostile/giant_spider/carrier/New()
- spiderling_count = rand(5,10)
- adjust_scale(1.2)
- ..()
-
-/mob/living/simple_mob/hostile/giant_spider/carrier/death()
- visible_message("\The [src]'s abdomen splits as it rolls over, spiderlings crawling from the wound.")
- spawn(1)
- for(var/I = 1 to spiderling_count)
- if(prob(10) && src)
- var/mob/living/simple_animal/hostile/giant_spider/swarmling = new swarmling_type(src.loc)
- var/swarm_health = FLOOR(swarmling.maxHealth * 0.4, 1)
- var/swarm_dam_lower = FLOOR(melee_damage_lower * 0.4, 1)
- var/swarm_dam_upper = FLOOR(melee_damage_upper * 0.4, 1)
- swarmling.name = "spiderling"
- swarmling.maxHealth = swarm_health
- swarmling.health = swarm_health
- swarmling.melee_damage_lower = swarm_dam_lower
- swarmling.melee_damage_upper = swarm_dam_upper
- swarmling.faction = swarmling_faction
- swarmling.adjust_scale(0.75)
- else if(src)
- var/obj/effect/spider/spiderling/child = new spiderling_type(src.loc)
- child.skitter()
- else
- break
- return ..()
-
-/mob/living/simple_mob/hostile/giant_spider/carrier/recursive
- desc = "Furry, beige, and red, it makes you shudder to look at it. This one has luminous green eyes. You have a distinctly bad feeling about this."
-
- swarmling_type = /mob/living/simple_mob/hostile/giant_spider/carrier/recursive
-
-/*
-Hunter Family
-*/
-
-//hunters have the most poison and move the fastest, so they can find prey
-
-/mob/living/simple_mob/hostile/giant_spider/hunter
- desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes."
- tt_desc = "X Brachypelma phorus venandi"
- icon_state = "hunter"
- icon_living = "hunter"
- icon_dead = "hunter_dead"
-
- maxHealth = 120
- health = 120
- move_to_delay = 4
-
- poison_per_bite = 5
-
-/mob/living/simple_mob/hostile/giant_spider/lurker
- desc = "Translucent and white, it makes you shudder to look at it. This one has incandescent red eyes."
- tt_desc = "X Brachypelma phorus insidator"
- icon_state = "lurker"
- icon_living = "lurker"
- icon_dead = "lurker_dead"
- alpha = 45
-
- maxHealth = 100
- health = 100
- move_to_delay = 4
-
- melee_damage_lower = 8
- melee_damage_upper = 20
-
-
- poison_chance = 20
- poison_type = "cryptobiolin"
- poison_per_bite = 2
-
-/mob/living/simple_mob/hostile/giant_spider/lurker/death()
- alpha = 255
- return ..()
-
-/mob/living/simple_mob/hostile/giant_spider/tunneler
- desc = "Sandy and brown, it makes you shudder to look at it. This one has glittering yellow eyes."
- tt_desc = "X Brachypelma phorus cannalis"
- icon_state = "tunneler"
- icon_living = "tunneler"
- icon_dead = "tunneler_dead"
-
- maxHealth = 120
- health = 120
- move_to_delay = 4
-
- melee_damage_lower = 10
- melee_damage_upper = 20
-
- poison_chance = 15
- poison_per_bite = 3
- poison_type = "serotrotium_v"
-
-/mob/living/simple_mob/hostile/giant_spider/tunneler/death()
- spawn(1)
- for(var/I = 1 to rand(3,6))
- if(src)
- new/obj/item/weapon/ore/glass(src.loc)
- else
- break
- return ..()
-
-/*
-Guard Family
-*/
-
-/mob/living/simple_mob/hostile/giant_spider/pepper
- desc = "Red and brown, it makes you shudder to look at it. This one has glinting red eyes."
- tt_desc = "X Brachypelma phorus ignis"
- icon_state = "pepper"
- icon_living = "pepper"
- icon_dead = "pepper_dead"
-
- maxHealth = 210
- health = 210
-
- melee_damage_lower = 8
- melee_damage_upper = 15
-
- poison_chance = 20
- poison_per_bite = 5
- poison_type = "condensedcapsaicin_v"
-
-/mob/living/simple_mob/hostile/giant_spider/pepper/New()
- adjust_scale(1.1)
- ..()
-
-/mob/living/simple_mob/hostile/giant_spider/thermic
- desc = "Mirage-cloaked and orange, it makes you shudder to look at it. This one has simmering orange eyes."
- tt_desc = "X Brachypelma phorus incaendium"
- icon_state = "pit"
- icon_living = "pit"
- icon_dead = "pit_dead"
-
- maxHealth = 175
- health = 175
-
- melee_damage_lower = 10
- melee_damage_upper = 25
-
- poison_chance = 30
- poison_per_bite = 1
- poison_type = "thermite_v"
-
-/mob/living/simple_mob/hostile/giant_spider/electric
- desc = "Spined and yellow, it makes you shudder to look at it. This one has flickering gold eyes."
- tt_desc = "X Brachypelma phorus aromatitis"
- icon_state = "spark"
- icon_living = "spark"
- icon_dead = "spark_dead"
-
- maxHealth = 210
- health = 210
- taser_kill = 0 //It -is- the taser.
-
- melee_damage_lower = 10
- melee_damage_upper = 25
-
- ranged = 1
- projectilesound = 'sound/weapons/taser2.ogg'
- projectiletype = /obj/item/projectile/beam/stun/weak
- firing_lines = 1
- cooperative = 1
-
- poison_chance = 15
- poison_per_bite = 3
- poison_type = "stimm"
-
-/mob/living/simple_mob/hostile/giant_spider/phorogenic
- desc = "Crystalline and purple, it makes you shudder to look at it. This one has haunting purple eyes."
- tt_desc = "X Brachypelma phorus phorus"
- icon_state = "phoron"
- icon_living = "phoron"
- icon_dead = "phoron_dead"
-
- maxHealth = 225
- health = 225
- taser_kill = 0 //You will need more than a peashooter to kill the juggernaut.
-
- melee_damage_lower = 25
- melee_damage_upper = 40
- attack_armor_pen = 15
-
- poison_chance = 30
- poison_per_bite = 0.5
- poison_type = "phoron"
-
- var/exploded = 0
-
-/mob/living/simple_mob/hostile/giant_spider/phorogenic/New()
- adjust_scale(1.25)
- return ..()
-
-/mob/living/simple_mob/hostile/giant_spider/phorogenic/death()
- visible_message("\The [src]'s body begins to rupture!")
- spawn(rand(1,5))
- if(src && !exploded)
- visible_message("\The [src]'s body detonates!")
- exploded = 1
- explosion(src.loc, 1, 2, 4, 6)
- return ..()
-
-/mob/living/simple_mob/hostile/giant_spider/frost
- desc = "Icy and blue, it makes you shudder to look at it. This one has brilliant blue eyes."
- tt_desc = "X Brachypelma phorus pruinae"
- icon_state = "frost"
- icon_living = "frost"
- icon_dead = "frost_dead"
-
- maxHealth = 175
- health = 175
-
- poison_per_bite = 5
- poison_type = "cryotoxin"
-
-/*
-Spider Procs
-*/
-
-/mob/living/simple_mob/hostile/giant_spider/New(var/location, var/atom/parent)
- get_light_and_color(parent)
- add_eyes()
- ..()
-
-/mob/living/simple_mob/hostile/giant_spider/death()
- remove_eyes()
- ..()
-
-/mob/living/simple_mob/hostile/giant_spider/DoPunch(var/atom/A)
- . = ..()
- if(.) // If we succeeded in hitting.
- if(isliving(A))
- var/mob/living/L = A
- if(L.reagents)
- var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
- if(L.can_inject(src, null, target_zone))
- L.reagents.add_reagent(poison_type, poison_per_bite)
- if(prob(poison_chance))
- to_chat(L, "You feel a tiny prick.")
- L.reagents.add_reagent(poison_type, poison_per_bite)
-
-/mob/living/simple_mob/hostile/giant_spider/nurse/DoPunch(var/atom/A)
- . = ..()
- if(.) // If we succeeded in hitting.
- if(ishuman(A))
- var/mob/living/carbon/human/H = A
- if(prob(egg_inject_chance))
- var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
- if(H.can_inject(src, null, target_zone))
- var/obj/item/organ/external/O = H.get_organ(target_zone)
- var/eggcount
- for(var/obj/I in O.implants)
- if(istype(I, /obj/effect/spider/eggcluster))
- eggcount ++
- if(!eggcount)
- var/eggs = new /obj/effect/spider/eggcluster/small(O, src)
- O.implants += eggs
- to_chat(H, "\The [src] injects something into your [O.name]!")
-
-/mob/living/simple_mob/hostile/giant_spider/webslinger/DoPunch(var/atom/A)
- . = ..()
- if(.) // If we succeeded in hitting.
- if(isliving(A))
- var/mob/living/L = A
- var/obj/effect/spider/stickyweb/W = locate() in get_turf(L)
- if(!W && prob(75))
- visible_message("\The [src] throws a layer of web at \the [L]!")
- new /obj/effect/spider/stickyweb(L.loc)
-
-/mob/living/simple_mob/hostile/giant_spider/handle_stance()
- . = ..()
- if(ai_inactive) return
-
- switch(stance)
- if(STANCE_IDLE)
- //1% chance to skitter madly away
- if(!busy && prob(1))
- /*var/list/move_targets = list()
- for(var/turf/T in orange(20, src))
- move_targets.Add(T)*/
- stop_automated_movement = 1
- walk_to(src, pick(orange(20, src)), 1, move_to_delay)
- spawn(5 SECONDS)
- stop_automated_movement = 0
- walk(src,0)
-
-/mob/living/simple_mob/hostile/giant_spider/nurse/proc/GiveUp(var/C)
- spawn(10 SECONDS)
- if(busy == MOVING_TO_TARGET)
- if(cocoon_target == C && get_dist(src,cocoon_target) > 1)
- cocoon_target = null
- busy = 0
- stop_automated_movement = 0
-
-/mob/living/simple_mob/hostile/giant_spider/nurse/Life()
- . = ..()
- if(!. || ai_inactive) return
-
- if(stance == STANCE_IDLE)
- var/list/can_see = view(src, 10)
- //30% chance to stop wandering and do something
- if(!busy && prob(30))
- //first, check for potential food nearby to cocoon
- for(var/mob/living/C in can_see)
- if(C.stat)
- cocoon_target = C
- busy = MOVING_TO_TARGET
- walk_to(src, C, 1, move_to_delay)
- //give up if we can't reach them after 10 seconds
- GiveUp(C)
- return
-
- //second, spin a sticky spiderweb on this tile
- var/obj/effect/spider/stickyweb/W = locate() in get_turf(src)
- if(!W)
- busy = SPINNING_WEB
- src.visible_message("\The [src] begins to secrete a sticky substance.")
- stop_automated_movement = 1
- spawn(40)
- if(busy == SPINNING_WEB)
- new /obj/effect/spider/stickyweb(src.loc)
- busy = 0
- stop_automated_movement = 0
- else
- //third, lay an egg cluster there
- var/obj/effect/spider/eggcluster/E = locate() in get_turf(src)
- if(!E && fed > 0)
- busy = LAYING_EGGS
- src.visible_message("\The [src] begins to lay a cluster of eggs.")
- stop_automated_movement = 1
- spawn(50)
- if(busy == LAYING_EGGS)
- E = locate() in get_turf(src)
- if(!E)
- new /obj/effect/spider/eggcluster(loc, src)
- fed--
- busy = 0
- stop_automated_movement = 0
- else
- //fourthly, cocoon any nearby items so those pesky pinkskins can't use them
- for(var/obj/O in can_see)
-
- if(O.anchored)
- continue
-
- if(istype(O, /obj/item) || istype(O, /obj/structure) || istype(O, /obj/machinery))
- cocoon_target = O
- busy = MOVING_TO_TARGET
- stop_automated_movement = 1
- walk_to(src, O, 1, move_to_delay)
- //give up if we can't reach them after 10 seconds
- GiveUp(O)
-
- else if(busy == MOVING_TO_TARGET && cocoon_target)
- if(get_dist(src, cocoon_target) <= 1)
- busy = SPINNING_COCOON
- src.visible_message("\The [src] begins to secrete a sticky substance around \the [cocoon_target].")
- stop_automated_movement = 1
- walk(src,0)
- spawn(50)
- if(busy == SPINNING_COCOON)
- if(cocoon_target && istype(cocoon_target.loc, /turf) && get_dist(src,cocoon_target) <= 1)
- var/obj/effect/spider/cocoon/C = new(cocoon_target.loc)
- var/large_cocoon = 0
- C.pixel_x = cocoon_target.pixel_x
- C.pixel_y = cocoon_target.pixel_y
- for(var/mob/living/M in C.loc)
- if(istype(M, /mob/living/simple_mob/hostile/giant_spider))
- continue
- large_cocoon = 1
- fed++
- src.visible_message("\The [src] sticks a proboscis into \the [cocoon_target] and sucks a viscous substance out.")
- M.forceMove(C)
- C.pixel_x = M.pixel_x
- C.pixel_y = M.pixel_y
- break
- for(var/obj/item/I in C.loc)
- I.forceMove(C)
- for(var/obj/structure/S in C.loc)
- if(!S.anchored)
- S.forceMove(C)
- large_cocoon = 1
- for(var/obj/machinery/M in C.loc)
- if(!M.anchored)
- M.forceMove(C)
- large_cocoon = 1
- if(large_cocoon)
- C.icon_state = pick("cocoon_large1","cocoon_large2","cocoon_large3")
- busy = 0
- stop_automated_movement = 0
-
- else
- busy = 0
- stop_automated_movement = 0
-
-
-#undef SPINNING_WEB
-#undef LAYING_EGGS
-#undef MOVING_TO_TARGET
-#undef SPINNING_COCOON
diff --git a/code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm b/code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm
deleted file mode 100644
index 7497ae9e9c9..00000000000
--- a/code/modules/mob/living/simple_animal/animals/giant_spider_vr.dm
+++ /dev/null
@@ -1,23 +0,0 @@
-// Slightly placeholder, mostly to replace ion hivebots on V4
-/mob/living/simple_mob/hostile/giant_spider/ion
- desc = "Furry and green, it makes you shudder to look at it. This one has brilliant green eyes and a hint of static discharge."
- tt_desc = "X Brachypelma phorus ionus"
- icon_state = "webslinger"
- icon_living = "webslinger"
- icon_dead = "webslinger_dead"
-
- maxHealth = 90
- health = 90
-
- melee_damage_lower = 8
- melee_damage_upper = 15
-
- ranged = 1
- projectilesound = 'sound/weapons/taser2.ogg'
- projectiletype = /obj/item/projectile/ion/small
- firing_lines = 1
- cooperative = 1
-
- poison_chance = 15
- poison_per_bite = 2
- poison_type = "psilocybin"
diff --git a/code/modules/mob/living/simple_animal/animals/goose.dm b/code/modules/mob/living/simple_animal/animals/goose.dm
deleted file mode 100644
index 72744ad882d..00000000000
--- a/code/modules/mob/living/simple_animal/animals/goose.dm
+++ /dev/null
@@ -1,60 +0,0 @@
-/mob/living/simple_mob/hostile/goose //hey are these even in the game
- name = "goose"
- desc = "It looks pretty angry!"
- tt_desc = "E Branta canadensis" //that iconstate is just a regular goose
- icon_state = "goose"
- icon_living = "goose"
- icon_dead = "goose_dead"
-
- faction = "geese"
- intelligence_level = SA_ANIMAL
-
- maxHealth = 15
- health = 15
- speed = 4
-
- turns_per_move = 5
-
- response_help = "pets the"
- response_disarm = "gently pushes aside the"
- response_harm = "hits the"
-
- harm_intent_damage = 5
- melee_damage_lower = 5 //they're meant to be annoying, not threatening.
- melee_damage_upper = 5 //unless there's like a dozen of them, then you're screwed.
- cooperative = 1 // mwahahahahahaaa // Vorestation Edit, temporary
- attacktext = list("pecked")
- attack_sound = 'sound/weapons/bite.ogg'
-
- //SPACE geese aren't affected by atmos.
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- has_langs = list("Bird")
- speak_chance = 10
- speak = list("HONK!")
- emote_hear = list("honks loudly!")
- emote_see = list()
- say_understood = list()
- say_cannot = list()
- say_maybe_target = list("Honk?")
- say_got_target = list("HONK!!!")
- reactions = list()
-
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
-
-/mob/living/simple_mob/hostile/goose/set_target()
- . = ..()
- if(.)
- custom_emote(1,"flaps and honks at [.]!")
-
-/mob/living/simple_mob/hostile/goose/Process_Spacemove(var/check_drift = 0)
- return 1 // VOREStation Edit No drifting in space!
diff --git a/code/modules/mob/living/simple_animal/animals/lizard.dm b/code/modules/mob/living/simple_animal/animals/lizard.dm
deleted file mode 100644
index d9a1b1b8d05..00000000000
--- a/code/modules/mob/living/simple_animal/animals/lizard.dm
+++ /dev/null
@@ -1,24 +0,0 @@
-/mob/living/simple_mob/lizard
- name = "Lizard"
- desc = "A cute tiny lizard."
- tt_desc = "E Anolis cuvieri"
- icon = 'icons/mob/critter.dmi'
- icon_state = "lizard"
- icon_living = "lizard"
- icon_dead = "lizard-dead"
- intelligence_level = SA_ANIMAL
-
- health = 5
- maxHealth = 5
- mob_size = MOB_MINISCULE
-
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
-
- attacktext = list("bitten")
- melee_damage_lower = 1
- melee_damage_upper = 2
-
- speak_chance = 1
- speak_emote = list("hisses")
diff --git a/code/modules/mob/living/simple_animal/animals/miscellaneous.dm b/code/modules/mob/living/simple_animal/animals/miscellaneous.dm
deleted file mode 100644
index 306f6a3aadc..00000000000
--- a/code/modules/mob/living/simple_animal/animals/miscellaneous.dm
+++ /dev/null
@@ -1,21 +0,0 @@
-/mob/living/simple_mob/yithian
- name = "yithian"
- desc = "A friendly creature vaguely resembling an oversized snail without a shell."
- tt_desc = "J Escargot escargot" // a product of Jade, which is a planet that totally exists
- icon_state = "yithian"
- icon_living = "yithian"
- icon_dead = "yithian_dead"
- icon = 'icons/jungle.dmi'
-
- faction = "yithian"
-
-/mob/living/simple_mob/tindalos
- name = "tindalos"
- desc = "It looks like a large, flightless grasshopper."
- tt_desc = "J Locusta bruchus"
- icon_state = "tindalos"
- icon_living = "tindalos"
- icon_dead = "tindalos_dead"
- icon = 'icons/jungle.dmi'
-
- faction = "tindalos"
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/animals/mouse.dm b/code/modules/mob/living/simple_animal/animals/mouse.dm
deleted file mode 100644
index d68d66b4983..00000000000
--- a/code/modules/mob/living/simple_animal/animals/mouse.dm
+++ /dev/null
@@ -1,137 +0,0 @@
-/mob/living/simple_mob/mouse
- name = "mouse"
- real_name = "mouse"
- desc = "It's a small rodent."
- tt_desc = "E Mus musculus"
- icon_state = "mouse_gray"
- item_state = "mouse_gray"
- icon_living = "mouse_gray"
- icon_dead = "mouse_gray_dead"
- intelligence_level = SA_ANIMAL
-
- maxHealth = 5
- health = 5
-
- turns_per_move = 5
- see_in_dark = 6
- universal_understand = 1
-
- mob_size = MOB_SMALL
- pass_flags = PASSTABLE
-// can_pull_size = ITEMSIZE_TINY
-// can_pull_mobs = MOB_PULL_NONE
- layer = MOB_LAYER
- density = 0
-
- response_help = "pets"
- response_disarm = "gently pushes aside"
- response_harm = "stamps on"
-
- min_oxy = 16 //Require atleast 16kPA oxygen
- minbodytemp = 223 //Below -50 Degrees Celcius
- maxbodytemp = 323 //Above 50 Degrees Celcius
-
- has_langs = list("Mouse")
- speak_chance = 1
- speak = list("Squeek!","SQUEEK!","Squeek?")
- speak_emote = list("squeeks","squeeks","squiks")
- emote_hear = list("squeeks","squeaks","squiks")
- emote_see = list("runs in a circle", "shakes", "scritches at something")
-
- holder_type = /obj/item/weapon/holder/mouse
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
-
- var/body_color //brown, gray and white, leave blank for random
-
-/mob/living/simple_mob/mouse/Life()
- . = ..()
- if(!. || ai_inactive) return
-
- if(prob(speak_chance))
- for(var/mob/M in view())
- M << 'sound/effects/mouse_squeak.ogg'
-
- if(!resting && prob(0.5))
- lay_down()
- speak_chance = 0
- //snuffles
-
- else if(resting)
- if(prob(1))
- lay_down()
- speak_chance = initial(speak_chance)
- else if(prob(1))
- audible_emote("snuffles.")
-
-/mob/living/simple_mob/mouse/New()
- ..()
-
- verbs += /mob/living/proc/ventcrawl
- verbs += /mob/living/proc/hide
-
- if(name == initial(name))
- name = "[name] ([rand(1, 1000)])"
- real_name = name
-
- if(!body_color)
- body_color = pick( list("brown","gray","white") )
- icon_state = "mouse_[body_color]"
- item_state = "mouse_[body_color]"
- icon_living = "mouse_[body_color]"
- icon_dead = "mouse_[body_color]_dead"
- icon_rest = "mouse_[body_color]_sleep"
- desc = "A small [body_color] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
-
-/mob/living/simple_mob/mouse/proc/splat()
- src.health = 0
- src.stat = DEAD
- src.icon_dead = "mouse_[body_color]_splat"
- src.icon_state = "mouse_[body_color]_splat"
- layer = MOB_LAYER
- if(client)
- client.time_died_as_mouse = world.time
-
-
-/mob/living/simple_mob/mouse/Crossed(AM as mob|obj)
- if( ishuman(AM) )
- if(!stat)
- var/mob/M = AM
- M.visible_message("\icon[src] Squeek!")
- M << 'sound/effects/mouse_squeak.ogg'
- ..()
-
-/mob/living/simple_mob/mouse/death()
- layer = MOB_LAYER
- playsound(src, 'sound/effects/mouse_squeak_loud.ogg', 35, 1)
- if(client)
- client.time_died_as_mouse = world.time
- ..()
-
-/*
- * Mouse types
- */
-
-/mob/living/simple_mob/mouse/white
- body_color = "white"
- icon_state = "mouse_white"
-
-/mob/living/simple_mob/mouse/gray
- body_color = "gray"
- icon_state = "mouse_gray"
-
-/mob/living/simple_mob/mouse/brown
- body_color = "brown"
- icon_state = "mouse_brown"
-
-//TOM IS ALIVE! SQUEEEEEEEE~K :)
-/mob/living/simple_mob/mouse/brown/Tom
- name = "Tom"
- desc = "Jerry the cat is not amused."
-
-/mob/living/simple_mob/mouse/brown/Tom/New()
- ..()
- // Change my name back, don't want to be named Tom (666)
- name = initial(name)
-
-/mob/living/simple_mob/mouse/cannot_use_vents()
- return
diff --git a/code/modules/mob/living/simple_animal/animals/mouse_vr.dm b/code/modules/mob/living/simple_animal/animals/mouse_vr.dm
deleted file mode 100644
index d3bdfbd1c60..00000000000
--- a/code/modules/mob/living/simple_animal/animals/mouse_vr.dm
+++ /dev/null
@@ -1,8 +0,0 @@
-/mob/living/simple_mob/mouse
- no_vore = 1 //Mice can't eat others due to the amount of bugs caused by it.
-
-
-
-
-/mob/living/simple_mob/mouse/attack_hand(mob/living/hander)
- src.get_scooped(hander) //For one-click mouse scooping under any conditions. They knew what they were getting into!
diff --git a/code/modules/mob/living/simple_animal/animals/parrot.dm b/code/modules/mob/living/simple_animal/animals/parrot.dm
deleted file mode 100644
index 1c286228988..00000000000
--- a/code/modules/mob/living/simple_animal/animals/parrot.dm
+++ /dev/null
@@ -1,768 +0,0 @@
-/* Parrots!
- * Contains
- * Defines
- * Inventory (headset stuff)
- * Attack responces
- * AI
- * Procs / Verbs (usable by players)
- * Sub-types
- */
-
-/*
- * Defines
- */
-
-//Parrot is too snowflake for me to rewrite right now, someone should make it use the new
-//simple_mob movement stuff. -Aro
-
-//Only a maximum of one action and one intent should be active at any given time.
-//Actions
-#define PARROT_PERCH 1 //Sitting/sleeping, not moving
-#define PARROT_SWOOP 2 //Moving towards or away from a target
-#define PARROT_WANDER 4 //Moving without a specific target in mind
-
-//Intents
-#define PARROT_STEAL 8 //Flying towards a target to steal it/from it
-#define PARROT_ATTACK 16 //Flying towards a target to attack it
-#define PARROT_RETURN 32 //Flying towards its perch
-#define PARROT_FLEE 64 //Flying away from its attacker
-
-
-/mob/living/simple_mob/parrot
- name = "parrot"
- desc = "The parrot squawks, \"It's a parrot! BAWWK!\""
- tt_desc = "E Ara macao"
- icon = 'icons/mob/animal.dmi'
- icon_state = "parrot_fly"
- icon_living = "parrot_fly"
- icon_dead = "parrot_dead"
- intelligence_level = SA_ANIMAL
-
- turns_per_move = 5
- pass_flags = PASSTABLE
- mob_size = MOB_SMALL
-
- response_help = "pets"
- response_disarm = "gently moves aside"
- response_harm = "swats"
- stop_automated_movement = 1
- universal_speak = 1
-
- has_langs = list("Bird", "Galactic Common")
- speak_chance = 2
- speak = list("Hi","Hello!","Cracker?","Bawk!")
- speak_emote = list("squawks","says","yells")
- emote_hear = list("squawks","bawks")
- emote_see = list("flutters its wings")
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/cracker
-
- hovering = TRUE
- softfall = TRUE
- parachuting = TRUE
-
- var/parrot_state = PARROT_WANDER //Hunt for a perch when created
- var/parrot_sleep_max = 25 //The time the parrot sits while perched before looking around. Mosly a way to avoid the parrot's AI in life() being run every single tick.
- var/parrot_sleep_dur = 25 //Same as above, this is the var that physically counts down
- var/parrot_dam_zone = list(BP_TORSO, BP_HEAD, BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG) //For humans, select a bodypart to attack
-
- var/parrot_speed = 5 //"Delay in world ticks between movement." according to byond. Yeah, that's BS but it does directly affect movement. Higher number = slower.
- var/parrot_been_shot = 0 //Parrots get a speed bonus after being shot. This will deincrement every Life() and at 0 the parrot will return to regular speed.
-
- var/list/speech_buffer = list()
- var/list/available_channels = list()
-
- //Headset for Poly to yell at engineers :)
- var/obj/item/device/radio/headset/ears = null
-
- //The thing the parrot is currently interested in. This gets used for items the parrot wants to pick up, mobs it wants to steal from,
- //mobs it wants to attack or mobs that have attacked it
- var/atom/movable/parrot_interest = null
-
- //Parrots will generally sit on their pertch unless something catches their eye.
- //These vars store their preffered perch and if they dont have one, what they can use as a perch
- var/obj/parrot_perch = null
- var/obj/desired_perches = list(/obj/structure/frame, /obj/structure/displaycase, \
- /obj/structure/filingcabinet, /obj/machinery/teleport, \
- /obj/machinery/computer, /obj/machinery/clonepod, \
- /obj/machinery/dna_scannernew, /obj/machinery/telecomms, \
- /obj/machinery/nuclearbomb, /obj/machinery/particle_accelerator, \
- /obj/machinery/recharge_station, /obj/machinery/smartfridge, \
- /obj/machinery/suit_storage_unit)
-
- //Parrots are kleptomaniacs. This variable ... stores the item a parrot is holding.
- var/obj/item/held_item = null
-
-
-/mob/living/simple_mob/parrot/New()
- ..()
- if(!ears)
- var/headset = pick(/obj/item/device/radio/headset/headset_sec, \
- /obj/item/device/radio/headset/headset_eng, \
- /obj/item/device/radio/headset/headset_med, \
- /obj/item/device/radio/headset/headset_sci, \
- /obj/item/device/radio/headset/headset_cargo)
- ears = new headset(src)
-
- parrot_sleep_dur = parrot_sleep_max //In case someone decides to change the max without changing the duration var
-
- verbs.Add(/mob/living/simple_mob/parrot/proc/steal_from_ground, \
- /mob/living/simple_mob/parrot/proc/steal_from_mob, \
- /mob/living/simple_mob/parrot/verb/drop_held_item_player, \
- /mob/living/simple_mob/parrot/proc/perch_player)
-
-
-/mob/living/simple_mob/parrot/death()
- if(held_item)
- held_item.forceMove(src.loc)
- held_item = null
- walk(src,0)
- ..()
-
-/mob/living/simple_mob/parrot/Stat()
- ..()
- stat("Held Item", held_item)
-
-/*
- * Inventory
- */
-/mob/living/simple_mob/parrot/show_inv(mob/user as mob)
- user.set_machine(src)
- if(user.stat) return
-
- var/dat = "
"
- if(ears)
- dat += "
Headset: [ears] (Remove)"
- else
- dat += "
Headset: Nothing"
-
- user << browse(dat, text("window=mob[];size=325x500", name))
- onclose(user, "mob[real_name]")
- return
-
-/mob/living/simple_mob/parrot/Topic(href, href_list)
-
- //Can the usr physically do this?
- if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
- return
-
- //Is the usr's mob type able to do this?
- if(ishuman(usr) || issmall(usr) || isrobot(usr))
-
- //Removing from inventory
- if(href_list["remove_inv"])
- var/remove_from = href_list["remove_inv"]
- switch(remove_from)
- if("ears")
- if(ears)
- if(available_channels.len)
- src.say("[pick(available_channels)] BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
- else
- src.say("BAWWWWWK LEAVE THE HEADSET BAWKKKKK!")
- ears.forceMove(src.loc)
- ears = null
- for(var/possible_phrase in speak)
- if(copytext(possible_phrase,1,3) in department_radio_keys)
- possible_phrase = copytext(possible_phrase,3,length(possible_phrase))
- else
- to_chat(usr, "There is nothing to remove from its [remove_from].")
- return
-
- //Adding things to inventory
- else if(href_list["add_inv"])
- var/add_to = href_list["add_inv"]
- if(!usr.get_active_hand())
- to_chat(usr, "You have nothing in your hand to put on its [add_to].")
- return
- switch(add_to)
- if("ears")
- if(ears)
- to_chat(usr, "It's already wearing something.")
- return
- else
- var/obj/item/item_to_add = usr.get_active_hand()
- if(!item_to_add)
- return
-
- if( !istype(item_to_add, /obj/item/device/radio/headset) )
- to_chat(usr, "This object won't fit.")
- return
-
- var/obj/item/device/radio/headset/headset_to_add = item_to_add
-
- usr.drop_item()
- headset_to_add.forceMove(src)
- src.ears = headset_to_add
- to_chat(usr, "You fit the headset onto [src].")
-
- clearlist(available_channels)
- for(var/ch in headset_to_add.channels)
- switch(ch)
- if("Engineering")
- available_channels.Add(":e")
- if("Command")
- available_channels.Add(":c")
- if("Security")
- available_channels.Add(":s")
- if("Science")
- available_channels.Add(":n")
- if("Medical")
- available_channels.Add(":m")
- if("Mining")
- available_channels.Add(":d")
- if("Cargo")
- available_channels.Add(":q")
-
- if(headset_to_add.translate_binary)
- available_channels.Add("#b")
- else
- ..()
-
-
-/*
- * Attack responces
- */
-//Humans, monkeys, aliens
-/mob/living/simple_mob/parrot/attack_hand(mob/living/carbon/M as mob)
- ..()
- if(client) return
- if(!stat && M.a_intent == I_HURT)
-
- icon_state = "parrot_fly" //It is going to be flying regardless of whether it flees or attacks
-
- if(parrot_state == PARROT_PERCH)
- parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched
-
- parrot_interest = M
- parrot_state = PARROT_SWOOP //The parrot just got hit, it WILL move, now to pick a direction..
-
- if(M.health < 50) //Weakened mob? Fight back!
- parrot_state |= PARROT_ATTACK
- else
- parrot_state |= PARROT_FLEE //Otherwise, fly like a bat out of hell!
- drop_held_item(0)
- return
-
-//Mobs with objects
-/mob/living/simple_mob/parrot/attackby(var/obj/item/O as obj, var/mob/user as mob)
- ..()
- if(!stat && !client && !istype(O, /obj/item/stack/medical))
- if(O.force)
- if(parrot_state == PARROT_PERCH)
- parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched
-
- parrot_interest = user
- parrot_state = PARROT_SWOOP | PARROT_FLEE
- icon_state = "parrot_fly"
- drop_held_item(0)
- return
-
-//Bullets
-/mob/living/simple_mob/parrot/bullet_act(var/obj/item/projectile/Proj)
- ..()
- if(!stat && !client)
- if(parrot_state == PARROT_PERCH)
- parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched
-
- parrot_interest = null
- parrot_state = PARROT_WANDER //OWFUCK, Been shot! RUN LIKE HELL!
- parrot_been_shot += 5
- icon_state = "parrot_fly"
- drop_held_item(0)
- return
-
-
-/*
- * AI - Not really intelligent, but I'm calling it AI anyway.
- */
-/mob/living/simple_mob/parrot/Life()
- ..()
-
- //Sprite and AI update for when a parrot gets pulled
- if(pulledby && stat == CONSCIOUS)
- icon_state = "parrot_fly"
- if(!client)
- parrot_state = PARROT_WANDER
- return
-
- if(client || stat)
- return //Lets not force players or dead/incap parrots to move
-
- if(!isturf(src.loc) || !canmove || buckled)
- return //If it can't move, dont let it move. (The buckled check probably isn't necessary thanks to canmove)
-
-
-//-----SPEECH
- /* Parrot speech mimickry!
- Phrases that the parrot hears in mob/living/say() get added to speach_buffer.
- Every once in a while, the parrot picks one of the lines from the buffer and replaces an element of the 'speech' list.
- Then it clears the buffer to make sure they dont magically remember something from hours ago. */
- if(speech_buffer.len && prob(10))
- if(speak.len)
- speak.Remove(pick(speak))
-
- speak.Add(pick(speech_buffer))
- clearlist(speech_buffer)
-
-
-//-----SLEEPING
- if(parrot_state == PARROT_PERCH)
- if(parrot_perch && parrot_perch.loc != src.loc) //Make sure someone hasnt moved our perch on us
- if(parrot_perch in view(src))
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- icon_state = "parrot_fly"
- return
- else
- parrot_state = PARROT_WANDER
- icon_state = "parrot_fly"
- return
-
- if(--parrot_sleep_dur) //Zzz
- return
-
- else
- //This way we only call the stuff below once every [sleep_max] ticks.
- parrot_sleep_dur = parrot_sleep_max
-
- //Cycle through message modes for the headset
- if(speak.len)
- var/list/newspeak = list()
-
- if(available_channels.len && src.ears)
- for(var/possible_phrase in speak)
-
- //50/50 chance to not use the radio at all
- var/useradio = 0
- if(prob(50))
- useradio = 1
-
- if(copytext(possible_phrase,1,3) in department_radio_keys)
- possible_phrase = "[useradio?pick(available_channels):""] [copytext(possible_phrase,3,length(possible_phrase)+1)]" //crop out the channel prefix
- else
- possible_phrase = "[useradio?pick(available_channels):""] [possible_phrase]"
-
- newspeak.Add(possible_phrase)
-
- else //If we have no headset or channels to use, dont try to use any!
- for(var/possible_phrase in speak)
- if(copytext(possible_phrase,1,3) in department_radio_keys)
- possible_phrase = "[copytext(possible_phrase,3,length(possible_phrase)+1)]" //crop out the channel prefix
- newspeak.Add(possible_phrase)
- speak = newspeak
-
- //Search for item to steal
- parrot_interest = search_for_item()
- if(parrot_interest)
- visible_emote("looks in [parrot_interest]'s direction and takes flight")
- parrot_state = PARROT_SWOOP | PARROT_STEAL
- icon_state = "parrot_fly"
- return
-
-//-----WANDERING - This is basically a 'I dont know what to do yet' state
- else if(parrot_state == PARROT_WANDER)
- //Stop movement, we'll set it later
- walk(src, 0)
- parrot_interest = null
-
- //Wander around aimlessly. This will help keep the loops from searches down
- //and possibly move the mob into a new are in view of something they can use
- if(prob(90))
- step(src, pick(cardinal))
- return
-
- if(!held_item && !parrot_perch) //If we've got nothing to do.. look for something to do.
- var/atom/movable/AM = search_for_perch_and_item() //This handles checking through lists so we know it's either a perch or stealable item
- if(AM)
- if(istype(AM, /obj/item) || isliving(AM)) //If stealable item
- parrot_interest = AM
- visible_emote("turns and flies towards [parrot_interest]")
- parrot_state = PARROT_SWOOP | PARROT_STEAL
- return
- else //Else it's a perch
- parrot_perch = AM
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- return
- return
-
- if(parrot_interest && parrot_interest in view(src))
- parrot_state = PARROT_SWOOP | PARROT_STEAL
- return
-
- if(parrot_perch && parrot_perch in view(src))
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- return
-
- else //Have an item but no perch? Find one!
- parrot_perch = search_for_perch()
- if(parrot_perch)
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- return
-//-----STEALING
- else if(parrot_state == (PARROT_SWOOP | PARROT_STEAL))
- walk(src,0)
- if(!parrot_interest || held_item)
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- return
-
- if(!(parrot_interest in view(src)))
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- return
-
- if(in_range(src, parrot_interest))
-
- if(isliving(parrot_interest))
- steal_from_mob()
-
- else //This should ensure that we only grab the item we want, and make sure it's not already collected on our perch
- if(!parrot_perch || parrot_interest.loc != parrot_perch.loc)
- held_item = parrot_interest
- parrot_interest.forceMove(src)
- visible_message("[src] grabs the [held_item]!", "You grab the [held_item]!", "You hear the sounds of wings flapping furiously.")
-
- parrot_interest = null
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- return
-
- walk_to(src, parrot_interest, 1, parrot_speed)
- return
-
-//-----RETURNING TO PERCH
- else if(parrot_state == (PARROT_SWOOP | PARROT_RETURN))
- walk(src, 0)
- if(!parrot_perch || !isturf(parrot_perch.loc)) //Make sure the perch exists and somehow isnt inside of something else.
- parrot_perch = null
- parrot_state = PARROT_WANDER
- return
-
- if(in_range(src, parrot_perch))
- src.forceMove(parrot_perch.loc)
- drop_held_item()
- parrot_state = PARROT_PERCH
- icon_state = "parrot_sit"
- return
-
- walk_to(src, parrot_perch, 1, parrot_speed)
- return
-
-//-----FLEEING
- else if(parrot_state == (PARROT_SWOOP | PARROT_FLEE))
- walk(src,0)
- if(!parrot_interest || !isliving(parrot_interest)) //Sanity
- parrot_state = PARROT_WANDER
-
- walk_away(src, parrot_interest, 1, parrot_speed-parrot_been_shot)
- parrot_been_shot--
- return
-
-//-----ATTACKING
- else if(parrot_state == (PARROT_SWOOP | PARROT_ATTACK))
-
- //If we're attacking a nothing, an object, a turf or a ghost for some stupid reason, switch to wander
- if(!parrot_interest || !isliving(parrot_interest))
- parrot_interest = null
- parrot_state = PARROT_WANDER
- return
-
- var/mob/living/L = parrot_interest
-
- //If the mob is close enough to interact with
- if(in_range(src, parrot_interest))
-
- //If the mob we've been chasing/attacking dies or falls into crit, check for loot!
- if(L.stat)
- parrot_interest = null
- if(!held_item)
- held_item = steal_from_ground()
- if(!held_item)
- held_item = steal_from_mob() //Apparently it's possible for dead mobs to hang onto items in certain circumstances.
- if(parrot_perch in view(src)) //If we have a home nearby, go to it, otherwise find a new home
- parrot_state = PARROT_SWOOP | PARROT_RETURN
- else
- parrot_state = PARROT_WANDER
- return
-
- //Time for the hurt to begin!
- var/damage = rand(5,10)
-
- if(ishuman(parrot_interest))
- var/mob/living/carbon/human/H = parrot_interest
- var/obj/item/organ/external/affecting = H.get_organ(ran_zone(pick(parrot_dam_zone)))
-
- H.apply_damage(damage, BRUTE, affecting, H.run_armor_check(affecting, "melee"), H.get_armor_soak(affecting, "melee"), sharp=1)
- visible_emote(pick("pecks [H]'s [affecting].", "cuts [H]'s [affecting] with its talons."))
-
- else
- L.adjustBruteLoss(damage)
- visible_emote(pick("pecks at [L].", "claws [L]."))
- return
-
- //Otherwise, fly towards the mob!
- else
- walk_to(src, parrot_interest, 1, parrot_speed)
- return
-//-----STATE MISHAP
- else //This should not happen. If it does lets reset everything and try again
- walk(src,0)
- parrot_interest = null
- parrot_perch = null
- drop_held_item()
- parrot_state = PARROT_WANDER
- return
-
-/*
- * Procs
- */
-
-/mob/living/simple_mob/parrot/movement_delay()
- if(client && stat == CONSCIOUS && parrot_state != "parrot_fly")
- icon_state = "parrot_fly"
- ..()
-
-/mob/living/simple_mob/parrot/proc/search_for_item()
- for(var/atom/movable/AM in view(src))
- //Skip items we already stole or are wearing or are too big
- if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src)
- continue
-
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
- if(I.w_class < ITEMSIZE_SMALL)
- return I
-
- if(iscarbon(AM))
- var/mob/living/carbon/C = AM
- if((C.l_hand && C.l_hand.w_class <= ITEMSIZE_SMALL) || (C.r_hand && C.r_hand.w_class <= ITEMSIZE_SMALL))
- return C
- return null
-
-/mob/living/simple_mob/parrot/proc/search_for_perch()
- for(var/obj/O in view(src))
- for(var/path in desired_perches)
- if(istype(O, path))
- return O
- return null
-
-//This proc was made to save on doing two 'in view' loops seperatly
-/mob/living/simple_mob/parrot/proc/search_for_perch_and_item()
- for(var/atom/movable/AM in view(src))
- for(var/perch_path in desired_perches)
- if(istype(AM, perch_path))
- return AM
-
- //Skip items we already stole or are wearing or are too big
- if(parrot_perch && AM.loc == parrot_perch.loc || AM.loc == src)
- continue
-
- if(istype(AM, /obj/item))
- var/obj/item/I = AM
- if(I.w_class <= ITEMSIZE_SMALL)
- return I
-
- if(iscarbon(AM))
- var/mob/living/carbon/C = AM
- if(C.l_hand && C.l_hand.w_class <= ITEMSIZE_SMALL || C.r_hand && C.r_hand.w_class <= ITEMSIZE_SMALL)
- return C
- return null
-
-
-/*
- * Verbs - These are actually procs, but can be used as verbs by player-controlled parrots.
- */
-/mob/living/simple_mob/parrot/proc/steal_from_ground()
- set name = "Steal from ground"
- set category = "Parrot"
- set desc = "Grabs a nearby item."
-
- if(stat)
- return -1
-
- if(held_item)
- to_chat(src, "You are already holding the [held_item]")
- return 1
-
- for(var/obj/item/I in view(1,src))
- //Make sure we're not already holding it and it's small enough
- if(I.loc != src && I.w_class <= ITEMSIZE_SMALL)
-
- //If we have a perch and the item is sitting on it, continue
- if(!client && parrot_perch && I.loc == parrot_perch.loc)
- continue
-
- held_item = I
- I.forceMove(src)
- visible_message("[src] grabs the [held_item]!", "You grab the [held_item]!", "You hear the sounds of wings flapping furiously.")
- return held_item
-
- to_chat(src, "There is nothing of interest to take.")
- return 0
-
-/mob/living/simple_mob/parrot/proc/steal_from_mob()
- set name = "Steal from mob"
- set category = "Parrot"
- set desc = "Steals an item right out of a person's hand!"
-
- if(stat)
- return -1
-
- if(held_item)
- to_chat(src, "You are already holding the [held_item]")
- return 1
-
- var/obj/item/stolen_item = null
-
- for(var/mob/living/carbon/C in view(1,src))
- if(C.l_hand && C.l_hand.w_class <= ITEMSIZE_SMALL)
- stolen_item = C.l_hand
-
- if(C.r_hand && C.r_hand.w_class <= ITEMSIZE_SMALL)
- stolen_item = C.r_hand
-
- if(stolen_item)
- C.remove_from_mob(stolen_item)
- held_item = stolen_item
- stolen_item.forceMove(src)
- visible_message("[src] grabs the [held_item] out of [C]'s hand!", "You snag the [held_item] out of [C]'s hand!", "You hear the sounds of wings flapping furiously.")
- return held_item
-
- to_chat(src, "There is nothing of interest to take.")
- return 0
-
-/mob/living/simple_mob/parrot/verb/drop_held_item_player()
- set name = "Drop held item"
- set category = "Parrot"
- set desc = "Drop the item you're holding."
-
- if(stat)
- return
-
- src.drop_held_item()
-
- return
-
-/mob/living/simple_mob/parrot/proc/drop_held_item(var/drop_gently = 1)
- set name = "Drop held item"
- set category = "Parrot"
- set desc = "Drop the item you're holding."
-
- if(stat)
- return -1
-
- if(!held_item)
- to_chat(usr, "You have nothing to drop!")
- return 0
-
- if(!drop_gently)
- if(istype(held_item, /obj/item/weapon/grenade))
- var/obj/item/weapon/grenade/G = held_item
- G.forceMove(src.loc)
- G.detonate()
- to_chat(src, "You let go of the [held_item]!")
- held_item = null
- return 1
-
- to_chat(src, "You drop the [held_item].")
-
- held_item.forceMove(src.loc)
- held_item = null
- return 1
-
-/mob/living/simple_mob/parrot/proc/perch_player()
- set name = "Sit"
- set category = "Parrot"
- set desc = "Sit on a nice comfy perch."
-
- if(stat || !client)
- return
-
- if(icon_state == "parrot_fly")
- for(var/atom/movable/AM in view(src,1))
- for(var/perch_path in desired_perches)
- if(istype(AM, perch_path))
- src.forceMove(AM.loc)
- icon_state = "parrot_sit"
- return
- to_chat(src, "There is no perch nearby to sit on.")
- return
-
-/*
- * Sub-types
- */
-/mob/living/simple_mob/parrot/Poly
- name = "Poly"
- desc = "Poly the Parrot. An expert on quantum cracker theory."
- speak = list("Poly wanna cracker!", ":e Check the singlo, you chucklefucks!",":e Wire the solars, you lazy bums!",":e WHO TOOK THE DAMN HARDSUITS?",":e OH GOD ITS FREE CALL THE SHUTTLE")
-
-/mob/living/simple_mob/parrot/Poly/New()
- ears = new /obj/item/device/radio/headset/headset_eng(src)
- available_channels = list(":e")
- ..()
-
-/mob/living/simple_mob/parrot/say(var/message)
-
- if(stat)
- return
-
- var/verb = "says"
- if(speak_emote.len)
- verb = pick(speak_emote)
-
-
- var/message_mode=""
- if(copytext(message,1,2) == ";")
- message_mode = "headset"
- message = copytext(message,2)
-
- if(length(message) >= 2)
- var/channel_prefix = copytext(message, 1 ,3)
- message_mode = department_radio_keys[channel_prefix]
-
- if(copytext(message,1,2) == ":")
- var/positioncut = 3
- message = trim(copytext(message,positioncut))
-
- message = capitalize(trim_left(message))
-
- if(message_mode)
- if(message_mode in radiochannels)
- if(ears && istype(ears,/obj/item/device/radio))
- ears.talk_into(src,sanitize(message), message_mode, verb, null)
-
-
- ..(message)
-
-
-/mob/living/simple_mob/parrot/hear_say(var/message, var/verb = "says", var/datum/language/language = null, var/alt_name = "",var/italics = 0, var/mob/speaker = null)
- if(prob(50))
- parrot_hear(message)
- ..(message,verb,language,alt_name,italics,speaker)
-
-
-
-/mob/living/simple_mob/parrot/hear_radio(var/message, var/verb="says", var/datum/language/language=null, var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0)
- if(prob(50))
- parrot_hear("[pick(available_channels)] [message]")
- ..(message,verb,language,part_a,part_b,speaker,hard_to_hear)
-
-
-/mob/living/simple_mob/parrot/proc/parrot_hear(var/message="")
- if(!message || stat)
- return
- speech_buffer.Add(message)
-
-/mob/living/simple_mob/parrot/attack_generic(var/mob/user, var/damage, var/attack_message)
-
- var/success = ..()
-
- if(client)
- return success
-
- if(parrot_state == PARROT_PERCH)
- parrot_sleep_dur = parrot_sleep_max //Reset it's sleep timer if it was perched
-
- if(!success)
- return 0
-
- parrot_interest = user
- parrot_state = PARROT_SWOOP | PARROT_ATTACK //Attack other animals regardless
- icon_state = "parrot_fly"
- return success
diff --git a/code/modules/mob/living/simple_animal/animals/penguin.dm b/code/modules/mob/living/simple_animal/animals/penguin.dm
deleted file mode 100644
index 105d6e7c213..00000000000
--- a/code/modules/mob/living/simple_animal/animals/penguin.dm
+++ /dev/null
@@ -1,27 +0,0 @@
-/mob/living/simple_mob/penguin
- name = "space penguin"
- desc = "An ungainly, waddling, cute, and VERY well-dressed bird."
- tt_desc = "E Aptenodytes forsteri"
- icon_state = "penguin"
- icon_living = "penguin"
- icon_dead = "penguin_dead"
- intelligence_level = SA_ANIMAL
-
- maxHealth = 20
- health = 20
-
- turns_per_move = 5
-
- response_help = "pets"
- response_disarm = "pushes aside"
- response_harm = "hits"
-
- harm_intent_damage = 5
- melee_damage_lower = 10
- melee_damage_upper = 15
- attacktext = list("pecked")
-
- has_langs = list("Bird")
- speak_chance = 0
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
diff --git a/code/modules/mob/living/simple_animal/animals/pike_vr.dm b/code/modules/mob/living/simple_animal/animals/pike_vr.dm
deleted file mode 100644
index b04b83c14f9..00000000000
--- a/code/modules/mob/living/simple_animal/animals/pike_vr.dm
+++ /dev/null
@@ -1,34 +0,0 @@
-/mob/living/simple_mob/hostile/carp/pike
- name = "space pike"
- desc = "A bigger, angrier cousin of the space carp."
- icon = 'icons/mob/spaceshark.dmi'
- icon_state = "shark"
- icon_living = "shark"
- icon_dead = "shark_dead"
-
- maxHealth = 150
- health = 150
- speed = 0
- move_to_delay = 2
-
- turns_per_move = 2
- mob_size = MOB_LARGE
-
- harm_intent_damage = 5
- melee_damage_lower = 20
- melee_damage_upper = 25
-
- meat_amount = 10
-
- old_x = -16
- pixel_x = -16
-
- vore_icons = 0 //No custom icons yet
-
-/mob/living/simple_mob/hostile/carp/pike/weak
- maxHealth = 75
- health = 75
-
-/mob/living/simple_mob/hostile/carp/strong
- maxHealth = 50
- health = 50
diff --git a/code/modules/mob/living/simple_animal/animals/slime.dm b/code/modules/mob/living/simple_animal/animals/slime.dm
deleted file mode 100644
index 7db2392808a..00000000000
--- a/code/modules/mob/living/simple_animal/animals/slime.dm
+++ /dev/null
@@ -1,70 +0,0 @@
-/mob/living/simple_mob/old_slime
- name = "pet slime"
- desc = "A lovable, domesticated slime."
- tt_desc = "Amorphidae proteus"
- icon = 'icons/mob/slimes.dmi'
- icon_state = "grey baby slime"
- icon_living = "grey baby slime"
- icon_dead = "grey baby slime dead"
-
- maxHealth = 100
- health = 100
-
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
-
- speak_chance = 1
- speak_emote = list("chirps")
- emote_see = list("jiggles", "bounces in place")
-
- var/colour = "grey"
-
-/mob/living/simple_mob/old_slime/science
- name = "Kendrick"
- colour = "rainbow"
- icon_state = "rainbow baby slime"
- icon_living = "rainbow baby slime"
- icon_dead = "rainbow baby slime dead"
-
-/mob/living/simple_animal/slime/science/Initialize()
- . = ..()
- overlays.Cut()
- overlays += "aslime-:33"
-
-/mob/living/simple_mob/adultslime
- name = "pet slime"
- desc = "A lovable, domesticated slime."
- icon = 'icons/mob/slimes.dmi'
- icon_state = "grey adult slime"
- icon_living = "grey adult slime"
- icon_dead = "grey baby slime dead"
-
- maxHealth = 200
- health = 200
-
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
-
- speak_chance = 1
- emote_see = list("jiggles", "bounces in place")
-
- var/colour = "grey"
-
-/mob/living/simple_mob/adultslime/New()
- ..()
- overlays += "aslime-:33"
-
-/mob/living/simple_mob/adultslime/death()
- var/mob/living/simple_mob/old_slime/S1 = new /mob/living/simple_mob/old_slime (src.loc)
- S1.icon_state = "[src.colour] baby slime"
- S1.icon_living = "[src.colour] baby slime"
- S1.icon_dead = "[src.colour] baby slime dead"
- S1.colour = "[src.colour]"
- var/mob/living/simple_mob/old_slime/S2 = new /mob/living/simple_mob/old_slime (src.loc)
- S2.icon_state = "[src.colour] baby slime"
- S2.icon_living = "[src.colour] baby slime"
- S2.icon_dead = "[src.colour] baby slime dead"
- S2.colour = "[src.colour]"
- qdel(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/animals/snake_vr.dm b/code/modules/mob/living/simple_animal/animals/snake_vr.dm
deleted file mode 100644
index b6f6618184d..00000000000
--- a/code/modules/mob/living/simple_animal/animals/snake_vr.dm
+++ /dev/null
@@ -1,104 +0,0 @@
-/mob/living/simple_mob/snake
- name = "snake"
- desc = "A big thick snake."
- icon = 'icons/mob/snake_vr.dmi'
- icon_state = "snake"
- icon_living = "snake"
- icon_dead = "snake_dead"
-
- maxHealth = 20
- health = 20
-
- turns_per_move = 8 // SLOW-ASS MUTHAFUCKA
-
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "kicks"
-
- melee_damage_lower = 3
- melee_damage_upper = 5
- attacktext = list("bitten")
-
- speak_chance = 1
- speak_emote = list("hisses")
-
-//NOODLE IS HERE! SQUEEEEEEEE~
-/mob/living/simple_mob/snake/Noodle
- name = "Noodle"
- desc = "This snake is particularly chubby and demands nothing but the finest of treats."
- var/turns_since_scan = 0
- var/obj/movement_target
-
-/mob/living/simple_mob/snake/Noodle/Life() //stolen from Ian in corgi.dm
- if(!..())
- return 0
-
- if(!stat && !resting && !buckled && !ai_inactive)
- turns_since_scan++
- if(turns_since_scan > 5)
- turns_since_scan = 0
- if(movement_target && !(isturf(movement_target.loc) || ishuman(movement_target.loc)))
- movement_target = null
- stop_automated_movement = 0
- if(!movement_target || !(movement_target.loc in oview(src, 5)) )
- movement_target = null
- stop_automated_movement = 0
- walk(src,0)
- for(var/obj/item/weapon/reagent_containers/food/snacks/snakesnack/S in oview(src,3))
- if(isturf(S.loc))
- movement_target = S
- visible_emote("turns towards \the [movement_target] and slithers towards it.")
- break
-
- if(movement_target)
- stop_automated_movement = 1
- walk_to(src, movement_target, 0, 5)
- spawn(10)
- if(Adjacent(movement_target))
- visible_message("[src] swallows the [movement_target] whole!")
- qdel(movement_target)
- walk(src,0)
- else if(ishuman(movement_target.loc) && prob(20))
- visible_emote("stares at the [movement_target] that [movement_target.loc] has with an unknowable reptilian gaze.")
-
-/mob/living/simple_mob/snake/Noodle/attackby(var/obj/item/O, var/mob/user)
- if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/snakesnack))
- visible_message("[user] feeds \the [O] to [src].")
- qdel(O)
- else
- return ..()
-
-//Special snek-snax for Noodle!
-/obj/item/weapon/reagent_containers/food/snacks/snakesnack
- name = "sugar mouse"
- desc = "A little mouse treat made of coloured sugar. Noodle loves these!"
- var/snack_colour
- icon = 'icons/mob/snake_vr.dmi'
- icon_state = "snack_yellow"
- nutriment_amt = 1
- nutriment_desc = list("sugar" = 1)
-
-/obj/item/weapon/reagent_containers/food/snacks/snakesnack/New()
- ..()
- if(!snack_colour)
- snack_colour = pick( list("yellow","green","pink","blue") )
- icon_state = "snack_[snack_colour]"
- desc = "A little mouse treat made of coloured sugar. Noodle loves these! This one is [snack_colour]."
- reagents.add_reagent("sugar", 2)
-
-/obj/item/weapon/storage/box/snakesnackbox
- name = "box of Snake Snax"
- desc = "A box containing Noodle's special sugermouse treats."
- icon = 'icons/mob/snake_vr.dmi'
- icon_state = "sneksnakbox"
- storage_slots = 7
-
-/obj/item/weapon/storage/box/snakesnackbox/New()
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- new /obj/item/weapon/reagent_containers/food/snacks/snakesnack(src)
- ..()
diff --git a/code/modules/mob/living/simple_animal/animals/spiderbot.dm b/code/modules/mob/living/simple_animal/animals/spiderbot.dm
deleted file mode 100644
index 35b5a56926c..00000000000
--- a/code/modules/mob/living/simple_animal/animals/spiderbot.dm
+++ /dev/null
@@ -1,302 +0,0 @@
-/mob/living/simple_mob/spiderbot
- name = "spider-bot"
- desc = "A skittering robotic friend!"
- tt_desc = "Maintenance Robot"
- icon = 'icons/mob/robots.dmi'
- icon_state = "spiderbot-chassis"
- icon_living = "spiderbot-chassis"
- icon_dead = "spiderbot-smashed"
- intelligence_level = SA_HUMANOID // Because its piloted by players.
-
- health = 10
- maxHealth = 10
-
- wander = 0
- speed = -1 //Spiderbots gotta go fast.
- pass_flags = PASSTABLE
- mob_size = MOB_SMALL
-
- response_help = "pets"
- response_disarm = "shoos"
- response_harm = "stomps on"
-
- melee_damage_lower = 1
- melee_damage_upper = 3
- attacktext = list("shocked")
-
- min_oxy = 0
- max_tox = 0
- max_co2 = 0
- minbodytemp = 0
- maxbodytemp = 500
-
- speak_chance = 1
- speak_emote = list("beeps","clicks","chirps")
-
- var/obj/item/device/radio/borg/radio = null
- var/mob/living/silicon/ai/connected_ai = null
- var/obj/item/weapon/cell/cell = null
- var/obj/machinery/camera/camera = null
- var/obj/item/device/mmi/mmi = null
- var/list/req_access = list(access_robotics) //Access needed to pop out the brain.
- var/positronic
-
- can_enter_vent_with = list(
- /obj/item/weapon/implant,
- /obj/item/device/radio/borg,
- /obj/item/weapon/holder,
- /obj/machinery/camera,
- /mob/living/simple_mob/animal/borer,
- /obj/item/device/mmi,
- )
-
- var/emagged = 0
- var/obj/item/held_item = null //Storage for single item they can hold.
-
-/mob/living/simple_mob/spiderbot/New()
- ..()
- add_language(LANGUAGE_GALCOM)
- default_language = all_languages[LANGUAGE_GALCOM]
- verbs |= /mob/living/proc/ventcrawl
- verbs |= /mob/living/proc/hide
-
-/mob/living/simple_mob/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob)
-
- if(istype(O, /obj/item/device/mmi))
- var/obj/item/device/mmi/B = O
- if(src.mmi)
- user << "There's already a brain in [src]!"
- return
- if(!B.brainmob)
- user << "Sticking an empty MMI into the frame would sort of defeat the purpose."
- return
- if(!B.brainmob.key)
- var/ghost_can_reenter = 0
- if(B.brainmob.mind)
- for(var/mob/observer/dead/G in player_list)
- if(G.can_reenter_corpse && G.mind == B.brainmob.mind)
- ghost_can_reenter = 1
- break
- if(!ghost_can_reenter)
- user << "[O] is completely unresponsive; there's no point."
- return
-
- if(B.brainmob.stat == DEAD)
- user << "[O] is dead. Sticking it into the frame would sort of defeat the purpose."
- return
-
- if(jobban_isbanned(B.brainmob, "Cyborg"))
- user << "\The [O] does not seem to fit."
- return
-
- user << "You install \the [O] in \the [src]!"
-
- if(istype(O, /obj/item/device/mmi/digital))
- positronic = 1
- add_language("Robot Talk")
-
- user.drop_item()
- src.mmi = O
- src.transfer_personality(O)
-
- O.forceMove(src)
- src.update_icon()
- return 1
-
- if (istype(O, /obj/item/weapon/weldingtool))
- var/obj/item/weapon/weldingtool/WT = O
- if (WT.remove_fuel(0))
- if(health < getMaxHealth())
- health += pick(1,1,1,2,2,3)
- if(health > getMaxHealth())
- health = getMaxHealth()
- add_fingerprint(user)
- src.visible_message("\The [user] has spot-welded some of the damage to \the [src]!")
- else
- user << "\The [src] is undamaged!"
- else
- user << "You need more welding fuel for this task!"
- return
- else if(istype(O, /obj/item/weapon/card/id)||istype(O, /obj/item/device/pda))
- if (!mmi)
- user << "There's no reason to swipe your ID - \the [src] has no brain to remove."
- return 0
-
- var/obj/item/weapon/card/id/id_card
-
- if(istype(O, /obj/item/weapon/card/id))
- id_card = O
- else
- var/obj/item/device/pda/pda = O
- id_card = pda.id
-
- if(access_robotics in id_card.access)
- user << "You swipe your access card and pop the brain out of \the [src]."
- eject_brain()
- if(held_item)
- held_item.forceMove(src.loc)
- held_item = null
- return 1
- else
- user << "You swipe your card with no effect."
- return 0
-
- else
- O.attack(src, user, user.zone_sel.selecting)
-
-/mob/living/simple_mob/spiderbot/emag_act(var/remaining_charges, var/mob/user)
- if (emagged)
- user << "[src] is already overloaded - better run."
- return 0
- else
- user << "You short out the security protocols and overload [src]'s cell, priming it to explode in a short time."
- spawn(100)
- to_chat(src, "Your cell seems to be outputting a lot of power...")
- spawn(200)
- to_chat(src, "Internal heat sensors are spiking! Something is badly wrong with your cell!")
- spawn(300) src.explode()
-
-/mob/living/simple_mob/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
-
- src.mind = M.brainmob.mind
- src.mind.key = M.brainmob.key
- src.ckey = M.brainmob.ckey
- src.name = "spider-bot ([M.brainmob.name])"
- src.languages = M.brainmob.languages
-
-/mob/living/simple_mob/spiderbot/proc/explode() //When emagged.
- src.visible_message("\The [src] makes an odd warbling noise, fizzles, and explodes!")
- explosion(get_turf(loc), -1, -1, 3, 5)
- eject_brain()
- death()
-
-/mob/living/simple_mob/spiderbot/update_icon()
- if(mmi)
- if(positronic)
- icon_state = "spiderbot-chassis-posi"
- icon_living = "spiderbot-chassis-posi"
- else
- icon_state = "spiderbot-chassis-mmi"
- icon_living = "spiderbot-chassis-mmi"
- else
- icon_state = "spiderbot-chassis"
- icon_living = "spiderbot-chassis"
-
-/mob/living/simple_mob/spiderbot/proc/eject_brain()
- if(mmi)
- var/turf/T = get_turf(loc)
- if(T)
- mmi.forceMove(T)
- if(mind) mind.transfer_to(mmi.brainmob)
- mmi = null
- real_name = initial(real_name)
- name = real_name
- update_icon()
- remove_language("Robot Talk")
- positronic = null
-
-/mob/living/simple_mob/spiderbot/Destroy()
- eject_brain()
- ..()
-
-/mob/living/simple_mob/spiderbot/New()
-
- radio = new /obj/item/device/radio/borg(src)
- camera = new /obj/machinery/camera(src)
- camera.c_tag = "spiderbot-[real_name]"
- camera.replace_networks(list("SS13"))
-
- ..()
-
-/mob/living/simple_mob/spiderbot/death()
-
- living_mob_list -= src
- dead_mob_list += src
-
- if(camera)
- camera.status = 0
-
- held_item.forceMove(src.loc)
- held_item = null
-
- gibs(loc, null, null, /obj/effect/gibspawner/robot) //TODO: use gib() or refactor spiderbots into synthetics.
- qdel(src)
- return
-
-//Cannibalized from the parrot mob. ~Zuhayr
-/mob/living/simple_mob/spiderbot/verb/drop_held_item()
- set name = "Drop held item"
- set category = "Spiderbot"
- set desc = "Drop the item you're holding."
-
- if(stat)
- return
-
- if(!held_item)
- usr << "You have nothing to drop!"
- return 0
-
- if(istype(held_item, /obj/item/weapon/grenade))
- visible_message("\The [src] launches \the [held_item]!", \
- "You launch \the [held_item]!", \
- "You hear a skittering noise and a thump!")
- var/obj/item/weapon/grenade/G = held_item
- G.forceMove(src.loc)
- G.detonate()
- held_item = null
- return 1
-
- visible_message("\The [src] drops \the [held_item].", \
- "You drop \the [held_item].", \
- "You hear a skittering noise and a soft thump.")
-
- held_item.forceMove(src.loc)
- held_item = null
- return 1
-
- return
-
-/mob/living/simple_mob/spiderbot/verb/get_item()
- set name = "Pick up item"
- set category = "Spiderbot"
- set desc = "Allows you to take a nearby small item."
-
- if(stat)
- return -1
-
- if(held_item)
- to_chat(src, "You are already holding \the [held_item]")
- return 1
-
- var/list/items = list()
- for(var/obj/item/I in view(1,src))
- if(I.loc != src && I.w_class <= ITEMSIZE_SMALL && I.Adjacent(src) )
- items.Add(I)
-
- var/obj/selection = input("Select an item.", "Pickup") in items
-
- if(selection)
- for(var/obj/item/I in view(1, src))
- if(selection == I)
- held_item = selection
- selection.forceMove(src)
- visible_message("\The [src] scoops up \the [held_item].", \
- "You grab \the [held_item].", \
- "You hear a skittering noise and a clink.")
- return held_item
- to_chat(src, "\The [selection] is too far away.")
- return 0
-
- to_chat(src, "There is nothing of interest to take.")
- return 0
-
-/mob/living/simple_mob/spiderbot/examine(mob/user)
- ..(user)
- if(src.held_item)
- user << "It is carrying \icon[src.held_item] \a [src.held_item]."
-
-/mob/living/simple_mob/spiderbot/cannot_use_vents()
- return
-
-/mob/living/simple_mob/spiderbot/binarycheck()
- return positronic
diff --git a/code/modules/mob/living/simple_animal/animals/tomato.dm b/code/modules/mob/living/simple_animal/animals/tomato.dm
deleted file mode 100644
index 175875c4d2a..00000000000
--- a/code/modules/mob/living/simple_animal/animals/tomato.dm
+++ /dev/null
@@ -1,24 +0,0 @@
-/mob/living/simple_mob/hostile/tomato
- name = "tomato"
- desc = "It's a horrifyingly enormous beef tomato, and it's packing extra beef!"
- tt_desc = "X Solanum abominable"
- icon_state = "tomato"
- icon_living = "tomato"
- icon_dead = "tomato_dead"
- intelligence_level = SA_PLANT
-
- faction = "plants"
- maxHealth = 15
- health = 15
- turns_per_move = 5
-
- response_help = "prods"
- response_disarm = "pushes aside"
- response_harm = "smacks"
-
- harm_intent_damage = 5
- melee_damage_upper = 15
- melee_damage_lower = 10
- attacktext = list("mauled")
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/tomatomeat
diff --git a/code/modules/mob/living/simple_animal/animals/tree.dm b/code/modules/mob/living/simple_animal/animals/tree.dm
deleted file mode 100644
index 79e24c09f38..00000000000
--- a/code/modules/mob/living/simple_animal/animals/tree.dm
+++ /dev/null
@@ -1,60 +0,0 @@
-/mob/living/simple_mob/hostile/tree
- name = "pine tree"
- desc = "A pissed off tree-like alien. It seems annoyed with the festivities..."
- tt_desc = "X Festivus tyrannus"
- icon = 'icons/obj/flora/pinetrees.dmi'
- icon_state = "pine_1"
- icon_living = "pine_1"
- icon_dead = "pine_1"
- icon_gib = "pine_1"
- intelligence_level = SA_PLANT
-
- faction = "carp" //Trees can be carp friends?
- maxHealth = 250
- health = 250
- speed = -1
-
- turns_per_move = 5
-
- response_help = "brushes"
- response_disarm = "pushes"
- response_harm = "hits"
-
- harm_intent_damage = 5
- melee_damage_lower = 8
- melee_damage_upper = 12
- attacktext = list("bitten")
- attack_sound = 'sound/weapons/bite.ogg'
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
-
- pixel_x = -16
-
-/mob/living/simple_mob/hostile/tree/FindTarget()
- . = ..()
- if(.)
- audible_emote("growls at [.]")
-
-/mob/living/simple_mob/hostile/tree/PunchTarget()
- . =..()
- var/mob/living/L = .
- if(istype(L))
- if(prob(15))
- L.Weaken(3)
- L.visible_message("\the [src] knocks down \the [L]!")
-
-/mob/living/simple_mob/hostile/tree/death()
- ..(null,"is hacked into pieces!")
- playsound(loc, 'sound/effects/woodcutting.ogg', 100, 1)
- new /obj/item/stack/material/wood(loc)
- qdel(src)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/animals/worm.dm b/code/modules/mob/living/simple_animal/animals/worm.dm
deleted file mode 100644
index 4b82fdee741..00000000000
--- a/code/modules/mob/living/simple_animal/animals/worm.dm
+++ /dev/null
@@ -1,199 +0,0 @@
-/mob/living/simple_mob/space_worm
- name = "space worm segment"
- desc = "A part of a space worm."
- icon = 'icons/mob/animal.dmi'
- icon_state = "spaceworm"
- icon_living = "spaceworm"
- icon_dead = "spacewormdead"
- intelligence_level = SA_ANIMAL
-
-
- maxHealth = 30
- health = 30
- speed = -1
-
- status_flags = 0
- universal_speak = 1
- stop_automated_movement = 1
- wander = 0
- animate_movement = SYNC_STEPS
-
- response_help = "touches"
- response_disarm = "flails at"
- response_harm = "punches the"
-
- harm_intent_damage = 2
-
- minbodytemp = 0
- maxbodytemp = 350
- min_oxy = 0
- max_co2 = 0
- max_tox = 0
-
- environment_smash = 2
-
- speak_emote = list("transmits") //not supposed to be used under AI control
- emote_hear = list("transmits") //I'm just adding it so it doesn't runtime if controlled by player who speaks
-
- var/mob/living/simple_mob/space_worm/previous //next/previous segments, correspondingly
- var/mob/living/simple_mob/space_worm/next //head is the nextest segment
-
- var/stomachProcessProbability = 50
- var/digestionProbability = 20
- var/flatPlasmaValue = 5 //flat plasma amount given for non-items
-
- var/atom/currentlyEating //what the worm is currently eating
- var/eatingDuration = 0 //how long he's been eating it for
-
- head
- name = "space worm head"
- icon_state = "spacewormhead"
- icon_living = "spacewormhead"
- icon_dead = "spacewormdead"
-
- maxHealth = 20
- health = 20
-
- melee_damage_lower = 10
- melee_damage_upper = 15
- attacktext = list("bitten")
-
- animate_movement = SLIDE_STEPS
-
- New(var/location, var/segments = 6)
- ..()
-
- var/mob/living/simple_mob/space_worm/current = src
-
- for(var/i = 1 to segments)
- var/mob/living/simple_mob/space_worm/newSegment = new /mob/living/simple_mob/space_worm(loc)
- current.Attach(newSegment)
- current = newSegment
-
- update_icon()
- if(stat == CONSCIOUS || stat == UNCONSCIOUS)
- icon_state = "spacewormhead[previous?1:0]"
- if(previous)
- set_dir(get_dir(previous,src))
- else
- icon_state = "spacewormheaddead"
-
- Life()
- ..()
-
- if(next && !(next in view(src,1)))
- Detach()
-
- if(stat == DEAD) //dead chunks fall off and die immediately
- if(previous)
- previous.Detach()
- if(next)
- Detach(1)
-
- if(prob(stomachProcessProbability))
- ProcessStomach()
-
- update_icon()
-
- return
-
- Destroy() //if a chunk a destroyed, make a new worm out of the split halves
- if(previous)
- previous.Detach()
- ..()
-
- Move()
- var/attachementNextPosition = loc
- if(..())
- if(previous)
- previous.Move(attachementNextPosition)
- update_icon()
-
- Bump(atom/obstacle)
- if(currentlyEating != obstacle)
- currentlyEating = obstacle
- eatingDuration = 0
-
- if(!AttemptToEat(obstacle))
- eatingDuration++
- else
- currentlyEating = null
- eatingDuration = 0
-
- return
-
- update_icon() //only for the sake of consistency with the other update icon procs
- if(stat == CONSCIOUS || stat == UNCONSCIOUS)
- if(previous) //midsection
- icon_state = "spaceworm[get_dir(src,previous) | get_dir(src,next)]" //see 3 lines below
- else //tail
- icon_state = "spacewormtail"
- set_dir(get_dir(src,next)) //next will always be present since it's not a head and if it's dead, it goes in the other if branch
- else
- icon_state = "spacewormdead"
-
- return
-
- proc/AttemptToEat(var/atom/target)
- if(istype(target,/turf/simulated/wall))
- var/turf/simulated/wall/W = target
- if((!W.reinf_material && eatingDuration >= 100) || eatingDuration >= 200) //need 20 ticks to eat an rwall, 10 for a regular one
- W.dismantle_wall()
- return 1
- else if(istype(target,/atom/movable))
- if(istype(target,/mob) || eatingDuration >= 50) //5 ticks to eat stuff like airlocks
- var/atom/movable/objectOrMob = target
- contents += objectOrMob
- return 1
-
- return 0
-
- proc/Attach(var/mob/living/simple_mob/space_worm/attachement)
- if(!attachement)
- return
-
- previous = attachement
- attachement.next = src
-
- return
-
- proc/Detach(die = 0)
- var/mob/living/simple_mob/space_worm/newHead = new /mob/living/simple_mob/space_worm/head(loc,0)
- var/mob/living/simple_mob/space_worm/newHeadPrevious = previous
-
- previous = null //so that no extra heads are spawned
-
- newHead.Attach(newHeadPrevious)
-
- if(die)
- newHead.death()
-
- qdel(src)
-
- proc/ProcessStomach()
- for(var/atom/movable/stomachContent in contents)
- if(prob(digestionProbability))
- if(istype(stomachContent,/obj/item/stack)) //converts to plasma, keeping the stack value
- if(!istype(stomachContent,/obj/item/stack/material/phoron))
- var/obj/item/stack/oldStack = stomachContent
- new /obj/item/stack/material/phoron(src, oldStack.get_amount())
- qdel(oldStack)
- continue
- else if(istype(stomachContent,/obj/item)) //converts to plasma, keeping the w_class
- var/obj/item/oldItem = stomachContent
- new /obj/item/stack/material/phoron(src, oldItem.w_class)
- qdel(oldItem)
- continue
- else
- new /obj/item/stack/material/phoron(src, flatPlasmaValue) //just flat amount
- qdel(stomachContent)
- continue
-
- if(previous)
- for(var/atom/movable/stomachContent in contents) //transfer it along the digestive tract
- previous.contents += stomachContent
- else
- for(var/atom/movable/stomachContent in contents) //or poop it out
- loc.contents += stomachContent
-
- return
diff --git a/code/modules/mob/living/simple_animal/humanoids/clown.dm b/code/modules/mob/living/simple_animal/humanoids/clown.dm
deleted file mode 100644
index 9641611c339..00000000000
--- a/code/modules/mob/living/simple_animal/humanoids/clown.dm
+++ /dev/null
@@ -1,49 +0,0 @@
-/mob/living/simple_mob/hostile/clown
- name = "clown"
- desc = "A denizen of clown planet"
- tt_desc = "E Homo sapiens corydon" //this is an actual clown, as opposed to someone dressed up as one
- icon_state = "clown"
- icon_living = "clown"
- icon_dead = "clown_dead"
- icon_gib = "clown_gib"
- intelligence_level = SA_HUMANOID
-
- faction = "clown"
- maxHealth = 75
- health = 75
- speed = -1
- move_to_delay = 2
-
- run_at_them = 0
- cooperative = 1
-
- turns_per_move = 5
- stop_when_pulled = 0
-
- response_help = "pokes"
- response_disarm = "gently pushes aside"
- response_harm = "hits"
-
- harm_intent_damage = 8
- melee_damage_lower = 10
- melee_damage_upper = 10
- attacktext = list("attacked")
- attack_sound = 'sound/items/bikehorn.ogg'
-
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 270
- maxbodytemp = 370
- heat_damage_per_tick = 15 //amount of damage applied if animal's body temperature is higher than maxbodytemp
- cold_damage_per_tick = 10 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
- unsuitable_atoms_damage = 10
-
- speak_chance = 1
- speak = list("HONK", "Honk!", "Welcome to clown planet!")
- emote_see = list("honks")
diff --git a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm b/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm
deleted file mode 100644
index 9e1398884fa..00000000000
--- a/code/modules/mob/living/simple_animal/humanoids/mechamobs.dm
+++ /dev/null
@@ -1,123 +0,0 @@
-/mob/living/simple_mob/hostile/mecha
- name = "mercenary gygax"
- desc = "Well that's forboding."
- icon = 'icons/mecha/mecha.dmi'
- icon_state = "darkgygax"
- icon_living = "darkgygax"
- icon_dead = "darkgygax-broken"
- intelligence_level = SA_HUMANOID // Piloted by a human.
-
- faction = "syndicate"
- maxHealth = 300
- health = 300
- speed = 7
- move_to_delay = 8
-
- run_at_them = 0
- cooperative = 1
- investigates = 1
- firing_lines = 1
-
- turns_per_move = 5
- stop_when_pulled = 0
-
- response_help = "taps on"
- response_disarm = "knocks on"
- response_harm = "uselessly hits"
-
- harm_intent_damage = 0
- melee_damage_lower = 35
- melee_damage_upper = 35
- attacktext = list("slashed")
- attack_sound = 'sound/weapons/bladeslice.ogg'
-
- armor = list(melee = 40, bullet = 40, laser = 50, energy = 45, bomb = 20, bio = 100, rad = 100) // As close to the actual Dark Gygax as possible
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 0
-
- ranged = 1
- rapid = 1
- projectiletype = /obj/item/projectile/beam/midlaser
- projectilesound = 'sound/weapons/laser.ogg'
-
- speak_chance = 1
- speak = list("Know what we need? More meatshields.",
- "Glad I finally got a mech.",
- "I'll stomp those NanoTrasen dogs into paste.",
- "Glad I didn't become a line chef.",
- "This anti-fog visor is nice...",
- "Did I refill the air tank?")
- emote_hear = list("humms ominously","whirrs softly","grinds a gear")
- emote_see = list("looks around the area","turns from side to side")
- say_understood = list()
- say_cannot = list()
- say_maybe_target = list("Just my sensors?","Detecting something?","Is that...?","What was that?")
- say_got_target = list("ENGAGING!!!","CONTACT!!!","TARGET SPOTTED!","FOUND ONE!")
- reactions = list()
-
- var/datum/effect/effect/system/spark_spread/sparks
- var/wreckage = /obj/effect/decal/mecha_wreckage/gygax/dark
-
-/mob/living/simple_mob/hostile/mecha/New()
- ..()
- sparks = new (src)
- sparks.set_up(3, 1, src)
-
-/mob/living/simple_mob/hostile/mecha/Destroy()
- qdel(sparks)
- ..()
-
-/mob/living/simple_mob/hostile/mecha/Life()
- . = ..()
- if(!.) return
- if((health < getMaxHealth()*0.3) && prob(10))
- sparks.start()
-
-/mob/living/simple_mob/hostile/mecha/bullet_act()
- ..()
- sparks.start()
-
-/mob/living/simple_mob/hostile/mecha/death()
- ..(0,"explodes!")
- sparks.start()
- explosion(get_turf(src), 0, 0, 1, 3)
- qdel(src)
- new /obj/effect/decal/mecha_wreckage/gygax/dark(get_turf(src))
-
-/mob/living/simple_mob/hostile/mecha/Move()
- ..()
- playsound(src,'sound/mecha/mechstep.ogg',40,1)
-
-// This is a PoI mob, not the normal, floaty drones that hang out around windows
-/mob/living/simple_mob/hostile/mecha/malf_drone
- name = "autonomous mechanized drone"
- desc = "It appears to be an exosuit, piloted by a drone intelligence. It looks scary."
- intelligence_level = SA_ROBOTIC
- faction = "malf_drone"
- speak_chance = 1
- speak = list(
- "Resuming task: Protect area.",
- "No threats found.",
- "Error: No targets found."
- )
- emote_hear = list("humms ominously", "whirrs softly", "grinds a gear")
- emote_see = list("looks around the area", "turns from side to side")
- say_understood = list("Affirmative.", "Positive.")
- say_cannot = list("Denied.", "Negative.")
- say_maybe_target = list("Possible threat detected. Investigating.", "Motion detected.", "Investigating.")
- say_got_target = list("Threat detected.", "New task: Remove threat.", "Threat removal engaged.", "Engaging target.")
- returns_home = TRUE
-
-/mob/living/simple_mob/hostile/mecha/malf_drone/isSynthetic()
- return TRUE
-
-/mob/living/simple_mob/hostile/mecha/malf_drone/speech_bubble_appearance()
- return "synthetic_evil"
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/humanoids/pirate.dm b/code/modules/mob/living/simple_animal/humanoids/pirate.dm
deleted file mode 100644
index 4e833b90ac2..00000000000
--- a/code/modules/mob/living/simple_animal/humanoids/pirate.dm
+++ /dev/null
@@ -1,72 +0,0 @@
-/mob/living/simple_mob/hostile/pirate
- name = "Pirate"
- desc = "Does what he wants cause a pirate is free."
- tt_desc = "E Homo sapiens"
- icon_state = "piratemelee"
- icon_living = "piratemelee"
- icon_dead = "piratemelee_dead"
- intelligence_level = SA_HUMANOID
-
- faction = "pirate"
- maxHealth = 100
- health = 100
- speed = 4
-
- run_at_them = 0
- cooperative = 1
- investigates = 1
- firing_lines = 1
- returns_home = 1
- reacts = 1
-
- turns_per_move = 5
- stop_when_pulled = 0
-
- response_help = "pushes"
- response_disarm = "shoves"
- response_harm = "hits"
-
- harm_intent_damage = 5
- melee_damage_lower = 30
- melee_damage_upper = 30
- attack_armor_pen = 50
- attack_sharp = 1
- attack_edge = 1
-
- attacktext = list("slashed")
- attack_sound = 'sound/weapons/bladeslice.ogg'
-
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
-
- loot_list = list(/obj/item/weapon/melee/energy/sword/pirate = 100)
-
- var/corpse = /obj/effect/landmark/mobcorpse/pirate
-
-/mob/living/simple_mob/hostile/pirate/ranged
- name = "Pirate Gunner"
- icon_state = "pirateranged"
- icon_living = "pirateranged"
- icon_dead = "piratemelee_dead"
-
- ranged = 1
- projectiletype = /obj/item/projectile/beam
- projectilesound = 'sound/weapons/laser.ogg'
-
- loot_list = list(/obj/item/weapon/gun/energy/laser = 100)
-
- corpse = /obj/effect/landmark/mobcorpse/pirate/ranged
-
-/mob/living/simple_mob/hostile/pirate/death()
- ..()
- if(corpse)
- new corpse (src.loc)
- qdel(src)
- return
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/humanoids/russian.dm b/code/modules/mob/living/simple_animal/humanoids/russian.dm
deleted file mode 100644
index e13b5ed9686..00000000000
--- a/code/modules/mob/living/simple_animal/humanoids/russian.dm
+++ /dev/null
@@ -1,68 +0,0 @@
-/mob/living/simple_mob/hostile/russian
- name = "russian"
- desc = "For the Motherland!"
- tt_desc = "E Homo sapiens"
- icon_state = "russianmelee"
- icon_living = "russianmelee"
- icon_dead = "russianmelee_dead"
- icon_gib = "syndicate_gib"
- intelligence_level = SA_HUMANOID
-
- faction = "russian"
- maxHealth = 100
- health = 100
- speed = 4
-
- run_at_them = 0
- cooperative = 1
- investigates = 1
- firing_lines = 1
- returns_home = 1
- reacts = 1
-
- turns_per_move = 5
- stop_when_pulled = 0
- status_flags = CANPUSH
-
- response_help = "pokes"
- response_disarm = "shoves"
- response_harm = "hits"
-
- harm_intent_damage = 5
- melee_damage_lower = 15
- melee_damage_upper = 15
- attacktext = list("punched")
-
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
-
- loot_list = list(/obj/item/weapon/material/knife = 100)
-
- var/corpse = /obj/effect/landmark/mobcorpse/russian
-
-/mob/living/simple_mob/hostile/russian/ranged
- icon_state = "russianranged"
- icon_living = "russianranged"
-
- ranged = 1
- projectiletype = /obj/item/projectile/bullet
- casingtype = /obj/item/ammo_casing/spent
- projectilesound = 'sound/weapons/Gunshot.ogg'
-
- loot_list = list(/obj/item/weapon/gun/projectile/revolver/mateba = 100)
-
- corpse = /obj/effect/landmark/mobcorpse/russian/ranged
-
-/mob/living/simple_mob/hostile/russian/death()
- ..()
- if(corpse)
- new corpse (src.loc)
- qdel(src)
- return
diff --git a/code/modules/mob/living/simple_animal/humanoids/syndicate.dm b/code/modules/mob/living/simple_animal/humanoids/syndicate.dm
deleted file mode 100644
index 2cc300b82cc..00000000000
--- a/code/modules/mob/living/simple_animal/humanoids/syndicate.dm
+++ /dev/null
@@ -1,266 +0,0 @@
-/mob/living/simple_mob/hostile/syndicate
- name = "mercenary"
- desc = "Death to the Company."
- tt_desc = "E Homo sapiens"
- icon_state = "syndicate"
- icon_living = "syndicate"
- icon_dead = "syndicate_dead"
- icon_gib = "syndicate_gib"
- intelligence_level = SA_HUMANOID
-
- faction = "syndicate"
- maxHealth = 100
- health = 100
- speed = 4
-
- run_at_them = 0
- cooperative = 1
- investigates = 1
- firing_lines = 1
- returns_home = 1
- reacts = 1
-
- turns_per_move = 5
- stop_when_pulled = 0
- status_flags = CANPUSH
-
- response_help = "pokes"
- response_disarm = "shoves"
- response_harm = "hits"
-
- harm_intent_damage = 5
- melee_damage_lower = 15 //Tac Knife damage
- melee_damage_upper = 15
- environment_smash = 1
- attack_sharp = 1
- attack_edge = 1
- attacktext = list("slashed", "stabbed")
-
- armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 100) // Same armor values as the vest they drop, plus simple mob immunities
-
- min_oxy = 5
- max_oxy = 0
- min_tox = 0
- max_tox = 1
- min_co2 = 0
- max_co2 = 5
- min_n2 = 0
- max_n2 = 0
- unsuitable_atoms_damage = 15
-
- speak_chance = 1
- speak = list("Fuckin' NT, man.",
- "When are we gonna get out of this chicken-shit outfit?",
- "Wish I had better equipment...",
- "I knew I should have been a line chef...",
- "Fuckin' helmet keeps fogging up.",
- "Anyone else smell that?")
- emote_hear = list("sniffs","coughs","taps his foot")
- emote_see = list("looks around","checks his equipment")
- say_understood = list()
- say_cannot = list()
- say_maybe_target = list("What's that?","Is someone there?","Is that...?","Hmm?")
- say_got_target = list("ENGAGING!!!","CONTACT!!!","TARGET SPOTTED!","FOUND ONE!")
- reactions = list("Hey guys, you ready?" = "Fuck yeah!")
-
- var/corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier
-
-/mob/living/simple_mob/hostile/syndicate/death()
- if(corpse)
- ..()
- new corpse (src.loc)
- else
- ..(0,"explodes!")
- new /obj/effect/gibspawner/human(src.loc)
- explosion(get_turf(src), -1, 0, 1, 3)
- qdel(src)
- return
-
-///////////////Sword and shield////////////
-
-/mob/living/simple_mob/hostile/syndicate/melee
- icon_state = "syndicatemelee"
- icon_living = "syndicatemelee"
-
- melee_damage_lower = 30
- melee_damage_upper = 30
- attack_armor_pen = 50
- attack_sharp = 1
- attack_edge = 1
- attacktext = list("slashed")
-
- status_flags = 0
-
- loot_list = list(/obj/item/weapon/melee/energy/sword/red = 100, /obj/item/weapon/shield/energy = 100)
-
-/mob/living/simple_mob/hostile/syndicate/melee/attackby(var/obj/item/O as obj, var/mob/user as mob)
- if(O.force)
- if(prob(20))
- visible_message("\The [src] blocks \the [O] with its shield!")
- if(user)
- react_to_attack(user)
- return
- else
- ..()
- else
- usr << "This weapon is ineffective, it does no damage."
- visible_message("\The [user] gently taps [src] with \the [O].")
-
-/mob/living/simple_mob/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj)
- if(!Proj) return
- if(prob(35))
- visible_message("[src] blocks [Proj] with its shield!")
- if(Proj.firer)
- react_to_attack(Proj.firer)
- return
- else
- ..()
-
-/mob/living/simple_mob/hostile/syndicate/melee/space
- name = "syndicate commando"
- icon_state = "syndicatemeleespace"
- icon_living = "syndicatemeleespace"
-
- speed = 0
-
- armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 100) // Same armor as their voidsuit
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
- corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
-
-/mob/living/simple_mob/hostile/syndicate/melee/space/Process_Spacemove(var/check_drift = 0)
- return
-
-/mob/living/simple_mob/hostile/syndicate/ranged
- icon_state = "syndicateranged"
- icon_living = "syndicateranged"
-
- ranged = 1
- rapid = 1
- projectiletype = /obj/item/projectile/bullet/pistol/medium
-// casingtype = /obj/item/ammo_casing/spent //Makes infinite stacks of bullets when put in PoIs.
- projectilesound = 'sound/weapons/Gunshot_light.ogg'
-
- loot_list = list(/obj/item/weapon/gun/projectile/automatic/c20r = 100)
-
-/mob/living/simple_mob/hostile/syndicate/ranged/laser
- icon_state = "syndicateranged_laser"
- icon_living = "syndicateranged_laser"
- rapid = 0
- projectiletype = /obj/item/projectile/beam/midlaser
- projectilesound = 'sound/weapons/Laser.ogg'
-
- loot_list = list(/obj/item/weapon/gun/energy/laser = 100)
-
-/mob/living/simple_mob/hostile/syndicate/ranged/ionrifle
- icon_state = "syndicateranged_ionrifle"
- icon_living = "syndicateranged_ionrifle"
- rapid = 0
- projectiletype = /obj/item/projectile/ion
- projectilesound = 'sound/weapons/Laser.ogg'
-
- loot_list = list(/obj/item/weapon/gun/energy/ionrifle = 100)
-
-/mob/living/simple_mob/hostile/syndicate/ranged/space
- name = "space mercenary" //VOREStation Edit
- icon_state = "syndicaterangedpsace"
- icon_living = "syndicaterangedpsace"
-
- speed = 0
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
- maxbodytemp = 900 //VOREStation edit - We'll pretend they have good suits
-
- corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
-
-/mob/living/simple_mob/hostile/syndicate/ranged/space/Process_Spacemove(var/check_drift = 0)
- return
-
-///////////////////////////////////////////////
-// POI Mobs
-// Don't leave corpses, to help balance loot.
-///////////////////////////////////////////////
-
-/mob/living/simple_mob/hostile/syndicate/poi
- loot_list = list()
- corpse = null
-
-/mob/living/simple_mob/hostile/syndicate/melee/poi
- loot_list = list()
- corpse = null
-
-/mob/living/simple_mob/hostile/syndicate/melee/space/poi
- loot_list = list()
- corpse = null
-
-/mob/living/simple_mob/hostile/syndicate/ranged/poi
- loot_list = list()
- corpse = null
-
-/mob/living/simple_mob/hostile/syndicate/ranged/laser/poi
- loot_list = list()
- corpse = null
-
-/mob/living/simple_mob/hostile/syndicate/ranged/ionrifle/poi
- loot_list = list()
- corpse = null
-
-/mob/living/simple_mob/hostile/syndicate/ranged/space/poi
- loot_list = list()
- corpse = null
-
-
-//Viscerators
-
-/mob/living/simple_mob/hostile/viscerator
- name = "viscerator"
- desc = "A small, twin-bladed machine capable of inflicting very deadly lacerations."
- icon = 'icons/mob/critter.dmi'
- icon_state = "viscerator_attack"
- icon_living = "viscerator_attack"
- intelligence_level = SA_ROBOTIC
- hovering = TRUE
-
- faction = "syndicate"
- maxHealth = 15
- health = 15
-
- pass_flags = PASSTABLE
-
- melee_damage_lower = 15
- melee_damage_upper = 15
- attack_sharp = 1
- attack_edge = 1
- attack_sound = 'sound/weapons/bladeslice.ogg'
- attacktext = list("cut")
-
- min_oxy = 0
- max_oxy = 0
- min_tox = 0
- max_tox = 0
- min_co2 = 0
- max_co2 = 0
- min_n2 = 0
- max_n2 = 0
- minbodytemp = 0
-
-/mob/living/simple_mob/hostile/viscerator/death()
- ..(null,"is smashed into pieces!")
- qdel(src)
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
deleted file mode 100644
index d143f37ae38..00000000000
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ /dev/null
@@ -1,1759 +0,0 @@
-#define ai_log(M,V) if(debug_ai) ai_log_output(M,V)
-
-//Talky things
-#define try_say_list(L) if(L.len) say(pick(L))
-
-/mob/living/simple_mob
- name = "animal"
- desc = ""
- icon = 'icons/mob/animal.dmi'
- health = 20
- maxHealth = 20
-
- mob_bump_flag = simple_mob
- mob_swap_flags = MONKEY|SLIME|HUMAN
- mob_push_flags = MONKEY|SLIME|HUMAN
-
- var/tt_desc = "Uncataloged Life Form" //Tooltip description
-
- //Settings for played mobs
- var/show_stat_health = 1 // Does the percentage health show in the stat panel for the mob
- var/ai_inactive = 0 // Set to 1 to turn off most AI actions
- var/has_hands = 0 // Set to 1 to enable the use of hands and the hands hud
- var/humanoid_hands = 0 // Can a player in this mob use things like guns or AI cards?
- var/hand_form = "hands" // Used in IsHumanoidToolUser. 'Your X are not fit-'.
- var/list/hud_gears // Slots to show on the hud (typically none)
- var/ui_icons // Icon file path to use for the HUD, otherwise generic icons are used
- var/r_hand_sprite // If they have hands,
- var/l_hand_sprite // they could use some icons.
- var/player_msg // Message to print to players about 'how' to play this mob on login.
-
- //Mob icon/appearance settings
- var/icon_living = "" // The iconstate if we're alive, required
- var/icon_dead = "" // The iconstate if we're dead, required
- var/icon_gib = "generic_gib" // The iconstate for being gibbed, optional. Defaults to a generic gib animation.
- var/icon_rest = null // The iconstate for resting, optional
- var/image/modifier_overlay = null // Holds overlays from modifiers.
- attack_icon = 'icons/effects/effects.dmi' //Just the default, played like the weapon attack anim
- attack_icon_state = "slash" //Just the default
-
- //Mob talking settings
- universal_speak = 0 // Can all mobs in the entire universe understand this one?
- var/has_langs = list(LANGUAGE_GALCOM)// Text name of their language if they speak something other than galcom. They speak the first one.
- var/speak_chance = 0 // Probability that I talk (this is 'X in 200' chance since even 1/100 is pretty noisy)
- var/reacts = 0 // Reacts to some things being said
- var/list/speak = list() // Things I might say if I talk
- var/list/emote_hear = list() // Hearable emotes I might perform
- var/list/emote_see = list() // Unlike speak_emote, the list of things in this variable only show by themselves with no spoken text. IE: Ian barks, Ian yaps
- var/list/say_understood = list()// List of things to say when accepting an order
- var/list/say_cannot = list() // List of things to say when they cannot comply
- var/list/say_maybe_target = list()// List of things to say when they spot something barely
- var/list/say_got_target = list()// List of things to say when they engage a target
- var/list/reactions = list() // List of "string" = "reaction" and things they hear will be searched for string.
-
- //Mob movement settings
- var/wander = 1 // Does the mob wander around when idle?
- var/wander_distance = 3 // How far the mob will wander before going home (assuming they are allowed to do that)
- var/returns_home = 0 // Mob knows how to return to wherever it started
- var/turns_per_move = 1 // How many life() cycles to wait between each wander mov?
- var/stop_when_pulled = 1 // When set to 1 this stops the animal from moving when someone is pulling it.
- var/follow_dist = 2 // Distance the mob tries to follow a friend
- var/obstacles = list() // Things this mob refuses to move through
- var/speed = 0 // Higher speed is slower, negative speed is faster.
- var/obj/item/weapon/card/id/myid// An ID card if they have one to give them access to stuff.
- var/turf/home_turf // Set when they spawned, they try to come back here sometimes.
-
- //Mob interaction
- var/response_help = "tries to help" // If clicked on help intent
- var/response_disarm = "tries to disarm" // If clicked on disarm intent
- var/response_harm = "tries to hurt" // If clicked on harm intent
- var/harm_intent_damage = 3 // How much an unarmed harm click does to this mob.
- var/meat_amount = 0 // How much meat to drop from this mob when butchered
- var/obj/meat_type // The meat object to drop
- var/list/loot_list = list() // The list of lootable objects to drop, with "/path = prob%" structure
- var/recruitable = 0 // Mob can be bossed around
- var/recruit_cmd_str = "Hey," // The thing you prefix commands with when bossing them around
- var/intelligence_level = SA_ANIMAL// How 'smart' the mob is ICly, used to deliniate between animal, robot, and humanoid SAs.
-
- //Mob environment settings
- var/minbodytemp = 250 // Minimum "okay" temperature in kelvin
- var/maxbodytemp = 350 // Maximum of above
- var/heat_damage_per_tick = 3 // Amount of damage applied if animal's body temperature is higher than maxbodytemp
- var/cold_damage_per_tick = 2 // Same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
- var/fire_alert = 0 // 0 = fine, 1 = hot, 2 = cold
-
- var/min_oxy = 5 // Oxygen in moles, minimum, 0 is 'no minimum'
- var/max_oxy = 0 // Oxygen in moles, maximum, 0 is 'no maximum'
- var/min_tox = 0 // Phoron min
- var/max_tox = 1 // Phoron max
- var/min_co2 = 0 // CO2 min
- var/max_co2 = 5 // CO2 max
- var/min_n2 = 0 // N2 min
- var/max_n2 = 0 // N2 max
- var/unsuitable_atoms_damage = 2 // This damage is taken when atmos doesn't fit all the requirements above
-
- //Hostility settings
- var/hostile = 0 // Do I even attack?
- var/retaliate = 0 // I respond to damage against specific targets.
- var/view_range = 7 // Scan for targets in this range.
- var/specific_targets = 0 // Only use Found() targets, ignore others.
- var/investigates = 0 // Do I investigate if I saw someone briefly?
- var/attack_same = 0 // Do I attack members of my own faction?
- var/cooperative = 0 // Do I ask allies to help me?
- var/assist_distance = 25 // Radius in which I'll ask my comrades for help.
- var/supernatural = 0 // If the mob is supernatural (used in null-rod stuff for banishing?)
- var/grab_resist = 75 // Chance of me resisting a grab attempt.
- var/taser_kill = 1 // Is the mob weak to tasers
-
- //Attack ranged settings
- var/ranged = 0 // Do I attack at range?
- var/shoot_range = 7 // How far away do I start shooting from?
- var/rapid = 0 // Three-round-burst fire mode
- var/firing_lines = 0 // Avoids shooting allies
- var/projectiletype // The projectiles I shoot
- var/projectilesound // The sound I make when I do it
- var/casingtype // What to make the hugely laggy casings pile out of
-
- //Mob melee settings
- var/melee_damage_lower = 2 // Lower bound of randomized melee damage
- var/melee_damage_upper = 6 // Upper bound of randomized melee damage
- var/list/attacktext = list("attacked") // "You are [attacktext] by the mob!"
- var/list/friendly = list("nuzzles") // "The mob [friendly] the person."
- var/attack_sound = null // Sound to play when I attack
- var/environment_smash = 0 // How much environment damage do I do when I hit stuff?
- var/melee_miss_chance = 15 // percent chance to miss a melee attack.
- var/melee_attack_minDelay = 5 // How long between attacks at least
- var/melee_attack_maxDelay = 10 // How long between attacks at most
- var/attack_armor_type = "melee" // What armor does this check?
- var/attack_armor_pen = 0 // How much armor pen this attack has.
- var/attack_sharp = 0 // Is the attack sharp?
- var/attack_edge = 0 // Does the attack have an edge?
-
- //Special attacks
- var/spattack_prob = 0 // Chance of the mob doing a special attack (0 for never)
- var/spattack_min_range = 0 // Min range to perform the special attacks from
- var/spattack_max_range = 0 // Max range to perform special attacks from
-
- //Attack movement settings
- var/run_at_them = 1 // Don't use A* pathfinding, use walk_to
- var/move_to_delay = 4 // Delay for the automated movement (deciseconds)
- var/destroy_surroundings = 1 // Should I smash things to get to my target?
- var/astar_adjacent_proc = /turf/proc/CardinalTurfsWithAccess // Proc to use when A* pathfinding. Default makes them bound to cardinals.
-
- //Damage resistances
- var/shock_resistance = 0 // Siemens modifier, directly subtracted from 1. Value of 0.4 means 0.6 siemens on shocks.
- var/resistance = 0 // Damage reduction for all types
- var/list/armor = list( // Values for normal getarmor() checks
- "melee" = 0,
- "bullet" = 0,
- "laser" = 0,
- "energy" = 0,
- "bomb" = 0,
- "bio" = 100,
- "rad" = 100)
-
- //Scary debug things
- var/debug_ai = 0 // Logging level for this mob (1,2,3)
- var/path_display = 0 // Will display the path in green when pathing
- var/path_icon = 'icons/misc/debug_group.dmi' // What icon to use for the overlay
- var/path_icon_state = "red" // What state to use for the overlay
- var/icon/path_overlay // A reference to restart
-
- ////// These are used for inter-proc communications so don't edit them manually //////
- var/stance = STANCE_IDLE // Used to determine behavior
- var/stop_automated_movement = 0 // Use this to temporarely stop random movement or to if you write special movement code for animals.
- var/lifes_since_move = 0 // A counter for how many life() cycles since move
- var/shuttletarget = null // Shuttle's here, time to get to it
- var/enroute = 0 // If the shuttle is en-route
- var/purge = 0 // A counter used for null-rod stuff
- var/mob/living/target_mob // Who I'm trying to attack
- var/mob/living/follow_mob // Who I'm recruited by
- var/mob/living/list/friends = list() // People who are immune to my wrath, for now
- var/mob/living/simple_mob/list/faction_friends = list() // Other simple mobs I am friends with
- var/turf/list/walk_list = list()// List of turfs to walk through to get somewhere
- var/astarpathing = 0 // Am I currently pathing to somewhere?
- var/stance_changed = 0 // When our stance last changed (world.time)
- var/last_target_time = 0 // When we last set our target, to prevent juggles
- var/last_follow_time = 0 // When did we last get asked to follow someone?
- var/last_helpask_time = 0 // When did we last call for help?
- var/follow_until_time = 0 // Give up following when we reach this time (0 = never)
- var/annoyed = 0 // Do people keep distract-kiting us?
- ////// ////// //////
- var/life_disabled = 0 //VOREStation Edit -- For performance reasons
-
-/mob/living/simple_mob/New()
- ..()
- verbs -= /mob/verb/observe
- home_turf = get_turf(src)
- path_overlay = new(path_icon,path_icon_state)
- move_to_delay = max(2,move_to_delay) //Protection against people coding things incorrectly and A* pathing 100% of the time
- maxHealth = health
-
- for(var/L in has_langs)
- languages |= all_languages[L]
- if(languages.len)
- default_language = languages[1]
-
- if(cooperative)
- var/mob/living/simple_mob/first_friend
- for(var/mob/living/simple_mob/M in living_mob_list)
- if(M.faction == src.faction)
- first_friend = M
- break
- if(first_friend)
- faction_friends = first_friend.faction_friends
- faction_friends |= src
- else
- faction_friends |= src
-
-/mob/living/simple_mob/Destroy()
- home_turf = null
- path_overlay = null
- default_language = null
- target_mob = null
- follow_mob = null
- if(myid)
- qdel(myid)
- myid = null
-
- if(faction_friends.len) //This list is shared amongst the faction
- faction_friends -= src
-
- friends.Cut() //This one is not
- walk_list.Cut()
- languages.Cut()
- return ..()
-
-//Client attached
-/mob/living/simple_mob/Login()
- . = ..()
- ai_inactive = 1
- handle_stance(STANCE_IDLE)
- LoseTarget()
- to_chat(src,"Mob AI disabled while you are controlling the mob.
You are \the [src]. [player_msg]")
-
-//Client detatched
-/mob/living/simple_mob/Logout()
- spawn(15 SECONDS) //15 seconds to get back into the mob before it goes wild
- if(src && !src.client)
- ai_inactive = initial(ai_inactive) //So if they never have an AI, they stay that way.
- ..()
-
-//For debug purposes!
-/mob/living/simple_mob/proc/ai_log_output(var/msg = "missing message", var/ver = 1)
- if(ver <= debug_ai)
- log_debug("SA-AI: ([src]:[x],[y],[z])(@[world.time]): [msg] ")
-
-//Should we be dead?
-/mob/living/simple_mob/updatehealth()
- health = getMaxHealth() - getToxLoss() - getFireLoss() - getBruteLoss()
-
- //Alive, becoming dead
- if((stat < DEAD) && (health <= 0))
- death()
-
- //Overhealth
- if(health > getMaxHealth())
- health = getMaxHealth()
-
- //Update our hud if we have one
- if(healths)
- if(stat != DEAD)
- var/heal_per = (health / getMaxHealth()) * 100
- switch(heal_per)
- if(100 to INFINITY)
- healths.icon_state = "health0"
- if(80 to 100)
- healths.icon_state = "health1"
- if(60 to 80)
- healths.icon_state = "health2"
- if(40 to 60)
- healths.icon_state = "health3"
- if(20 to 40)
- healths.icon_state = "health4"
- if(0 to 20)
- healths.icon_state = "health5"
- else
- healths.icon_state = "health6"
- else
- healths.icon_state = "health7"
-
- //Updates the nutrition while we're here
- if(nutrition_icon)
- var/food_per = (nutrition / initial(nutrition)) * 100
- switch(food_per)
- if(90 to INFINITY)
- nutrition_icon.icon_state = "nutrition0"
- if(75 to 90)
- nutrition_icon.icon_state = "nutrition1"
- if(50 to 75)
- nutrition_icon.icon_state = "nutrition2"
- if(25 to 50)
- nutrition_icon.icon_state = "nutrition3"
- if(0 to 25)
- nutrition_icon.icon_state = "nutrition4"
-
-/mob/living/simple_mob/update_icon()
- . = ..()
- var/mutable_appearance/ma = new(src)
- ma.layer = layer
- ma.plane = plane
-
- ma.overlays = list(modifier_overlay)
-
- //Awake and normal
- if((stat == CONSCIOUS) && (!icon_rest || !resting || !incapacitated(INCAPACITATION_DISABLED) ))
- ma.icon_state = icon_living
-
- //Dead
- else if(stat >= DEAD)
- ma.icon_state = icon_dead
-
- //Resting or KO'd
- else if(((stat == UNCONSCIOUS) || resting || incapacitated(INCAPACITATION_DISABLED) ) && icon_rest)
- ma.icon_state = icon_rest
-
- //Backup
- else
- ma.icon_state = initial(icon_state)
-
- //VOREStation edit start
- var/vore_icon_state = update_vore_icon()
- if(vore_icon_state)
- ma.icon_state = vore_icon_state
- //VOREStation edit end
-
- if(has_hands)
- if(r_hand_sprite)
- ma.overlays += r_hand_sprite
- if(l_hand_sprite)
- ma.overlays += l_hand_sprite
-
- appearance = ma
-
-// If your simple mob's update_icon() call calls overlays.Cut(), this needs to be called after this, or manually apply modifier_overly to overlays.
-/mob/living/simple_mob/update_modifier_visuals()
- var/image/effects = null
- if(modifier_overlay)
- overlays -= modifier_overlay
- modifier_overlay.overlays.Cut()
- effects = modifier_overlay
- else
- effects = new()
-
- for(var/datum/modifier/M in modifiers)
- if(M.mob_overlay_state)
- var/image/I = image("icon" = 'icons/mob/modifier_effects.dmi', "icon_state" = M.mob_overlay_state)
- I.appearance_flags = RESET_COLOR // So colored mobs don't affect the overlay.
- effects.overlays += I
-
- modifier_overlay = effects
- overlays += modifier_overlay
-
-
-/mob/living/simple_mob/Life()
-
- //VOREStation Edit
- if(life_disabled)
- return 0
- //VOREStation Edit End
-
- ..()
-
- //Health
- updatehealth()
- if(stat >= DEAD)
- return 0
-
- handle_stunned()
- handle_weakened()
- handle_paralysed()
- handle_supernatural()
- handle_atmos() //Atmos
-
- ai_log("Life() - stance=[stance] ai_inactive=[ai_inactive]", 4)
-
- //AI Actions
- if(!ai_inactive)
- //Stanceyness
- handle_stance()
-
- //Movement
- if(!stop_automated_movement && wander && !anchored) //Allowed to move?
- handle_wander_movement()
-
- //Speaking
- if(speak_chance && stance == STANCE_IDLE) // Allowed to chatter?
- handle_idle_speaking()
-
- //Resisting out buckles
- if(stance != STANCE_IDLE && incapacitated(INCAPACITATION_BUCKLED_PARTIALLY))
- handle_resist()
-
- //Resisting out of closets
- if(istype(loc,/obj/structure/closet))
- var/obj/structure/closet/C = loc
- if(C.sealed)
- handle_resist()
- else
- C.open()
-
- return 1
-
-// Resists out of things.
-// Sometimes there are times you want SAs to be buckled to something, so override this for when that is needed.
-/mob/living/simple_mob/proc/handle_resist()
- resist()
-
-// Peforms the random walk wandering
-/mob/living/simple_mob/proc/handle_wander_movement()
- if(isturf(src.loc) && !resting && !buckled && canmove) //Physically capable of moving?
- lifes_since_move++ //Increment turns since move (turns are life() cycles)
- if(lifes_since_move >= turns_per_move)
- if(!(stop_when_pulled && pulledby)) //Some animals don't move when pulled
- var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
- moving_to = pick(cardinal)
- dir = moving_to //How about we turn them the direction they are moving, yay.
- var/turf/T = get_step(src,moving_to)
- if(avoid_turf(T))
- return
- Move(T)
- lifes_since_move = 0
-
-// Checks to see if mob doesn't like this kind of turf
-/mob/living/simple_mob/proc/avoid_turf(var/turf/turf)
- if(!turf)
- return TRUE //Avoid the nothing, yes
-
- if(istype(turf,/turf/simulated/sky))
- return TRUE //Mobs aren't that stupid, probably
-
- return FALSE //Override it on stuff to adjust
-
-// Handles random chatter, called from Life() when stance = STANCE_IDLE
-/mob/living/simple_mob/proc/handle_idle_speaking()
- if(rand(0,200) < speak_chance)
- if(speak && speak.len)
- if((emote_hear && emote_hear.len) || (emote_see && emote_see.len))
- var/length = speak.len
- if(emote_hear && emote_hear.len)
- length += emote_hear.len
- if(emote_see && emote_see.len)
- length += emote_see.len
- var/randomValue = rand(1,length)
- if(randomValue <= speak.len)
- try_say_list(speak)
- else
- randomValue -= speak.len
- if(emote_see && randomValue <= emote_see.len)
- visible_emote("[pick(emote_see)].")
- else
- audible_emote("[pick(emote_hear)].")
- else
- try_say_list(speak)
- else
- if(!(emote_hear && emote_hear.len) && (emote_see && emote_see.len))
- visible_emote("[pick(emote_see)].")
- if((emote_hear && emote_hear.len) && !(emote_see && emote_see.len))
- audible_emote("[pick(emote_hear)].")
- if((emote_hear && emote_hear.len) && (emote_see && emote_see.len))
- var/length = emote_hear.len + emote_see.len
- var/pick = rand(1,length)
- if(pick <= emote_see.len)
- visible_emote("[pick(emote_see)].")
- else
- audible_emote("[pick(emote_hear)].")
-
-// Handle interacting with and taking damage from atmos
-// TODO - Refactor this to use handle_environment() like a good /mob/living
-/mob/living/simple_mob/proc/handle_atmos()
- var/atmos_unsuitable = 0
-
- var/atom/A = src.loc
-
- if(istype(A,/turf))
- var/turf/T = A
-
- var/datum/gas_mixture/Environment = T.return_air()
-
- if(Environment)
-
- if( abs(Environment.temperature - bodytemperature) > 40 )
- bodytemperature += ((Environment.temperature - bodytemperature) / 5)
-
- if(min_oxy)
- if(Environment.gas["oxygen"] < min_oxy)
- atmos_unsuitable = 1
- if(max_oxy)
- if(Environment.gas["oxygen"] > max_oxy)
- atmos_unsuitable = 1
- if(min_tox)
- if(Environment.gas["phoron"] < min_tox)
- atmos_unsuitable = 2
- if(max_tox)
- if(Environment.gas["phoron"] > max_tox)
- atmos_unsuitable = 2
- if(min_n2)
- if(Environment.gas["nitrogen"] < min_n2)
- atmos_unsuitable = 1
- if(max_n2)
- if(Environment.gas["nitrogen"] > max_n2)
- atmos_unsuitable = 1
- if(min_co2)
- if(Environment.gas["carbon_dioxide"] < min_co2)
- atmos_unsuitable = 1
- if(max_co2)
- if(Environment.gas["carbon_dioxide"] > max_co2)
- atmos_unsuitable = 1
-
- //Atmos effect
- if(bodytemperature < minbodytemp)
- fire_alert = 2
- adjustBruteLoss(cold_damage_per_tick)
- if(fire)
- fire.icon_state = "fire1"
- else if(bodytemperature > maxbodytemp)
- fire_alert = 1
- adjustBruteLoss(heat_damage_per_tick)
- if(fire)
- fire.icon_state = "fire2"
- else
- fire_alert = 0
- if(fire)
- fire.icon_state = "fire0"
-
- if(atmos_unsuitable)
- adjustBruteLoss(unsuitable_atoms_damage)
- if(oxygen)
- oxygen.icon_state = "oxy1"
- else if(oxygen)
- if(oxygen)
- oxygen.icon_state = "oxy0"
-
-// For setting the stance WITHOUT processing it
-/mob/living/simple_mob/proc/set_stance(var/new_stance)
- stance = new_stance
- stance_changed = world.time
- ai_log("set_stance() changing to [new_stance]",2)
-
-// For proccessing the current stance, or setting and processing a new one
-/mob/living/simple_mob/proc/handle_stance(var/new_stance)
- if(ai_inactive)
- stance = STANCE_IDLE
- return
-
- if(new_stance)
- set_stance(new_stance)
-
- switch(stance)
- if(STANCE_IDLE)
- target_mob = null
- a_intent = I_HELP
- annoyed = max(0,annoyed--)
-
- //Yes I'm breaking this into two if()'s for ease of reading
- //If we ARE ALLOWED TO
- if(returns_home && home_turf && !astarpathing && (world.time - stance_changed) > 10 SECONDS)
- if(get_dist(src,home_turf) > wander_distance)
- move_to_delay = initial(move_to_delay)*2 //Walk back.
- GoHome()
- else
- stop_automated_movement = 0
-
- //Search for targets while idle
- if(hostile || specific_targets)
- FindTarget()
- if(STANCE_FOLLOW)
- annoyed = 15
- FollowTarget()
- if(follow_until_time && world.time > follow_until_time)
- LoseFollow()
- return
- if(hostile || specific_targets)
- FindTarget()
- if(STANCE_ATTACK)
- annoyed = 50
- a_intent = I_HURT
- RequestHelp()
- MoveToTarget()
- if(STANCE_ATTACKING)
- annoyed = 50
- AttackTarget()
-
-/mob/living/simple_mob/proc/handle_supernatural()
- if(purge)
- purge -= 1
-
-/mob/living/simple_mob/gib()
- ..(icon_gib,1,icon) // we need to specify where the gib animation is stored
-
-/mob/living/simple_mob/emote(var/act, var/type, var/desc)
- if(act)
- ..(act, type, desc)
-
-/mob/living/simple_mob/bullet_act(var/obj/item/projectile/Proj)
- ai_log("bullet_act() I was shot by: [Proj.firer]",2)
-
- /* VOREStation Edit - Ace doesn't like bonus SA damage.
- //Projectiles with bonus SA damage
- if(!Proj.nodamage)
- if(!Proj.SA_vulnerability || Proj.SA_vulnerability == intelligence_level)
- Proj.damage += Proj.SA_bonus_damage
- */ // VOREStation Edit End
- . = ..()
-
- if(Proj.firer)
- react_to_attack(Proj.firer)
-
-// When someone clicks us with an empty hand
-/mob/living/simple_mob/attack_hand(mob/living/carbon/human/M as mob)
- ..()
-
- switch(M.a_intent)
-
- if(I_HELP)
- if (health > 0)
- M.visible_message("[M] [response_help] \the [src].")
-
- if(I_DISARM)
- M.visible_message("[M] [response_disarm] \the [src].")
- M.do_attack_animation(src)
- //TODO: Push the mob away or something
-
- if(I_GRAB)
- if (M == src)
- return
- if (!(status_flags & CANPUSH))
- return
- if(!incapacitated(INCAPACITATION_ALL) && (stance != STANCE_IDLE) && prob(grab_resist))
- M.visible_message("[M] tries to grab [src] but fails!")
- return
-
- var/obj/item/weapon/grab/G = new /obj/item/weapon/grab(M, src)
-
- M.put_in_active_hand(G)
-
- G.synch()
- G.affecting = src
- LAssailant = M
-
- M.visible_message("[M] has grabbed [src] passively!")
- M.do_attack_animation(src)
- ai_log("attack_hand() I was grabbed by: [M]",2)
- react_to_attack(M)
-
- if(I_HURT)
- var/armor = run_armor_check(def_zone = null, attack_flag = "melee")
- apply_damage(damage = harm_intent_damage, damagetype = BURN, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE)
- M.visible_message("[M] [response_harm] \the [src]!")
- M.do_attack_animation(src)
- ai_log("attack_hand() I was hit by: [M]",2)
- react_to_attack(M)
-
- return
-
-// When somoene clicks us with an item in hand
-/mob/living/simple_mob/attackby(var/obj/item/O, var/mob/user)
- if(istype(O, /obj/item/stack/medical))
- if(stat != DEAD)
- var/obj/item/stack/medical/MED = O
- if(health < getMaxHealth())
- if(MED.amount >= 1)
- adjustBruteLoss(-MED.heal_brute)
- MED.amount -= 1
- if(MED.amount <= 0)
- qdel(MED)
- for(var/mob/M in viewers(src, null))
- if ((M.client && !( M.blinded )))
- M.show_message("[user] applies the [MED] on [src].")
- else
- var/datum/gender/T = gender_datums[src.get_visible_gender()]
- user << "\The [src] is dead, medical items won't bring [T.him] back to life." // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code
- if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead.
- if(istype(O, /obj/item/weapon/material/knife) || istype(O, /obj/item/weapon/material/knife/butch))
- harvest(user)
- else
- ai_log("attackby() I was weapon'd by: [user]",2)
- if(O.force)
- react_to_attack(user)
-
- return ..()
-
-/mob/living/simple_mob/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
-
- //Animals can't be stunned(?)
- if(O.damtype == HALLOSS)
- effective_force = 0
- if(supernatural && istype(O,/obj/item/weapon/nullrod))
- effective_force *= 2
- purge = 3
- if(O.force <= resistance)
- to_chat(user,"This weapon is ineffective, it does no damage.")
- return 2
-
- ai_log("hit_with_weapon() I was h_w_weapon'd by: [user]",2)
- react_to_attack(user)
-
- . = ..()
-
-// When someone throws something at us
-/mob/living/simple_mob/hitby(atom/movable/AM)
- ..()
- if(AM.thrower)
- react_to_attack(AM.thrower)
-
-//SA vs SA basically
-/mob/living/simple_mob/attack_generic(var/mob/attacker)
- if(attacker)
- react_to_attack(attacker)
- return ..()
-
-/mob/living/simple_mob/movement_delay()
- var/tally = 0 //Incase I need to add stuff other than "speed" later
-
- tally = speed
-
- if(force_max_speed)
- return -3
-
- for(var/datum/modifier/M in modifiers)
- if(!isnull(M.haste) && M.haste == TRUE)
- return -3
- if(!isnull(M.slowdown))
- tally += M.slowdown
-
- if(purge)//Purged creatures will move more slowly. The more time before their purge stops, the slower they'll move.
- if(tally <= 0)
- tally = 1
- tally *= purge
-
- if(m_intent == "walk")
- tally *= 1.5
-
- return tally+config.animal_delay
-
-/mob/living/simple_mob/Stat()
- ..()
-
- if(statpanel("Status") && show_stat_health)
- stat(null, "Health: [round((health / getMaxHealth()) * 100)]%")
-
-/mob/living/simple_mob/lay_down()
- ..()
- if(resting && icon_rest)
- icon_state = icon_rest
- else
- icon_state = icon_living
- update_icon()
-
-/mob/living/simple_mob/death(gibbed, deathmessage = "dies!")
- density = 0 //We don't block even if we did before
- walk(src, 0) //We stop any background-processing walks
- resting = 0 //We can rest in peace later.
-
- if(faction_friends.len)
- faction_friends -= src
-
- if(loot_list.len) //Drop any loot
- for(var/path in loot_list)
- if(prob(loot_list[path]))
- new path(get_turf(src))
-
- spawn(3) //We'll update our icon in a sec
- update_icon()
-
- return ..(gibbed,deathmessage)
-
-/mob/living/simple_mob/ex_act(severity)
- if(!blinded)
- flash_eyes()
- var/armor = run_armor_check(def_zone = null, attack_flag = "bomb")
- var/bombdam = 500
- switch (severity)
- if (1.0)
- bombdam = 500
- if (2.0)
- bombdam = 60
- if (3.0)
- bombdam = 30
-
- apply_damage(damage = bombdam, damagetype = BRUTE, def_zone = null, blocked = armor, blocked = resistance, used_weapon = null, sharp = FALSE, edge = FALSE)
-
- if(bombdam > maxHealth)
- gib()
-
-// Check target_mob if worthy of attack (i.e. check if they are dead or empty mecha)
-/mob/living/simple_mob/proc/SA_attackable(target_mob)
- ai_log("SA_attackable([target_mob])",3)
- if (isliving(target_mob))
- var/mob/living/L = target_mob
- if(L.stat != DEAD)
- return 1
- if (istype(target_mob,/obj/mecha))
- var/obj/mecha/M = target_mob
- if (M.occupant)
- return 1
- ai_log("SA_attackable([target_mob]): no",3)
- return 0
-
-/mob/living/simple_mob/say(var/message,var/datum/language/language)
- var/verb = "says"
- if(speak_emote.len)
- verb = pick(speak_emote)
-
- message = sanitize(message)
-
- ..(message, null, verb)
-
-/mob/living/simple_mob/get_speech_ending(verb, var/ending)
- return verb
-
-/mob/living/simple_mob/put_in_hands(var/obj/item/W) // No hands.
- if(has_hands)
- put_in_active_hand(W)
- return 1
- W.forceMove(get_turf(src))
- return 1
-
-// Harvest an animal's delicious byproducts
-/mob/living/simple_mob/proc/harvest(var/mob/user)
- var/actual_meat_amount = max(1,(meat_amount/2))
- if(meat_type && actual_meat_amount>0 && (stat == DEAD))
- for(var/i=0;i31 December 2019
+ Atermonera updated:
+
+
+ Cerebulon updated:
+
+
+ TheFurryFeline updated:
+
+
+
16 December 2019
Atermonera updated:
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 274bbd5d283..c229806ec3b 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -4843,3 +4843,20 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- rscadd: One holster to each explorer locker.
- rscdel: Removed the old size modifier traits for mobs.
- rscadd: Port and tweak of the size modifiers from World Server for mobs.
+2019-12-31:
+ Atermonera:
+ - bugfix: Radiation has been made more potent and is no longer defeated by a thin
+ sheet of lead.
+ Cerebulon:
+ - rscadd: Added decaf coffee to the coffee shop.
+ - rscadd: Added 6 types of bagel
+ - maptweak: Modified the coffee shop to have extra counter space and a microwave
+ for bagels.
+ - tweak: Removed chef lock on kitchen cabinet.
+ - spellcheck: Removed reference to outdated skrell lore from naewa cube box.
+ TheFurryFeline:
+ - tweak: Changes light replacers to allow you to automatically transfer used bulbs
+ into the item and get a new one every 4 bulbs replaced. Additionally, this allows
+ you to both use the replacer on a box of bulbs to get the bulbs added as well
+ as clicking the item with a box of bulbs to put them inside it.
+ - rscadd: Spray bottles can now be printed in the Autolathe.
diff --git a/html/changelogs/Cerebulon - Coffee Shop.yml b/html/changelogs/Cerebulon - Coffee Shop.yml
deleted file mode 100644
index 94650de1f4c..00000000000
--- a/html/changelogs/Cerebulon - Coffee Shop.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: Cerebulon
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Added decaf coffee to the coffee shop."
- - rscadd: "Added 6 types of bagel"
- - maptweak: "Modified the coffee shop to have extra counter space and a microwave for bagels."
- - tweak: "Removed chef lock on kitchen cabinet."
- - spellcheck: "Removed reference to outdated skrell lore from naewa cube box."
diff --git a/html/changelogs/TheFurryFeline - Bulbs_Recycling.yml b/html/changelogs/TheFurryFeline - Bulbs_Recycling.yml
deleted file mode 100644
index 3e887d8d87d..00000000000
--- a/html/changelogs/TheFurryFeline - Bulbs_Recycling.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: TheFurryFeline
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - tweak: "Changes light replacers to allow you to automatically transfer used bulbs into the item and get a new one every 4 bulbs replaced. Additionally, this allows you to both use the replacer on a box of bulbs to get the bulbs added as well as clicking the item with a box of bulbs to put them inside it."
\ No newline at end of file
diff --git a/html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml b/html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml
deleted file mode 100644
index 338cf0d9e4f..00000000000
--- a/html/changelogs/TheFurryFeline - Print_Da_Sprayers.yml
+++ /dev/null
@@ -1,36 +0,0 @@
-################################
-# Example Changelog File
-#
-# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
-#
-# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
-# When it is, any changes listed below will disappear.
-#
-# Valid Prefixes:
-# bugfix
-# wip (For works in progress)
-# tweak
-# soundadd
-# sounddel
-# rscadd (general adding of nice things)
-# rscdel (general deleting of nice things)
-# imageadd
-# imagedel
-# maptweak
-# spellcheck (typo fixes)
-# experiment
-#################################
-
-# Your name.
-author: TheFurryFeline
-
-# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
-delete-after: True
-
-# Any changes you've made. See valid prefix list above.
-# INDENT WITH TWO SPACES. NOT TABS. SPACES.
-# SCREW THIS UP AND IT WON'T WORK.
-# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
-# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
-changes:
- - rscadd: "Allows printing of a spray bottle in the Autolathe."
\ No newline at end of file
diff --git a/html/changelogs/atermonera - rad_buff.yml b/html/changelogs/atermonera - rad_buff.yml
deleted file mode 100644
index 9b8c3b8afa7..00000000000
--- a/html/changelogs/atermonera - rad_buff.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: Atermonera
-delete-after: True
-changes:
- - bugfix: "Radiation has been made more potent and is no longer defeated by a thin sheet of lead."
diff --git a/icons/atmos/vent_pump.dmi b/icons/atmos/vent_pump.dmi
index 0cff6a8ffae..8d75b37509a 100644
Binary files a/icons/atmos/vent_pump.dmi and b/icons/atmos/vent_pump.dmi differ
diff --git a/icons/atmos/vent_scrubber.dmi b/icons/atmos/vent_scrubber.dmi
index 6b365d36c00..c8bdd41f879 100644
Binary files a/icons/atmos/vent_scrubber.dmi and b/icons/atmos/vent_scrubber.dmi differ
diff --git a/icons/mob/chimerahud.dmi b/icons/mob/chimerahud.dmi
index 890ee10cebe..77bc745acef 100644
Binary files a/icons/mob/chimerahud.dmi and b/icons/mob/chimerahud.dmi differ
diff --git a/icons/mob/items/lefthand_vr.dmi b/icons/mob/items/lefthand_vr.dmi
index a10b0dc81cf..009e5585328 100644
Binary files a/icons/mob/items/lefthand_vr.dmi and b/icons/mob/items/lefthand_vr.dmi differ
diff --git a/icons/mob/items/righthand_vr.dmi b/icons/mob/items/righthand_vr.dmi
index 489a6b6e015..c9a7af5fb87 100644
Binary files a/icons/mob/items/righthand_vr.dmi and b/icons/mob/items/righthand_vr.dmi differ
diff --git a/icons/mob/shark.dmi b/icons/mob/shark.dmi
new file mode 100644
index 00000000000..16a3f335806
Binary files /dev/null and b/icons/mob/shark.dmi differ
diff --git a/icons/mob/taursuits_cow_vr.dmi b/icons/mob/taursuits_cow_vr.dmi
index a369157df23..eef5bd698c4 100644
Binary files a/icons/mob/taursuits_cow_vr.dmi and b/icons/mob/taursuits_cow_vr.dmi differ
diff --git a/icons/mob/taursuits_drake_vr.dmi b/icons/mob/taursuits_drake_vr.dmi
new file mode 100644
index 00000000000..c8cbf9ef477
Binary files /dev/null and b/icons/mob/taursuits_drake_vr.dmi differ
diff --git a/icons/mob/taursuits_feline_vr.dmi b/icons/mob/taursuits_feline_vr.dmi
new file mode 100644
index 00000000000..e180d1dad27
Binary files /dev/null and b/icons/mob/taursuits_feline_vr.dmi differ
diff --git a/icons/mob/taursuits_horse_vr.dmi b/icons/mob/taursuits_horse_vr.dmi
index 12f309f9fec..8dc33f31184 100644
Binary files a/icons/mob/taursuits_horse_vr.dmi and b/icons/mob/taursuits_horse_vr.dmi differ
diff --git a/icons/mob/taursuits_lizard_vr.dmi b/icons/mob/taursuits_lizard_vr.dmi
index 67628994ded..2971beb8635 100644
Binary files a/icons/mob/taursuits_lizard_vr.dmi and b/icons/mob/taursuits_lizard_vr.dmi differ
diff --git a/icons/mob/taursuits_naga_vr.dmi b/icons/mob/taursuits_naga_vr.dmi
index 38640c904dd..ef00466c27b 100644
Binary files a/icons/mob/taursuits_naga_vr.dmi and b/icons/mob/taursuits_naga_vr.dmi differ
diff --git a/icons/mob/taursuits_spider_vr.dmi b/icons/mob/taursuits_spider_vr.dmi
new file mode 100644
index 00000000000..e0da9b3cfba
Binary files /dev/null and b/icons/mob/taursuits_spider_vr.dmi differ
diff --git a/icons/mob/taursuits_wolf_vr.dmi b/icons/mob/taursuits_wolf_vr.dmi
index 03ad5e3929c..0b62d40ff20 100644
Binary files a/icons/mob/taursuits_wolf_vr.dmi and b/icons/mob/taursuits_wolf_vr.dmi differ
diff --git a/icons/obj/closet.dmi b/icons/obj/closet.dmi
index 80fb1712be9..14f7fba8547 100644
Binary files a/icons/obj/closet.dmi and b/icons/obj/closet.dmi differ
diff --git a/icons/obj/food_vr.dmi b/icons/obj/food_vr.dmi
index ea92af44933..f4b35ebb2ce 100644
Binary files a/icons/obj/food_vr.dmi and b/icons/obj/food_vr.dmi differ
diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi
index 12de9e5a6d1..9c10859527d 100644
Binary files a/icons/obj/hydroponics_growing.dmi and b/icons/obj/hydroponics_growing.dmi differ
diff --git a/icons/obj/hydroponics_products.dmi b/icons/obj/hydroponics_products.dmi
index 1e44595752e..6b6b815eb77 100644
Binary files a/icons/obj/hydroponics_products.dmi and b/icons/obj/hydroponics_products.dmi differ
diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi
index e8dfd762999..d234aba525d 100644
Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ
diff --git a/icons/obj/weapons_vr.dmi b/icons/obj/weapons_vr.dmi
index d23b35851ba..96ecf1e99ea 100644
Binary files a/icons/obj/weapons_vr.dmi and b/icons/obj/weapons_vr.dmi differ
diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm
index 10586053b7b..9fd5fa49cfb 100644
--- a/maps/southern_cross/southern_cross-1.dmm
+++ b/maps/southern_cross/southern_cross-1.dmm
@@ -10697,8 +10697,8 @@
"dWs" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/hydro,/area/rnd/xenobiology/xenoflora)
"dWt" = (/obj/machinery/seed_storage/xenobotany,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/camera/network/research{c_tag = "SCI - Xenoflora Starboard"; dir = 1},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
"dWu" = (/obj/machinery/vending/hydronutrients{categories = 3},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
-"dWv" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
-"dWw" = (/obj/structure/closet/secure_closet/hydroponics{req_access = list(47)},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
+"dWv" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/closet/secure_closet/hydroponics/sci,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
+"dWw" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/light,/obj/structure/closet/secure_closet/hydroponics/sci,/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
"dWx" = (/obj/structure/closet/emcloset/legacy,/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora)
"dWy" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Port to Isolation"},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_isolation)
"dWz" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/machinery/meter,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/rnd/xenobiology/xenoflora_isolation)
diff --git a/maps/southern_cross/southern_cross-4.dmm b/maps/southern_cross/southern_cross-4.dmm
index 23b4c5edfbd..48e5097f4cc 100644
--- a/maps/southern_cross/southern_cross-4.dmm
+++ b/maps/southern_cross/southern_cross-4.dmm
@@ -1,704 +1,3 @@
-<<<<<<< HEAD
-"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/unexplored/deep)
-"ab" = (/turf/simulated/mineral/sif,/area/surface/cave/unexplored/deep)
-"ac" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep)
-"ad" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/unexplored/normal)
-"ae" = (/turf/simulated/mineral/sif,/area/surface/cave/unexplored/normal)
-"af" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
-"ag" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/unexplored/normal)
-"ah" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"ai" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"aj" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"ak" = (/obj/machinery/conveyor_switch{id = "anolongstorage"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"al" = (/obj/machinery/light/small,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"am" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology)
-"an" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"ao" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1397; master_tag = "xenoarch2_airlock_control"; name = "Xenoarch Access Button"; pixel_x = 24; pixel_y = 0; req_access = list(47)},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1397; icon_state = "door_locked"; id_tag = "xenoarch2_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"ap" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"ar" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"as" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/status_display{pixel_x = -32},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"at" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"au" = (/obj/effect/floor_decal/industrial/warning{dir = 5},/obj/machinery/computer/guestpass{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"av" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aw" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/obj/structure/plasticflaps/mining,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ax" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ay" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"az" = (/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aA" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aB" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aC" = (/obj/structure/closet/excavation,/obj/effect/floor_decal/corner/purple{dir = 5},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aD" = (/obj/machinery/conveyor_switch{id = "anolongstorage"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/obj/effect/floor_decal/corner/purple{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aE" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aF" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Airlock 2"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"aG" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"aH" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"aI" = (/obj/machinery/conveyor{dir = 2; id = "anolongstorage"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aJ" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/conveyor_switch{id = "anolongstorage"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0; req_access = list(65)},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aK" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aL" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aM" = (/obj/machinery/portable_atmospherics/canister/phoron,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aN" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"aO" = (/obj/structure/disposaloutlet{dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"aP" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"aQ" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/table/rack,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"aR" = (/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/structure/dispenser/oxygen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aS" = (/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aT" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aU" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aV" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aW" = (/obj/machinery/disposal/deliveryChute{dir = 1},/obj/effect/floor_decal/industrial/warning,/obj/structure/disposalpipe/trunk,/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"aX" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1397; icon_state = "door_locked"; id_tag = "xenoarch2_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1397; master_tag = "xenoarch2_airlock_control"; name = "Research Access Button"; pixel_x = 26; pixel_y = 6; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/obj/effect/floor_decal/corner/purple{dir = 8},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"aZ" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ba" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bb" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bc" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bd" = (/obj/structure/sign/warning/nosmoking_2,/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"be" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bf" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bg" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bh" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/structure/closet/crate,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bi" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/status_display{pixel_x = -32},/obj/machinery/floodlight,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bk" = (/obj/item/weapon/storage/excavation,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/device/measuring_tape,/obj/item/stack/flag/yellow,/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bl" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bm" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bn" = (/obj/machinery/door/firedoor/border_only,/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bo" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/corner/purple{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"bp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{frequency = 1397; id_tag = "xenoarch2_airlock_control"; name = "Research Access Console"; pixel_x = 26; pixel_y = 26; tag_exterior_door = "xenoarch2_airlock_exterior"; tag_interior_door = "xenoarch2_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"bq" = (/obj/machinery/shower{pixel_y = 3},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology)
-"br" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bs" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bt" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access = list(65)},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bx" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"by" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bz" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bA" = (/obj/machinery/floodlight,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bD" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bE" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bF" = (/obj/effect/floor_decal/corner/purple{dir = 8},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bG" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Expedition Prep"; req_access = list(65)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"bI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"bJ" = (/obj/machinery/space_heater,/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"bK" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bL" = (/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bN" = (/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bO" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"bP" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/structure/anomaly_container,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bQ" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/light/small,/obj/structure/anomaly_container,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bR" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Long Term Storage"; dir = 1},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bS" = (/obj/effect/floor_decal/industrial/outline/grey,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/structure/anomaly_container,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/longtermstorage)
-"bT" = (/obj/effect/floor_decal/corner/purple/full,/obj/machinery/suspension_gen,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bU" = (/obj/machinery/suspension_gen,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bV" = (/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bW" = (/obj/item/weapon/storage/excavation,/obj/item/weapon/pickaxe,/obj/item/weapon/tool/wrench,/obj/item/device/measuring_tape,/obj/item/stack/flag/yellow,/obj/structure/table/steel,/obj/effect/floor_decal/corner/purple{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Expedition Prep"; dir = 1},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bX" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/structure/window/reinforced,/obj/machinery/door/window/northleft,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bY" = (/obj/structure/table/rack{dir = 8; layer = 2.6},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/item/weapon/storage/belt/archaeology,/obj/item/clothing/suit/space/anomaly,/obj/item/clothing/head/helmet/space/anomaly,/obj/item/clothing/mask/breath,/obj/structure/window/reinforced,/obj/machinery/door/window/northright,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"bZ" = (/obj/structure/table/steel,/obj/item/device/suit_cooling_unit,/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = -24},/obj/structure/cable/blue,/obj/item/device/suit_cooling_unit,/obj/item/device/gps/science,/obj/item/device/gps/science,/obj/item/device/gps/science,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"ca" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/exp_prep)
-"cb" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cd" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"ce" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/power/emitter{anchored = 1; dir = 1; state = 2},/obj/structure/window/reinforced,/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cf" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cg" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 1; tag_north = 2; tag_south = 0; tag_west = 3},/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ch" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/obj/structure/window/reinforced,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ci" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"ck" = (/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Hallway 2"; dir = 8},/obj/effect/floor_decal/corner/purple{dir = 4},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cl" = (/obj/effect/floor_decal/corner/purple{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Anomalous Materials 2"; dir = 4},/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cn" = (/obj/effect/floor_decal/industrial/outline/yellow,/obj/machinery/portable_atmospherics/powered/scrubber/huge,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/anomaly)
-"co" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cp" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/effect/floor_decal/corner/purple{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cr" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cs" = (/obj/structure/bed,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"ct" = (/obj/structure/table/standard,/obj/item/device/flashlight/lamp,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cu" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cv" = (/turf/simulated/wall/r_wall,/area/surface/outpost/mining_main/cave)
-"cw" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"cx" = (/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint)
-"cy" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/deep)
-"cz" = (/obj/effect/step_trigger/teleporter/wild/to_wild,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep)
-"cA" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/medical)
-"cB" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"cC" = (/obj/machinery/sleep_console,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"cD" = (/obj/structure/table/rack,/obj/machinery/firealarm{pixel_y = 24},/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/firstaid/regular,/obj/random/medical/lite,/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"cE" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/medical)
-"cF" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/item/clothing/suit/storage/hooded/wintercoat/science,/obj/effect/floor_decal/corner/purple/full{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"cG" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access = list(47)},/obj/machinery/newscaster{pixel_y = 30},/obj/item/clothing/suit/storage/hooded/wintercoat/science,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"cH" = (/obj/effect/floor_decal/corner/purple/full{dir = 1},/obj/structure/bookcase/manuals/xenoarchaeology,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"cI" = (/obj/machinery/door/firedoor/glass,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology)
-"cJ" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cK" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cL" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"cM" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Anomalous Materials"; req_access = list(65)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cN" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cO" = (/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cP" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cQ" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cR" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cS" = (/obj/machinery/atmospherics/valve/digital/open{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"cT" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Isolation Room 1"; req_access = list(65)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cU" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cV" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cW" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"cX" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"cY" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"cZ" = (/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"da" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"db" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dc" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dd" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"de" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"df" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dg" = (/obj/structure/table/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/sterile/latex,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"dh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"di" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/corner/purple,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"dj" = (/obj/structure/table/standard,/obj/item/clothing/head/welding,/obj/item/weapon/weldingtool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dk" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dl" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dn" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"do" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"dp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/machinery/light,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"dq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_one"; dir = 1; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"dr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Isolation Cell 1"; dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_a)
-"ds" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/deep)
-"dt" = (/obj/machinery/door/airlock/voidcraft{name = "Wilderness Containment"},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"du" = (/obj/structure/bed/chair/office/light,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_medical{name = "First-Aid Station"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dA" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/structure/table/standard,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/effect/floor_decal/corner/purple{dir = 6},/obj/item/weapon/storage/box/glasses/square{pixel_x = 1; pixel_y = 4},/obj/item/weapon/storage/box/cups,/obj/item/weapon/hand_labeler,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/glass_research{name = "Outpost Hallway"; req_access = list(47)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"dC" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dD" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/machinery/floodlight,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"dE" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dF" = (/obj/machinery/artifact_analyser,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dG" = (/obj/structure/table/standard,/obj/machinery/cell_charger,/obj/item/weapon/tool/screwdriver{pixel_y = 15},/obj/item/weapon/melee/baton/loaded,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dH" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dI" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/button/remote/blast_door{id = "xenoarch_cell2"; name = "Cell 2"; pixel_x = 26; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dJ" = (/obj/structure/table/steel,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/machinery/cell_charger,/obj/item/weapon/cell/high,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"dK" = (/obj/machinery/computer/crew,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/glass,/obj/machinery/recharger,/obj/item/device/defib_kit/loaded,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch First-Aid"; dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dM" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/fire{pixel_x = 0; pixel_y = 0},/obj/item/weapon/storage/firstaid/adv{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/o2{pixel_x = 0; pixel_y = 0},/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 0; pixel_y = -28},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
-"dN" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/medical)
-"dO" = (/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/bed/chair/office/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dQ" = (/obj/structure/table/standard,/obj/effect/floor_decal/corner/purple{dir = 6},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/device/taperecorder,/obj/item/weapon/folder,/obj/item/weapon/stamp,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"dR" = (/obj/effect/floor_decal/corner/purple{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"dS" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"dT" = (/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"dU" = (/obj/structure/table/reinforced,/obj/item/device/flashlight/lamp,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/effect/floor_decal/industrial/warning{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dV" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/obj/item/weapon/cell/high,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"dW" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dX" = (/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dY" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"dZ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ea" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"eb" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ec" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ed" = (/obj/machinery/artifact_analyser,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ee" = (/obj/machinery/door/blast/regular{id = "xenoarch_cell2"},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ef" = (/turf/simulated/shuttle/wall/voidcraft/hard_corner,/area/surface/outpost/wall/checkpoint)
-"eg" = (/obj/structure/showcase/sign{pixel_y = -5},/turf/simulated/shuttle/wall/voidcraft,/area/surface/outpost/wall/checkpoint)
-"eh" = (/obj/item/weapon/banner/nt,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"ei" = (/obj/item/weapon/banner/nt,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
-"ej" = (/obj/structure/sign/greencross{desc = "White cross in a green field, you can get medical aid here."; name = "First-Aid"},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/medical)
-"ek" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"el" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"em" = (/obj/structure/table/standard,/obj/structure/window/reinforced,/obj/effect/floor_decal/corner/purple{dir = 4},/obj/effect/floor_decal/industrial/warning,/obj/item/device/camera_film{pixel_x = 2; pixel_y = 2},/obj/item/device/camera,/obj/machinery/recharger,/obj/item/weapon/tape_roll,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Crew Area"; dir = 8},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
-"en" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology)
-"eo" = (/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"ep" = (/obj/structure/table/reinforced,/obj/machinery/computer/atmoscontrol/laptop{monitored_alarm_ids = list("isolation_one","isolation_two","isolation_three"); req_access = null; req_one_access = null},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eq" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"er" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"es" = (/obj/machinery/atmospherics/valve/digital/open{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"et" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Isolation Room 2"; req_access = list(65)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"eu" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ev" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ew" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"ex" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/banner/virgov,/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint)
-"ey" = (/obj/structure/table/steel,/obj/item/weapon/tool/screwdriver,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/wrench,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"ez" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"eA" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Airlock 1"; dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"eB" = (/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eE" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/purple{dir = 5},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eF" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eG" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin,/obj/item/device/camera,/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/corner/purple{dir = 9},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eH" = (/obj/structure/table/reinforced,/obj/item/weapon/folder,/obj/item/weapon/pen,/obj/item/weapon/tape_roll,/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eI" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/obj/effect/floor_decal/industrial/warning/full,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eJ" = (/obj/structure/window/reinforced,/obj/effect/floor_decal/industrial/warning,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eK" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eL" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"eM" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"eN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/machinery/light,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"eO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_two"; dir = 1; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"eP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Isolation Cell 2"; dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"eQ" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xenoarch1_airlock_exterior"; locked = 1; name = "Research Exterior Airlock"},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "xenoarch1_airlock_control"; name = "Xenoarch Access Button"; pixel_x = 0; pixel_y = -24; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"eR" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/effect/floor_decal/rust/part_rusted1,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"eS" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"eT" = (/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1379; icon_state = "door_locked"; id_tag = "xenoarch1_airlock_interior"; locked = 1; name = "Research Interior Airlock"},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "xenoarch1_airlock_control"; name = "Research Access Button"; pixel_x = -6; pixel_y = -26; req_access = null},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"eU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "xenoarch1_airlock_control"; name = "Research Access Console"; pixel_x = -26; pixel_y = -26; tag_exterior_door = "xenoarch1_airlock_exterior"; tag_interior_door = "xenoarch1_airlock_interior"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eV" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eW" = (/obj/structure/cable/blue{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eX" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eY" = (/obj/machinery/door/firedoor/glass,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"eZ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fa" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fb" = (/obj/effect/floor_decal/corner/purple{dir = 6},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Xenoarch Hallway 1"; dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fc" = (/obj/machinery/ai_status_display,/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fd" = (/obj/machinery/artifact_harvester,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fe" = (/obj/item/weapon/anobattery{pixel_x = -6; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = -2; pixel_y = -2},/obj/item/weapon/anobattery{pixel_x = 2; pixel_y = 2},/obj/item/weapon/anobattery{pixel_x = 6; pixel_y = 6},/obj/structure/table/steel,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ff" = (/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/obj/structure/table/steel,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fg" = (/obj/machinery/artifact_harvester,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fh" = (/obj/effect/floor_decal/industrial/warning/full,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fi" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fj" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_b)
-"fk" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"fl" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/status_display{pixel_y = -32},/obj/machinery/light,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology)
-"fm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/corner/purple{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/corner/purple{dir = 8},/obj/effect/floor_decal/industrial/warning/corner,/obj/structure/noticeboard/anomaly{icon_state = "nboard05"; pixel_y = -32},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fp" = (/obj/effect/floor_decal/corner/purple,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fq" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/corner/purple{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fr" = (/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fs" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"ft" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/effect/floor_decal/corner/purple{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fu" = (/obj/machinery/artifact_scanpad,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fv" = (/obj/machinery/artifact_scanpad,/obj/machinery/atmospherics/pipe/simple/hidden/yellow,/turf/simulated/floor/bluegrid,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fx" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fy" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fz" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fA" = (/obj/machinery/artifact_scanpad,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fB" = (/obj/machinery/artifact_analyser,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fC" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fD" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/smes)
-"fE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes)
-"fF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes)
-"fG" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Generator Room"; req_one_access = list(12,47)},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"fH" = (/obj/structure/sign/warning/high_voltage,/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes)
-"fI" = (/obj/machinery/recharge_station,/obj/effect/floor_decal/corner/purple{dir = 9},/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fJ" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fK" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology)
-"fL" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/glass_research{name = "Anomalous Materials"; req_access = list(65)},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fM" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fN" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/blue{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fO" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fP" = (/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/yellow,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"fR" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/research{name = "Isolation Room 3"; req_access = list(65)},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fS" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 4},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fT" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fU" = (/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"fV" = (/obj/machinery/power/smes/buildable/outpost_substation{charge = 500000; input_attempt = 1; input_level = 150000; output_level = 150000; RCon_tag = "Outpost - Xenoarch"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"fW" = (/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/obj/structure/anomaly_container,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"fX" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/random/tool,/obj/random/tool,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"fY" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/table/steel,/obj/item/weapon/storage/toolbox/mechanical,/obj/structure/extinguisher_cabinet{pixel_y = 30},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"fZ" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/structure/anomaly_container,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"ga" = (/obj/machinery/atmospherics/binary/pump/on{dir = 2; target_pressure = 200},/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gb" = (/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/random/powercell,/obj/random/maintenance/clean,/obj/structure/cable/blue{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 36; pixel_y = 0},/obj/effect/floor_decal/industrial/warning/corner{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gc" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/smes)
-"gd" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/restroom)
-"ge" = (/obj/machinery/door/airlock{name = "Research Restroom"},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gf" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Anomalous Materials 1"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/effect/floor_decal/corner/purple{dir = 8},/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"gg" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"gh" = (/obj/machinery/atmospherics/unary/heater{dir = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"gi" = (/obj/machinery/atmospherics/unary/freezer{dir = 1; icon_state = "freezer"},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"gj" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/purple,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 4},/obj/structure/anomaly_container,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"gk" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"gl" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; use_power = 0},/obj/machinery/light,/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"gm" = (/obj/machinery/atmospherics/pipe/manifold/hidden/yellow,/obj/machinery/alarm/monitor/isolation{alarm_id = "isolation_one"; dir = 1; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"gn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8},/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Isolation Cell 3"; dir = 1},/turf/simulated/floor/reinforced,/area/surface/outpost/research/xenoarcheology/isolation_c)
-"go" = (/obj/item/stack/flag/green,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep)
-"gp" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"gq" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"gr" = (/obj/item/stack/flag/red{amount = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep)
-"gs" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"gt" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"gu" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable/heavyduty{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gv" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gw" = (/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gx" = (/obj/machinery/atmospherics/binary/pump/on{dir = 1; target_pressure = 200},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gy" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gz" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible/yellow,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gA" = (/obj/structure/table/steel,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gB" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/machinery/light_switch{pixel_x = 11; pixel_y = 24},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gC" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gD" = (/obj/structure/undies_wardrobe,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gE" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/restroom)
-"gF" = (/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/analysis)
-"gG" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Sample Preparation"; req_access = list(65)},/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"gH" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_research{name = "Sample Preparation"; req_access = list(65)},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"gI" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/analysis)
-"gJ" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/analysis)
-"gK" = (/turf/simulated/wall/r_wall,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"gL" = (/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal)
-"gM" = (/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
-"gN" = (/obj/structure/cable,/obj/machinery/power/port_gen/pacman,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gO" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gP" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/portable_atmospherics/powered/scrubber,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gQ" = (/obj/machinery/atmospherics/binary/pump,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gR" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 7; tag_north = 1; tag_south = 2; tag_west = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gS" = (/obj/machinery/atmospherics/pipe/tank/nitrous_oxide{dir = 8},/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"gT" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gV" = (/obj/structure/table/standard,/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/item/weapon/towel{color = "#800080"; name = "purple towel"},/obj/random/soap,/obj/random/soap,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"gW" = (/obj/item/weapon/reagent_containers/glass/bottle/toxin,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric{name = "beaker 'sulphuric acid'"},/obj/structure/table/glass,/obj/effect/floor_decal/corner/beige{dir = 9},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/light_switch{pixel_x = -36},/obj/structure/cable/blue{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"gX" = (/obj/structure/cable/blue{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"gY" = (/obj/effect/floor_decal/corner/beige{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"gZ" = (/obj/effect/floor_decal/corner/lime{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Sample Preparation"; dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"ha" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hb" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hc" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 5},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hd" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"he" = (/obj/machinery/space_heater,/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hf" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hg" = (/obj/structure/closet/crate,/obj/item/stack/material/phoron{amount = 50},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hh" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/portable_atmospherics/powered/pump/filled{pixel_x = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hi" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hj" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 5; tag_north = 1; tag_south = 2; tag_west = 0},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hk" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hl" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"hm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"hn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"ho" = (/obj/machinery/chemical_dispenser/full,/obj/structure/sign/warning/nosmoking_2{pixel_x = -32},/obj/effect/floor_decal/corner/beige{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hp" = (/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/blue{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hq" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hr" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/door/window/westright,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hs" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"ht" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hu" = (/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hv" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock{name = "Emergency Storage"},/obj/structure/cable/blue{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hw" = (/obj/structure/cable/blue{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hx" = (/obj/item/weapon/weldpack,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hy" = (/obj/structure/closet/toolcloset,/obj/random/maintenance/clean,/obj/random/maintenance/clean,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hz" = (/obj/structure/table/reinforced,/obj/item/clothing/gloves/sterile/latex,/obj/structure/window/reinforced{dir = 1},/obj/effect/floor_decal/industrial/warning{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor/tiled,/area/surface/outpost/research/xenoarcheology/anomaly)
-"hA" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/obj/machinery/meter,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hB" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 1},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hC" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 6; tag_north = 1; tag_south = 0; tag_west = 2},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hD" = (/obj/machinery/atmospherics/pipe/tank/phoron{dir = 8},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hE" = (/obj/structure/curtain/open/shower,/obj/structure/window/reinforced{dir = 8},/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"hF" = (/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/machinery/recharge_station,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"hG" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/freezer,/area/surface/outpost/research/xenoarcheology/restroom)
-"hH" = (/obj/machinery/chem_master,/obj/effect/floor_decal/corner/beige{dir = 9},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hI" = (/obj/item/weapon/stool/padded,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hJ" = (/obj/effect/floor_decal/corner/beige,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hK" = (/obj/effect/floor_decal/corner/lime{dir = 10},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hL" = (/obj/effect/floor_decal/corner/lime{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hM" = (/obj/effect/floor_decal/corner/lime{dir = 10},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hN" = (/obj/item/clothing/glasses/meson,/obj/structure/closet/hydrant{pixel_x = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hO" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"hP" = (/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hQ" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hR" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hS" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 1; start_pressure = 740},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hT" = (/obj/machinery/status_display{pixel_y = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hU" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"hV" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/effect/floor_decal/corner/beige/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hW" = (/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/structure/table/glass,/obj/effect/floor_decal/corner/beige{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hX" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/beige/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
-"hY" = (/obj/machinery/radiocarbon_spectrometer,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
-"hZ" = (/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/closet/crate/secure/science{req_access = list(65)},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
-"ia" = (/obj/machinery/radiocarbon_spectrometer,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
-"ib" = (/obj/machinery/radiocarbon_spectrometer,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
-"ic" = (/obj/structure/table/rack,/obj/item/weapon/storage/toolbox/emergency,/obj/item/clothing/accessory/armband/science,/obj/item/clothing/glasses/science,/obj/item/device/suit_cooling_unit,/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
-"id" = (/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/outpost/research/xenoarcheology)
-"ie" = (/turf/simulated/wall/dungeon,/area/surface/cave/unexplored/normal)
-"if" = (/obj/item/stack/flag/green,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
-"ig" = (/obj/item/stack/flag/red{amount = 1},/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
-"ih" = (/obj/structure/table/standard,/obj/item/weapon/flame/lighter/random,/obj/item/weapon/tool/crowbar,/obj/machinery/atmospherics/pipe/manifold/hidden/yellow{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/anomaly)
-"ii" = (/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 8},/obj/machinery/light/small,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"ij" = (/obj/structure/cable/heavyduty{icon_state = "2-8"},/obj/structure/cable/heavyduty{icon_state = "2-4"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
-"ik" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/warning/dust{icon_state = "warning_dust"; dir = 4},/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"il" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
-"im" = (/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"in" = (/obj/structure/cable/heavyduty{icon_state = "1-2"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
-"io" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
-"ip" = (/obj/structure/cable/ender{icon_state = "1-2"; id = "surface_cave"},/turf/simulated/floor/plating{icon_state = "asteroidplating2"},/area/surface/cave/explored/normal)
-"ir" = (/obj/machinery/mining/brace,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"is" = (/obj/machinery/mining/drill,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"it" = (/obj/vehicle/train/engine,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"iu" = (/obj/vehicle/train/trolley,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"iw" = (/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/obj/structure/cable/heavyduty{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"ix" = (/obj/structure/cable/heavyduty{icon_state = "4-8"},/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"iz" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
-"iA" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
-"iB" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal)
-
-(1,1,1) = {"
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyczczczaaaaaaaaaaaaaaaaaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcZcZcZcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsacabababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababefdtegdtefabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacdsdsdsacacababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacehcZcZcZexacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacaccZcZcZacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsabacababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacgoabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacabababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacabababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacabababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsabababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacababababababababababababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsabababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsabababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacacgoababababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabacacacacababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababacacacacabababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababacacacacabababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababacacacacababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacababababacacacacababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgoacacgoabacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacababgoacacacabababababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacgoabababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacacacacacacacacacacacabacabababababababababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacababababacacacacacacacacacacacacabababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacababababababababacacacacacacacacacacacabababababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacababababababababababababacacacacacacacacacacababababababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababacacacacacacacacacabababababababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacababababababababababababababababacacacacacacacacacacacababababababababababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababacacacacacacababacacacabababababababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababababacacacacacacacababacacacacababababababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacacabababababababababababababababababababacacacacgoacacacabababacacacacababababababababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababacacacabababababababababababababababababacacacacacabacacacababababacacacacacacababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacababababababababacacababababababababababababababababacacacacababacacacabababababacacacacacacacababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacababababababababababababacacababababababababababababababacacacacacababacacacababababababababacacacacacacacababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababababababababababababacacacacabababacacacababababababababababacacacacacacacabacgoababababacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacababababababababababababababababababababababababababababababacacacacacabababacacacababababababababababababacacacacacacacacababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababacacacacacabababacacacabababababababababababababababacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacacababababababababababababababababababababababababababababababababacacacacababababacacacabababababababababababababababababacacgoacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababacacacacabababacacacacababababababababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababacacacacabababacacacacabababababababababababababababababababababacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacabababababababababababababababababacacabacacababababacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacababababababababababababababababababacacacacababababababababacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacabababababababababababababababababababacacacababababababababababababacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababacacacacabababacacacacacababababababababababababababababababacacacacacababababababababababababababacacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababacacacabababababababababababababababababababacacacacabacabababababababababababababababababacacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacacacabababababababababababababababababababacacacababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacacababababababababababababababababababababacacacabababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsabacababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacacababababababababababababababababababababacacababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacacababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababacacabababababababababababababababababababacacacababababababababababababababababababababababababababababababababacacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsacabababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacababacacabababababababababababababababababababacacabababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacabacacababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacababababababababababababababababababacacacabababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacababababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacabacacabababababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacgoacacabababababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacabababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacacababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacacababababababababababababababacacacababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacabababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacacababababababababababababababacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabacacababababababababababababababababababababababababababababababababababababababababdsdsdsababababababababaa
-aaabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacacacacababababababababababababababacacababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacacabacacabababababababababababababababababababababababababababababababababababababacgrdsdsdsababababababababaa
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafigaeaeaeaeaeaeaeaeaeaeafafafafafigaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeigafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeafafafaeaeaeafafafaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeafafaeaeafafaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeafagaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeafafaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafifaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeifafafafafaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeafafafafaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeafafafafaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafgLgLgLafaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeafafafaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafgLgLgLafafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafifaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafgLgLgLafafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeafafaeaeafgLgLgLafafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeafafafaeaeafafafafafaeaeaeaegLgLgLafafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeafafaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeafafafaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafifaeaeaeafafafafafafafafafafafafafafaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeifafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeafifaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafaeafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafifaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeafifafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafifaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeafafafafafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeaeaeaeaeaeaeahaiaiajajaiahafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeaeafafafafafahakaiajalakahafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeaeaeafafafafafafahamanaoamamahafafafafafafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeaeaeapaqapapapaqarapasatauavawaxavavaxayayayayayafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafaeapapazaAaBaCaDaEapaFaGaHavaIaJaKaLaMaNaOaPaQayayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeapaRaSaTaUaTaVaWapanaXamavaYaZbabbbcbdbebfbgbhayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLafafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafaeapbiaTbjbkblaTbmbnbobpbqbrbsbtbubububvbwbxbybzayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeafaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeapbAaTbBbCbDbEbFbGbHbIbJbKbLbMbNbObNaNbPbQbRbSayafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeapbTbUbVbWbXbYbZcacbcccdavcebMcfcgchaNayayayayayafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafaeapapapapapapapapapcicjckavclcmcncncocpcqcrcsctcuafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaecvdDdVdJeydDcvafafafaecAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUcVcWcuafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegpimimimimimgqafafafaecAdadbdccEdddedfandgdhdiaxdjdkdkdldmdndodpdqdrcuafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafaeaecAdudvdwdxdydzdAamandBandCdGdEdFihdHdIcucucucucugMafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafafaecAdKdLdMdNdOdPdQcIdRdSdTaxdUhzdWdXdYdZeaebecedeegMafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimitgtafafafeicAdNdNcAejekelemeneodSdTbKepbNbNeqereseteueveweegMafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimiugtafafafidanezeAaneBeBeCeDeEeFdSdTaxeGeHeIeJeKeLeMeNeOePeegMafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimiugtafafafideQeReSeTeUeVeWeXeYeZfafbfcfdfefffgfhfifjfjfjfjfjgMafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimiugtafafafidamfkflamfmfnfofpfqfrfsftaxfudkdkfvfwfxfyfzfAfBfCafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsirisirimimgtafafafeifDfDfDfDfEfFfGfHfDfIfJfKfLfMfNfOfPfQesfRfSfTfUfCafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegsimimimimimgtafafafaffDfVfWfXfYfZgagbgcgdgegdavgfggghgibNgjgkglgmgnfCafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeiiimimiwixixikijilililgugvgwgwgxgygzgAgdgBgCgDgEgFgGgFgFgHgIgJgKgKgKgKafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaecvizizcvizizcvinafafaffDgNgwgOgPgQgRgSgdgTgUgVgdgWgXgYgZhahbhchdhehfgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDhggwgOhhhihjhkgdhlhmhngdhohphqhrhshthuhvhwhxgKaeafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDhygwiohAhBhChDgdhEhFhGgdhHhIhJhKhLhMhLhdhNhOgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafaffDfDhPhQhRhShThUfDgEgEgEgJhVhWhXhYhZiaibhdicgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafgLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaefDfDfDfDfDfDfDfDaeaeaegJgJgFgJgJgFgJgJgKgKgKaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeinafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeafafafafafafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeipafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
-adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieiAiAiAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiBiBadadadadadadadadad
-"}
-=======
"aa" = (/turf/unsimulated/wall/planetary/sif,/area/surface/cave/unexplored/deep)
"ab" = (/turf/simulated/mineral/sif,/area/surface/cave/unexplored/deep)
"ac" = (/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/deep)
@@ -1140,11 +439,6 @@ adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad
"iz" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/structure/ore_box,/turf/simulated/floor/tiled/asteroid_steel,/area/surface/outpost/mining_main/cave)
"iA" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/mineral/floor/ignore_mapgen/sif,/area/surface/cave/explored/normal)
"iB" = (/obj/effect/step_trigger/teleporter/mine/from_mining,/turf/simulated/floor/water{outdoors = 0},/area/surface/cave/explored/normal)
-<<<<<<< HEAD
->>>>>>> ee162e9... June Map Adjustments (#6209)
-
-=======
-
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxcwcwcwcxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyczczczaaaaaaaaaaaaaaaaaa
aaababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababcxcXcZcYcxababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababacdsdsdsababababababababaa
@@ -1402,4 +696,3 @@ adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeipafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaegLgLgLaeaeaeaeaeaeaeaead
adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieiAiAiAadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadiBiBiBadadadadadadadadad
"}
->>>>>>> 63ff55b... Merge pull request #6293 from Cerebulon/xenoarchtweaks
diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm
index 26deeda170c..75be5e5ce05 100644
--- a/maps/southern_cross/southern_cross-6.dmm
+++ b/maps/southern_cross/southern_cross-6.dmm
@@ -2262,7 +2262,7 @@
"Rz" = (/obj/effect/floor_decal/corner/green/full,/obj/structure/window/reinforced/holowindow/disappearing{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
"RA" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/obj/structure/window/reinforced/holowindow/disappearing{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
"RB" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt)
-
+
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -2520,3 +2520,4 @@ aaaaRfababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/maps/tether/submaps/beach/beach.dmm b/maps/tether/submaps/beach/beach.dmm
index a3cc7e4e68b..5c73d730aa9 100644
--- a/maps/tether/submaps/beach/beach.dmm
+++ b/maps/tether/submaps/beach/beach.dmm
@@ -35,17 +35,17 @@
/turf/simulated/floor/beach/sand,
/area/tether_away/beach)
"aj" = (
-/turf/simulated/floor/water/indoors,
-/area/tether_away/beach/coast)
+/turf/simulated/floor/water/ocean,
+/area/tether_away/beach)
"ak" = (
-/turf/simulated/floor/water/deep/indoors,
-/area/tether_away/beach/water)
+/turf/simulated/floor/water/ocean,
+/area/tether_away/beach/coast)
"al" = (
/turf/simulated/floor/tiled/asteroid_steel,
/area/tether_away/beach)
"am" = (
-/turf/simulated/floor/water/indoors,
-/area/tether_away/beach/jungle)
+/turf/simulated/floor/water/deep/ocean,
+/area/tether_away/beach/water)
"an" = (
/obj/effect/overlay/palmtree_r,
/turf/simulated/floor/beach/sand,
@@ -286,8 +286,8 @@
/turf/simulated/floor/beach/sand,
/area/tether_away/beach)
"bf" = (
-/turf/simulated/floor/water/indoors,
-/area/tether_away/beach)
+/turf/simulated/floor/water/ocean,
+/area/tether_away/beach/water)
"bg" = (
/turf/unsimulated/wall/planetary/normal,
/area/tether_away/beach/coast)
@@ -299,8 +299,8 @@
/turf/unsimulated/wall/planetary/normal,
/area/tether_away/beach/water)
"bj" = (
-/turf/simulated/floor/water/indoors,
-/area/tether_away/beach/water)
+/turf/simulated/floor/water/ocean,
+/area/tether_away/beach/jungle)
"bk" = (
/turf/simulated/floor/beach/sand,
/area/tether_away/beach/water)
@@ -310,6 +310,10 @@
"bm" = (
/turf/simulated/floor/beach/sand/desert,
/area/shuttle/excursion/away_beach)
+"bn" = (
+/mob/living/simple_mob/animal/passive/fish/measelshark,
+/turf/simulated/floor/water/deep/ocean,
+/area/tether_away/beach/water)
"bp" = (
/turf/simulated/floor/beach/sand,
/area/tether_away/beach/jungle)
@@ -592,34 +596,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(3,1,1) = {"
@@ -734,34 +738,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(4,1,1) = {"
@@ -876,34 +880,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(5,1,1) = {"
@@ -1018,34 +1022,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
am
-ak
-ak
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
+am
+am
+am
+am
+am
bi
"}
(6,1,1) = {"
@@ -1160,34 +1164,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
bp
bp
bp
+bj
+bj
+am
+am
am
am
-ak
-ak
-ak
-ak
bi
"}
(7,1,1) = {"
@@ -1302,34 +1306,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
-bp
-bp
-bp
-bp
-bp
am
-ak
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bp
+bp
+bp
+bp
+bp
+bj
+am
+am
+am
+am
bi
"}
(8,1,1) = {"
@@ -1444,34 +1448,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
bp
bp
bp
bp
ap
bp
+bj
+bj
+am
am
am
-ak
-ak
-ak
bi
"}
(9,1,1) = {"
@@ -1586,34 +1590,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
-bp
-bp
-bp
-bp
-bp
-bp
-bp
am
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bp
+bp
+bp
+bp
+bp
+bp
+bp
+bj
+am
+am
+am
bi
"}
(10,1,1) = {"
@@ -1728,22 +1732,22 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
bp
bp
ap
@@ -1752,10 +1756,10 @@ bp
bp
bp
bp
+bj
+bj
am
am
-ak
-ak
bi
"}
(11,1,1) = {"
@@ -1870,22 +1874,22 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
bp
bp
bp
@@ -1895,9 +1899,9 @@ bp
bp
ap
bp
+bj
+am
am
-ak
-ak
bi
"}
(12,1,1) = {"
@@ -2012,34 +2016,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
-bp
-ad
-ad
-ad
-ad
-ad
-ad
-ad
-bp
-bp
am
-ak
-ak
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bp
+ad
+ad
+ad
+ad
+ad
+ad
+ad
+bp
+bp
+bj
+bn
+am
bi
"}
(13,1,1) = {"
@@ -2154,21 +2158,21 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
bp
ad
aq
@@ -2179,9 +2183,9 @@ aw
ad
bp
bp
+bj
+am
am
-ak
-ak
bi
"}
(14,1,1) = {"
@@ -2296,21 +2300,21 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
bp
ad
aq
@@ -2321,9 +2325,9 @@ aw
ad
bp
bp
+bj
+am
am
-ak
-ak
bi
"}
(15,1,1) = {"
@@ -2438,20 +2442,20 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
bp
bp
ad
@@ -2463,9 +2467,9 @@ aw
ad
bp
bp
+bj
+am
am
-ak
-ak
bi
"}
(16,1,1) = {"
@@ -2580,20 +2584,20 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
bp
ap
ad
@@ -2605,9 +2609,9 @@ aw
ad
bp
bp
+bj
+am
am
-ak
-ak
bi
"}
(17,1,1) = {"
@@ -2722,21 +2726,21 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
bp
ad
ad
@@ -2747,9 +2751,9 @@ ad
ad
bp
bp
+bj
+am
am
-ak
-ak
bi
"}
(18,1,1) = {"
@@ -2864,22 +2868,22 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
bp
bp
bp
@@ -2888,10 +2892,10 @@ bp
bp
ap
bp
+bj
+bj
am
am
-ak
-ak
bi
"}
(19,1,1) = {"
@@ -3006,34 +3010,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
bp
bp
bp
bp
bp
+bj
+am
+am
am
-ak
-ak
-ak
bi
"}
(20,1,1) = {"
@@ -3148,34 +3152,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
am
am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
+bj
bp
bp
bp
+bj
+bj
+am
am
am
-ak
-ak
-ak
bi
"}
(21,1,1) = {"
@@ -3290,34 +3294,34 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
am
am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
+bj
bp
bp
+bj
+am
+am
+am
am
-ak
-ak
-ak
-ak
bi
"}
(22,1,1) = {"
@@ -3432,22 +3436,8 @@ aa
aa
aa
ad
-bf
aj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
@@ -3456,10 +3446,24 @@ am
am
am
am
-ak
-ak
-ak
-ak
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
+bj
+bj
+bj
+am
+am
+am
+am
bi
"}
(23,1,1) = {"
@@ -3574,34 +3578,34 @@ aa
aa
aa
ad
-bf
aj
+ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
+bj
bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
-am
-am
-am
-ak
-ak
-ak
-ak
bi
"}
(24,1,1) = {"
@@ -3716,34 +3720,34 @@ aa
aa
aa
ad
-bf
aj
+ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
+bj
+bj
+bj
bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
-am
-am
-am
-ak
-ak
-ak
-ak
bi
"}
(25,1,1) = {"
@@ -3858,34 +3862,34 @@ aa
aa
aa
ad
-bf
aj
+ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
+bj
bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-am
-am
-am
-am
bp
+bj
+bj
+am
am
am
-ak
-ak
-ak
bi
"}
(26,1,1) = {"
@@ -4000,34 +4004,34 @@ aa
aa
aa
ad
-bf
aj
+ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bp
+bp
+bp
+bp
bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
-bp
-bp
-bp
-bp
am
-ak
-ak
-ak
+am
bi
"}
(27,1,1) = {"
@@ -4142,34 +4146,34 @@ aa
aa
aa
ad
-bf
aj
+ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bj
bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-am
-am
bp
bp
+bj
+bj
+am
am
am
-ak
-ak
-ak
bi
"}
(28,1,1) = {"
@@ -4284,34 +4288,34 @@ aa
aa
aa
ad
-bf
aj
+ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+bj
+bj
bj
bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
am
am
am
am
-ak
-ak
-ak
-ak
bi
"}
(29,1,1) = {"
@@ -4426,34 +4430,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(30,1,1) = {"
@@ -4568,34 +4572,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(31,1,1) = {"
@@ -4710,34 +4714,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(32,1,1) = {"
@@ -4852,34 +4856,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(33,1,1) = {"
@@ -4994,34 +4998,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(34,1,1) = {"
@@ -5136,34 +5140,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(35,1,1) = {"
@@ -5278,34 +5282,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(36,1,1) = {"
@@ -5420,34 +5424,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(37,1,1) = {"
@@ -5562,34 +5566,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(38,1,1) = {"
@@ -5704,34 +5708,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(39,1,1) = {"
@@ -5846,34 +5850,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(40,1,1) = {"
@@ -5988,34 +5992,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(41,1,1) = {"
@@ -6130,34 +6134,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(42,1,1) = {"
@@ -6272,34 +6276,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(43,1,1) = {"
@@ -6414,34 +6418,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(44,1,1) = {"
@@ -6556,34 +6560,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(45,1,1) = {"
@@ -6698,34 +6702,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(46,1,1) = {"
@@ -6840,34 +6844,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(47,1,1) = {"
@@ -6982,34 +6986,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(48,1,1) = {"
@@ -7124,34 +7128,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(49,1,1) = {"
@@ -7266,34 +7270,34 @@ aa
aa
aa
bd
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(50,1,1) = {"
@@ -7408,34 +7412,34 @@ aa
aa
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(51,1,1) = {"
@@ -7550,34 +7554,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(52,1,1) = {"
@@ -7692,34 +7696,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(53,1,1) = {"
@@ -7834,34 +7838,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(54,1,1) = {"
@@ -7976,34 +7980,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(55,1,1) = {"
@@ -8118,34 +8122,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(56,1,1) = {"
@@ -8260,34 +8264,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(57,1,1) = {"
@@ -8402,34 +8406,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(58,1,1) = {"
@@ -8544,34 +8548,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(59,1,1) = {"
@@ -8686,34 +8690,34 @@ ad
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(60,1,1) = {"
@@ -8828,34 +8832,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(61,1,1) = {"
@@ -8970,34 +8974,34 @@ ad
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(62,1,1) = {"
@@ -9112,34 +9116,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(63,1,1) = {"
@@ -9254,34 +9258,34 @@ ad
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(64,1,1) = {"
@@ -9396,34 +9400,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(65,1,1) = {"
@@ -9538,34 +9542,34 @@ ad
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+bf
+am
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(66,1,1) = {"
@@ -9680,34 +9684,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+bf
+am
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(67,1,1) = {"
@@ -9822,34 +9826,34 @@ ad
UZ
ad
bb
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(68,1,1) = {"
@@ -9964,34 +9968,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-bj
-bj
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+bf
+bf
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(69,1,1) = {"
@@ -10106,34 +10110,34 @@ ad
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-bj
-ak
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+bf
+am
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(70,1,1) = {"
@@ -10248,34 +10252,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(71,1,1) = {"
@@ -10390,34 +10394,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(72,1,1) = {"
@@ -10532,34 +10536,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(73,1,1) = {"
@@ -10674,34 +10678,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-bj
-ak
-ak
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+bf
+am
+am
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(74,1,1) = {"
@@ -10816,34 +10820,34 @@ ad
ad
ai
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-bj
-ak
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+bf
+am
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(75,1,1) = {"
@@ -10958,34 +10962,34 @@ ad
ad
aZ
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-bj
-ak
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+bf
+am
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(76,1,1) = {"
@@ -11100,34 +11104,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-bj
-ak
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+am
+am
+bf
+am
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(77,1,1) = {"
@@ -11242,34 +11246,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-bj
-ak
-ak
-bj
-ak
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+am
+am
+bf
+am
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(78,1,1) = {"
@@ -11384,34 +11388,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-bj
-ak
-ak
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+am
+am
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+bn
+am
+am
+am
+am
+am
+am
bi
"}
(79,1,1) = {"
@@ -11526,34 +11530,34 @@ ad
ad
ad
ad
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(80,1,1) = {"
@@ -11668,34 +11672,34 @@ ad
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+am
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(81,1,1) = {"
@@ -11810,34 +11814,34 @@ ad
ad
ad
bc
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(82,1,1) = {"
@@ -11952,34 +11956,34 @@ aa
ad
ad
bb
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-bj
-ak
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+bf
+am
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(83,1,1) = {"
@@ -12094,34 +12098,34 @@ aa
ad
ad
bc
-bf
aj
-bj
-bj
-ak
-ak
-ak
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(84,1,1) = {"
@@ -12236,34 +12240,34 @@ aa
ad
ad
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-bj
-ak
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+bf
+am
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(85,1,1) = {"
@@ -12378,34 +12382,34 @@ aa
aa
ad
ad
-bf
aj
-bj
-bj
-ak
-bj
-ak
-bj
-ak
-ak
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+am
+bf
+am
+am
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(86,1,1) = {"
@@ -12520,34 +12524,34 @@ aa
aa
ad
ad
-bf
aj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(87,1,1) = {"
@@ -12662,34 +12666,34 @@ aa
aa
ad
ad
-bf
aj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(88,1,1) = {"
@@ -12804,34 +12808,34 @@ aa
aa
ad
ad
-bf
aj
-bj
-bj
-ak
-bj
-ak
-bj
-ak
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+am
+bf
+am
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(89,1,1) = {"
@@ -12946,34 +12950,34 @@ aa
aa
ad
ad
-bf
aj
-bj
-bj
-ak
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(90,1,1) = {"
@@ -13088,34 +13092,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(91,1,1) = {"
@@ -13230,34 +13234,34 @@ aa
aa
aa
be
-bf
aj
-bj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+bf
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(92,1,1) = {"
@@ -13372,34 +13376,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(93,1,1) = {"
@@ -13514,34 +13518,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(94,1,1) = {"
@@ -13656,34 +13660,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(95,1,1) = {"
@@ -13798,34 +13802,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(96,1,1) = {"
@@ -13940,34 +13944,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(97,1,1) = {"
@@ -14082,34 +14086,34 @@ aa
aa
aa
bb
-bf
aj
-bj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(98,1,1) = {"
@@ -14224,34 +14228,34 @@ aa
aa
aa
bc
-bf
aj
-bj
-bj
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(99,1,1) = {"
@@ -14366,34 +14370,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(100,1,1) = {"
@@ -14508,34 +14512,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(101,1,1) = {"
@@ -14650,34 +14654,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(102,1,1) = {"
@@ -14792,34 +14796,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(103,1,1) = {"
@@ -14934,34 +14938,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(104,1,1) = {"
@@ -15076,34 +15080,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(105,1,1) = {"
@@ -15218,34 +15222,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(106,1,1) = {"
@@ -15360,34 +15364,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+am
+am
+am
+am
+am
+am
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(107,1,1) = {"
@@ -15502,34 +15506,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+bf
+am
+am
+am
+am
+am
+bf
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(108,1,1) = {"
@@ -15644,34 +15648,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+bf
+bf
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(109,1,1) = {"
@@ -15786,34 +15790,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+bf
+bf
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(110,1,1) = {"
@@ -15928,34 +15932,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+bf
+am
+am
+am
+am
+am
+bf
+bf
bk
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(111,1,1) = {"
@@ -16070,34 +16074,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+bf
+am
+am
+am
+am
+am
+bf
+bf
bk
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(112,1,1) = {"
@@ -16212,34 +16216,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-bj
-bj
-bj
+bf
+bf
+bf
+am
+am
+am
+bf
+bf
+bf
bk
bk
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(113,1,1) = {"
@@ -16354,34 +16358,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
+ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
bk
bk
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(114,1,1) = {"
@@ -16496,34 +16500,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
+ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
bk
bk
bk
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(115,1,1) = {"
@@ -16638,34 +16642,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
+ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
bk
bk
bk
bk
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(116,1,1) = {"
@@ -16780,34 +16784,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
+ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
bk
bk
bk
bk
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(117,1,1) = {"
@@ -16922,34 +16926,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
-bj
+ak
+bf
+bf
+bf
+bf
+bf
+bf
+bf
+bf
bk
bk
bk
bk
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(118,1,1) = {"
@@ -17064,34 +17068,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
-bj
ak
-ak
-bj
-bj
-bj
+bf
+bf
+bf
+bf
+am
+am
+bf
+bf
+bf
bk
bk
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(119,1,1) = {"
@@ -17206,34 +17210,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+bf
+am
+am
+am
+am
+bf
+bf
bk
bk
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(120,1,1) = {"
@@ -17348,34 +17352,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-bj
-bj
-bj
+bf
+bf
+bf
+am
+am
+am
+am
+bf
+bf
+bf
bk
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(121,1,1) = {"
@@ -17490,34 +17494,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+bf
+am
+am
+am
+am
+am
+bf
+bf
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+bn
+am
+am
+am
+am
+am
+am
bi
"}
(122,1,1) = {"
@@ -17632,34 +17636,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-ak
-bj
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+bf
bk
bk
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(123,1,1) = {"
@@ -17774,34 +17778,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+bf
bk
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(124,1,1) = {"
@@ -17916,34 +17920,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+bf
+bf
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(125,1,1) = {"
@@ -18058,34 +18062,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+bf
+bf
bk
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(126,1,1) = {"
@@ -18200,34 +18204,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+bf
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(127,1,1) = {"
@@ -18342,34 +18346,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+bf
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(128,1,1) = {"
@@ -18484,34 +18488,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(129,1,1) = {"
@@ -18626,34 +18630,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(130,1,1) = {"
@@ -18768,34 +18772,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(131,1,1) = {"
@@ -18910,34 +18914,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(132,1,1) = {"
@@ -19052,34 +19056,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(133,1,1) = {"
@@ -19194,34 +19198,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(134,1,1) = {"
@@ -19336,34 +19340,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(135,1,1) = {"
@@ -19478,34 +19482,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(136,1,1) = {"
@@ -19620,34 +19624,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(137,1,1) = {"
@@ -19762,34 +19766,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(138,1,1) = {"
@@ -19904,34 +19908,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(139,1,1) = {"
@@ -20046,34 +20050,34 @@ aa
aa
aa
ad
-bf
aj
-bj
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
-ak
ak
+bf
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
+am
bi
"}
(140,1,1) = {"
diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm
index 851c83cc579..f54b849a76f 100644
--- a/maps/tether/tether-01-surface1.dmm
+++ b/maps/tether/tether-01-surface1.dmm
@@ -14053,9 +14053,7 @@
/obj/machinery/camera/network/research{
dir = 4
},
-/obj/structure/closet/secure_closet/hydroponics{
- req_access = list(47)
- },
+/obj/structure/closet/secure_closet/hydroponics/sci,
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora)
"axG" = (
@@ -14562,9 +14560,7 @@
/obj/effect/floor_decal/corner/mauve/border{
dir = 8
},
-/obj/structure/closet/secure_closet/hydroponics{
- req_access = list(47)
- },
+/obj/structure/closet/secure_closet/hydroponics/sci,
/turf/simulated/floor/tiled,
/area/rnd/xenobiology/xenoflora)
"ayu" = (
diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm
index dca92d3c4f2..914074f0305 100644
--- a/maps/tether/tether-03-surface3.dmm
+++ b/maps/tether/tether-03-surface3.dmm
@@ -23341,6 +23341,22 @@
dir = 1;
pixel_y = -24
},
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
+/obj/item/weapon/reagent_containers/food/drinks/metaglass{
+ },
/turf/simulated/floor/wood,
/area/tether/surfacebase/bar_backroom)
"aLF" = (
diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm
index a235b0b41c5..4b3f99af9c9 100644
--- a/maps/tether/tether-05-station1.dmm
+++ b/maps/tether/tether-05-station1.dmm
@@ -2209,8 +2209,10 @@
/turf/simulated/floor,
/area/maintenance/station/eng_lower)
"aei" = (
-/turf/simulated/wall/r_wall,
-/area/mine/explored/upper_level)
+/obj/structure/table/reinforced,
+/obj/machinery/camera/network/engineering,
+/turf/simulated/floor/tiled,
+/area/crew_quarters/heads/chief)
"aej" = (
/turf/simulated/floor/tiled/dark,
/area/bridge/secondary)
@@ -4945,22 +4947,27 @@
/area/hallway/station/atrium)
"ait" = (
/obj/structure/cable{
- icon_state = "2-4"
+ d1 = 2;
+ d2 = 8;
+ icon_state = "2-8"
+ },
+/obj/machinery/alarm{
+ dir = 8;
+ icon_state = "alarm0";
+ pixel_x = 24
},
/turf/simulated/floor,
-/area/maintenance/substation/spacecommand)
+/area/maintenance/station/spacecommandmaint)
"aiu" = (
/obj/structure/cable{
- d1 = 1;
- d2 = 8;
- icon_state = "1-8"
+ icon_state = "2-4"
},
-/obj/structure/cable{
- d1 = 1;
- d2 = 2;
- icon_state = "1-2";
- pixel_y = 0
+/obj/machinery/alarm{
+ dir = 4;
+ icon_state = "alarm0";
+ pixel_x = -22
},
+/obj/effect/floor_decal/industrial/warning,
/turf/simulated/floor,
/area/maintenance/substation/spacecommand)
"aiv" = (
@@ -11179,12 +11186,21 @@
/area/crew_quarters/sleep/cryo)
"aup" = (
/obj/structure/cable{
- d1 = 2;
+ d1 = 1;
d2 = 8;
- icon_state = "2-8"
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ d1 = 1;
+ d2 = 2;
+ icon_state = "1-2";
+ pixel_y = 0
+ },
+/obj/effect/floor_decal/industrial/warning/corner{
+ dir = 8
},
/turf/simulated/floor,
-/area/maintenance/station/spacecommandmaint)
+/area/maintenance/substation/spacecommand)
"auq" = (
/obj/structure/disposalpipe/segment,
/turf/simulated/floor,
@@ -11358,6 +11374,9 @@
/obj/machinery/camera/network/engineering{
dir = 8
},
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
/turf/simulated/floor,
/area/maintenance/substation/spacecommand)
"auL" = (
@@ -11384,6 +11403,9 @@
dir = 8
},
/obj/structure/cable,
+/obj/effect/floor_decal/industrial/warning{
+ dir = 8
+ },
/turf/simulated/floor,
/area/maintenance/substation/spacecommand)
"auO" = (
@@ -11432,18 +11454,29 @@
/obj/machinery/door/airlock/maintenance/engi{
name = "Space Civ/Com Substation"
},
+/obj/effect/floor_decal/industrial/warning/corner{
+ icon_state = "warningcorner";
+ dir = 4
+ },
/turf/simulated/floor,
/area/maintenance/substation/spacecommand)
"auR" = (
-/obj/machinery/power/apc{
- dir = 4;
- name = "east bump";
- pixel_x = 28
+/obj/structure/cable/green,
+/obj/structure/cable/green{
+ icon_state = "0-4"
},
/obj/structure/cable/green{
d2 = 8;
icon_state = "0-8"
},
+/obj/machinery/power/sensor{
+ name = "Powernet Sensor - Space Civ/Com Subgrid";
+ name_tag = "Space Civ/Com Subgrid"
+ },
+/obj/effect/floor_decal/industrial/warning{
+ icon_state = "warning";
+ dir = 1
+ },
/turf/simulated/floor,
/area/maintenance/substation/spacecommand)
"auS" = (
@@ -11682,17 +11715,19 @@
/turf/simulated/floor/tiled,
/area/engineering/workshop)
"avp" = (
-/obj/structure/cable/green,
-/obj/structure/cable/green{
- icon_state = "0-4"
+/obj/machinery/power/apc{
+ dir = 4;
+ name = "east bump";
+ pixel_x = 28
},
/obj/structure/cable/green{
d2 = 8;
icon_state = "0-8"
},
-/obj/machinery/power/sensor{
- name = "Powernet Sensor - Space Civ/Com Subgrid";
- name_tag = "Space Civ/Com Subgrid"
+/obj/random/junk,
+/obj/effect/floor_decal/industrial/warning/corner{
+ icon_state = "warningcorner";
+ dir = 1
},
/turf/simulated/floor,
/area/maintenance/substation/spacecommand)
@@ -14999,6 +15034,14 @@
/obj/machinery/light,
/turf/simulated/floor/tiled,
/area/bridge/secondary/hallway)
+"aAv" = (
+/obj/effect/floor_decal/rust,
+/obj/machinery/alarm{
+ dir = 1;
+ pixel_y = -25
+ },
+/turf/simulated/floor,
+/area/maintenance/station/spacecommandmaint)
"aAw" = (
/obj/structure/cable{
d1 = 4;
@@ -15991,13 +16034,15 @@
/area/engineering/engineering_monitoring)
"aCc" = (
/obj/structure/table/reinforced,
+/obj/item/weapon/rcd,
+/obj/item/weapon/rcd_ammo,
+/obj/item/weapon/rcd_ammo,
+/obj/item/weapon/rcd_ammo,
+/obj/item/weapon/rcd_ammo,
/obj/machinery/light_switch{
- dir = 2;
- name = "light switch ";
- pixel_x = 10;
- pixel_y = 36
+ pixel_x = -22;
+ pixel_y = 22
},
-/obj/machinery/camera/network/engineering,
/turf/simulated/floor/tiled,
/area/crew_quarters/heads/chief)
"aCd" = (
@@ -16697,6 +16742,17 @@
},
/turf/simulated/floor/tiled/white,
/area/crew_quarters/toilet)
+"aDi" = (
+/obj/machinery/alarm{
+ dir = 8;
+ pixel_x = 25;
+ pixel_y = 0
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/grass/forest,
+/area/crew_quarters/heads/chief)
"aDj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
@@ -19303,18 +19359,6 @@
/obj/item/weapon/pen/multi,
/turf/simulated/floor/carpet/oracarpet,
/area/crew_quarters/heads/chief)
-"aTW" = (
-/obj/machinery/alarm{
- dir = 8;
- pixel_x = 25;
- pixel_y = 0
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/item/weapon/reagent_containers/food/snacks/snakesnack,
-/turf/simulated/floor/outdoors/grass/forest,
-/area/crew_quarters/heads/chief)
"aTX" = (
/obj/machinery/computer/general_air_control{
dir = 4;
@@ -19779,15 +19823,6 @@
/obj/machinery/computer/skills,
/turf/simulated/floor/tiled,
/area/crew_quarters/heads/chief)
-"aYH" = (
-/obj/structure/table/reinforced,
-/obj/item/weapon/rcd,
-/obj/item/weapon/rcd_ammo,
-/obj/item/weapon/rcd_ammo,
-/obj/item/weapon/rcd_ammo,
-/obj/item/weapon/rcd_ammo,
-/turf/simulated/floor/tiled,
-/area/crew_quarters/heads/chief)
"aYJ" = (
/obj/structure/table/reinforced,
/obj/item/weapon/book/manual/supermatter_engine,
@@ -27557,7 +27592,7 @@ atO
aJm
alL
aRb
-aCc
+aei
aQa
aSa
bft
@@ -27699,7 +27734,7 @@ aSC
bds
aLA
agc
-aYH
+aCc
aRV
bcp
bfv
@@ -28554,7 +28589,7 @@ aRb
aZg
aQl
aSu
-aTW
+aDi
vyI
aRb
bYj
@@ -30968,7 +31003,7 @@ aaV
aoJ
aoJ
aoJ
-aei
+aoJ
aac
afC
agX
@@ -33554,7 +33589,7 @@ aAt
awW
ahj
ail
-aBL
+aAv
auD
aat
aat
@@ -33679,10 +33714,10 @@ ail
auj
aBL
adj
-ait
+aiu
aun
auL
-avp
+auR
avb
awE
axq
@@ -33818,13 +33853,13 @@ acQ
aBG
aix
aBx
-aup
+ait
aut
ain
-aiu
+aup
auK
auN
-auR
+avp
avb
aBS
axy
diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm
index 87899de6b21..4e31f1159ea 100644
--- a/maps/tether/tether-06-station2.dmm
+++ b/maps/tether/tether-06-station2.dmm
@@ -7211,6 +7211,7 @@
/obj/item/clothing/mask/breath,
/obj/item/clothing/head/helmet/space/void/exploration,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/item/weapon/tank/jetpack/carbondioxide,
/turf/simulated/floor/tiled,
/area/tether/exploration/equipment)
"kE" = (
@@ -7241,6 +7242,7 @@
pixel_x = 0;
pixel_y = 26
},
+/obj/item/weapon/tank/jetpack/carbondioxide,
/turf/simulated/floor/tiled,
/area/tether/exploration/equipment)
"kF" = (
@@ -7398,6 +7400,7 @@
pixel_x = 0;
pixel_y = 26
},
+/obj/item/weapon/tank/jetpack/carbondioxide,
/turf/simulated/floor/tiled,
/area/tether/exploration/equipment)
"kS" = (
@@ -8574,6 +8577,7 @@
/obj/item/clothing/suit/space/void/exploration,
/obj/item/clothing/mask/breath,
/obj/item/clothing/head/helmet/space/void/exploration,
+/obj/item/weapon/tank/jetpack/carbondioxide,
/turf/simulated/floor/tiled,
/area/tether/exploration/pathfinder_office)
"mA" = (
@@ -37303,7 +37307,7 @@ DL
pS
ac
ac
-ac
+aa
aa
oY
Ei
diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm
index b118e65e6a3..cf9a5e52ee4 100644
--- a/maps/tether/tether-07-station3.dmm
+++ b/maps/tether/tether-07-station3.dmm
@@ -17487,10 +17487,10 @@
/turf/simulated/floor/plating,
/area/quartermaster/storage)
"AY" = (
-/turf/space,
-/area/supply/station{
- dynamic_lighting = 0
- })
+/obj/structure/shuttle/engine/propulsion,
+/turf/simulated/floor/reinforced,
+/turf/simulated/shuttle/plating/airless/carry,
+/area/shuttle/excursion/tether)
"AZ" = (
/obj/structure/table/glass,
/obj/item/weapon/storage/firstaid/regular,
@@ -27076,15 +27076,15 @@
/area/medical/virology)
"Qp" = (
/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion_l"
+ dir = 8
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/large_escape_pod1/station)
"Qq" = (
/obj/structure/shuttle/engine/propulsion{
- dir = 8
+ dir = 8;
+ icon_state = "propulsion_r"
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
@@ -27125,14 +27125,6 @@
"Qt" = (
/turf/simulated/wall,
/area/tether/exploration)
-"Qu" = (
-/obj/structure/shuttle/engine/propulsion{
- dir = 8;
- icon_state = "propulsion_r"
- },
-/turf/space,
-/turf/simulated/shuttle/plating/airless/carry,
-/area/shuttle/large_escape_pod1/station)
"Qw" = (
/obj/effect/floor_decal/techfloor{
dir = 8
@@ -39325,11 +39317,11 @@ MK
Iy
ab
NL
+PA
+Qp
+Qp
Qp
Qq
-Qq
-Qq
-Qu
NL
vt
vt
@@ -44411,17 +44403,17 @@ vt
vt
vt
vt
-AY
-AY
CS
CS
CS
CS
CS
CS
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
ae
ae
aa
@@ -44553,18 +44545,18 @@ aa
aa
aa
ae
-AY
-AY
CS
CS
CS
CS
CS
CS
-AY
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
+CS
ae
aa
aa
@@ -44695,18 +44687,18 @@ aa
aa
aa
ae
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
ae
aa
aa
@@ -44837,18 +44829,18 @@ aa
aa
aa
ae
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
ae
aa
aa
@@ -44979,18 +44971,18 @@ aa
aa
aa
aa
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
ae
aa
aa
@@ -45121,18 +45113,18 @@ aa
aa
aa
aa
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
ae
aa
aa
@@ -45263,17 +45255,17 @@ aa
aa
aa
aa
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
-AY
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
+CS
ae
ae
aa
diff --git a/maps/tether/tether-10-colony.dmm b/maps/tether/tether-10-colony.dmm
index 72a98d808f0..fef4bbd4c8c 100644
--- a/maps/tether/tether-10-colony.dmm
+++ b/maps/tether/tether-10-colony.dmm
@@ -25816,6 +25816,8 @@
},
/obj/item/slime_extract/pink,
/obj/item/slime_extract/pink,
+/obj/item/weapon/deadringer,
+/obj/item/weapon/deadringer,
/turf/simulated/floor/tiled/techmaint,
/area/mothership/vault)
"XY" = (
diff --git a/nano/templates/pda.tmpl b/nano/templates/pda.tmpl
index d5647310ce7..bda35dca5b0 100644
--- a/nano/templates/pda.tmpl
+++ b/nano/templates/pda.tmpl
@@ -348,7 +348,8 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm