diff --git a/.github/workflows/changelog_generation.yml b/.github/workflows/changelog_generation.yml index 36dccbf9e66..f5a79a52a19 100644 --- a/.github/workflows/changelog_generation.yml +++ b/.github/workflows/changelog_generation.yml @@ -11,13 +11,13 @@ jobs: if: github.repository == 'NebulaSS13/Nebula' # to prevent this running on forks steps: - name: Checkout - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + uses: actions/checkout@v3 with: fetch-depth: 0 # Otherwise, we will fail to push refs ref: dev token: ${{ secrets.BOT_TOKEN }} - name: Python setup - uses: actions/setup-python@3105fb18c05ddd93efea5f9e0bef7a03a6e9e7df + uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install depends diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index ea7386f69a2..e0ee0b12d0c 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -15,9 +15,9 @@ jobs: runs-on: ubuntu-latest concurrency: gen-docs steps: - - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + - uses: actions/checkout@v3 - name: Setup Cache - uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 + uses: actions/cache@v3 with: path: $HOME/spaceman_dmm/$SPACEMAN_DMM_VERSION key: ${{ runner.os }}-spacemandmm-${{ env.SPACEMAN_DMM_VERSION }} @@ -28,7 +28,7 @@ jobs: ~/dmdoc touch dmdoc/.nojekyll - name: Deploy - uses: JamesIves/github-pages-deploy-action@da91e735be5cabb471a4b8afe367d10606da4683 + uses: JamesIves/github-pages-deploy-action@3.7.1 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages-dmdoc diff --git a/.github/workflows/make_changelogs.yml b/.github/workflows/make_changelogs.yml index dd4ebbc4096..b6057154e28 100644 --- a/.github/workflows/make_changelogs.yml +++ b/.github/workflows/make_changelogs.yml @@ -12,11 +12,11 @@ jobs: if: github.repository == 'NebulaSS13/Nebula' # to prevent this running on forks steps: - name: Checkout - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + uses: actions/checkout@v3 with: fetch-depth: 25 - name: Python setup - uses: actions/setup-python@3105fb18c05ddd93efea5f9e0bef7a03a6e9e7df + uses: actions/setup-python@v4 with: python-version: '3.x' - name: Install depends diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 434ef0c0587..a6b75c422d2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,9 +22,9 @@ jobs: DreamChecker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + - uses: actions/checkout@v3 - name: Setup Cache - uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 + uses: actions/cache@v3 with: path: $HOME/spaceman_dmm/$SPACEMAN_DMM_VERSION key: ${{ runner.os }}-spacemandmm-${{ env.SPACEMAN_DMM_VERSION }} @@ -35,7 +35,7 @@ jobs: set -o pipefail ~/dreamchecker 2>&1 | tee ${GITHUB_WORKSPACE}/output-annotations.txt - name: Annotate Lints - uses: yogstation13/DreamAnnotate@34029606cd7c22a08a589e084f860c1cc287363c + uses: yogstation13/DreamAnnotate@v2 if: always() with: outputFile: output-annotations.txt @@ -53,9 +53,9 @@ jobs: Code: runs-on: ubuntu-latest steps: - - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + - uses: actions/checkout@v3 - name: Setup Cache - uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 + uses: actions/cache@v3 with: path: $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} @@ -82,9 +82,9 @@ jobs: matrix: map_path: [example, tradeship, nexus, exodus, ministation, away_sites_testing, modpack_testing, outreach, kleibkhar] steps: - - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f + - uses: actions/checkout@v3 - name: Setup Cache - uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 + uses: actions/cache@v3 with: path: $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR} key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }} diff --git a/code/__datastructures/priority_queue.dm b/code/__datastructures/priority_queue.dm index 380db428fd2..8625b858015 100644 --- a/code/__datastructures/priority_queue.dm +++ b/code/__datastructures/priority_queue.dm @@ -1,63 +1,68 @@ +/// An automatically ordered list, using the cmp proc to weight the list items +/datum/priority_queue + /// The actual queue + var/list/L + /// The weight function used to order the queue + var/cmp -////////////////////// -//PriorityQueue object -////////////////////// - -//an ordered list, using the cmp proc to weight the list elements -/PriorityQueue - var/list/L //the actual queue - var/cmp //the weight function used to order the queue - -/PriorityQueue/New(compare) +/// Takes a proc `comparer` that will be used to compare the items inserted +/// * Param `comparer` take two arguments and return the difference in their weight +/// * For example: /proc/CompareItems(atom/A, atom/B) return A.size - B.size +/datum/priority_queue/New(comparer) L = new() - cmp = compare + cmp = comparer -/PriorityQueue/proc/IsEmpty() +/// * Returns: `TRUE` if the queue is empty, otherwise `FALSE` +/datum/priority_queue/proc/IsEmpty() return !L.len -//add an element in the list, -//immediatly ordering it to its position using dichotomic search -/PriorityQueue/proc/Enqueue(atom/A) - ADD_SORTED(L, A, cmp) +/// Add an `item` to the list, immediatly ordering it to its position using dichotomic search +/datum/priority_queue/proc/Enqueue(item) + ADD_SORTED(L, item, cmp) -//removes and returns the first element in the queue -/PriorityQueue/proc/Dequeue() +/// Removes and returns the first item in the queue +/// * Returns: The first `item` in the queue, otherwise `FALSE` +/datum/priority_queue/proc/Dequeue() if(!L.len) - return 0 + return FALSE . = L[1] Remove(.) -//removes an element -/PriorityQueue/proc/Remove(atom/A) - . = L.Remove(A) +/// Removes an `item` from the list +/// * Returns: `TRUE` if succesfully removed, otherwise `FALSE` +/datum/priority_queue/proc/Remove(item) + . = L.Remove(item) -//returns a copy of the elements list -/PriorityQueue/proc/List() +/// * Returns: A copy of the item list +/datum/priority_queue/proc/List() . = L.Copy() -//return the position of an element or 0 if not found -/PriorityQueue/proc/Seek(atom/A) - . = L.Find(A) +/// Finds an `item` in the list +/// * Returns: The position of the `item`, or `0` if not found +/datum/priority_queue/proc/Seek(item) + . = L.Find(item) -//return the element at the i_th position -/PriorityQueue/proc/Get(i) - if(i > L.len || i < 1) +/// Gets the item at the positon `index` +/// * Returns: The `item` at the index, or `0` if outside the range of the queue +/datum/priority_queue/proc/Get(index) + if(index > L.len || index < 1) return 0 - return L[i] + return L[index] -//return the length of the queue -/PriorityQueue/proc/Length() +/// * Returns: The length of the queue +/datum/priority_queue/proc/Length() . = L.len -//replace the passed element at it's right position using the cmp proc -/PriorityQueue/proc/ReSort(atom/A) - var/i = Seek(A) +/// Resorts the `item` to it's correct position in the queue. +/// * For example: The queue is sorted based on weight and atom A changes weight after being added +/datum/priority_queue/proc/ReSort(item) + var/i = Seek(item) if(i == 0) return while(i < L.len && call(cmp)(L[i],L[i+1]) > 0) L.Swap(i,i+1) i++ - while(i > 1 && call(cmp)(L[i],L[i-1]) <= 0) //last inserted element being first in case of ties (optimization) + while(i > 1 && call(cmp)(L[i],L[i-1]) <= 0) // Last inserted element being first in case of ties (optimization) L.Swap(i,i-1) i-- diff --git a/code/__defines/atmos.dm b/code/__defines/atmos.dm index 3872d214b27..f4e47fd1f16 100644 --- a/code/__defines/atmos.dm +++ b/code/__defines/atmos.dm @@ -21,7 +21,7 @@ #define SOUND_MINIMUM_PRESSURE 10 #define PRESSURE_DAMAGE_COEFFICIENT 4 // The amount of pressure damage someone takes is equal to (pressure / HAZARD_HIGH_PRESSURE)*PRESSURE_DAMAGE_COEFFICIENT, with the maximum of MAX_PRESSURE_DAMAGE. -#define MAX_HIGH_PRESSURE_DAMAGE 4 // This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( +#define MAX_HIGH_PRESSURE_DAMAGE 4 // Caps the amount of pressure damage taken in one tick from a high pressure area. #define LOW_PRESSURE_DAMAGE 0.6 // The amount of damage someone takes when in a low pressure area. (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). #define MINIMUM_PRESSURE_DIFFERENCE_TO_SUSPEND (MINIMUM_AIR_TO_SUSPEND*R_IDEAL_GAS_EQUATION*T20C)/CELL_VOLUME // Minimum pressure difference between zones to suspend diff --git a/code/__defines/flags.dm b/code/__defines/flags.dm index 2e2a738150d..950e4dc9af1 100644 --- a/code/__defines/flags.dm +++ b/code/__defines/flags.dm @@ -53,7 +53,7 @@ The latter will result in a linter warning and will not work correctly. // Movable-level flags (/atom/movable/movable_flags) #define MOVABLE_FLAG_PROXMOVE BITFLAG(0) // Does this object require proximity checking in Enter()? #define MOVABLE_FLAG_Z_INTERACT BITFLAG(1) // Should attackby and attack_hand be relayed through ladders and open spaces? -#define MOVABLE_FLAG_EFFECTMOVE BITFLAG(2) // Is this an effect that should move? +#define MOVABLE_FLAG_ALWAYS_SHUTTLEMOVE BITFLAG(2) // Is this an effect that should move? #define MOVABLE_FLAG_DEL_SHUTTLE BITFLAG(3) // Shuttle transistion will delete this. #define MOVABLE_FLAG_WHEELED BITFLAG(4) // Movable has reduced stamina cost/speed reduction when pulled. diff --git a/code/__defines/holomap.dm b/code/__defines/holomap.dm new file mode 100644 index 00000000000..76517fb8f11 --- /dev/null +++ b/code/__defines/holomap.dm @@ -0,0 +1,37 @@ +// +// Constants and standard colors for the holomap +// + +#define HOLOMAP_ICON 'icons/480x480.dmi' // Icon file to start with when drawing holomaps (to get a 480x480 canvas). +#define HOLOMAP_ICON_SIZE 480 // Pixel width & height of the holomap icon. Used for auto-centering etc. +#define HOLOMAP_MARGIN 100 // minimum marging on sides when combining maps +#define UI_HOLOMAP "CENTER-7, CENTER-7" // Screen location of the holomap "hud" + +// Holomap colors +#define COLOR_HOLOMAP_OBSTACLE "#ffffffdd" // Color of walls and barriers +#define COLOR_HOLOMAP_PATH "#66666699" // Color of floors +#define COLOR_HOLOMAP_HOLOFIER "#79ff79" // Whole map is multiplied by this to give it a green holoish look + +#define HOLOMAP_AREACOLOR_BASE "#ffffffff" +#define HOLOMAP_AREACOLOR_COMMAND "#386d8099" +#define HOLOMAP_AREACOLOR_SECURITY "#ae121299" +#define HOLOMAP_AREACOLOR_MEDICAL "#ffffffa5" +#define HOLOMAP_AREACOLOR_SCIENCE "#f45dff99" +#define HOLOMAP_AREACOLOR_EXPLORATION "#a154a699" +#define HOLOMAP_AREACOLOR_ENGINEERING "#f1c23199" +#define HOLOMAP_AREACOLOR_CARGO "#e06f0099" +#define HOLOMAP_AREACOLOR_HALLWAYS "#ffffff66" +#define HOLOMAP_AREACOLOR_AIRLOCK "#0000ffcc" +#define HOLOMAP_AREACOLOR_ESCAPE "#ff0000cc" +#define HOLOMAP_AREACOLOR_CREW "#5bc1c199" +#define HOLOMAP_AREACOLOR_MAINTENANCE "#9c895066" +// If someone can come up with a non-conflicting color for the lifts, please update this. +#define HOLOMAP_AREACOLOR_LIFTS null + +// Handy defines to lookup the pixel offsets for holomap +// Currently set to 0, left here in case of need for per map offsets +#define HOLOMAP_PIXEL_OFFSET_X (0) +#define HOLOMAP_PIXEL_OFFSET_Y (0) + +#define HOLOMAP_LEGEND_X 96 +#define HOLOMAP_LEGEND_Y 156 \ No newline at end of file diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index 56cade96b67..bff34bc69d7 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -27,13 +27,14 @@ #define HIDETAIL BITFLAG(4) // WARNING: The following flags apply only to the helmets and masks! -#define HIDEMASK BITFLAG(0) -#define HIDEEARS BITFLAG(1) // Headsets and such. -#define HIDEEYES BITFLAG(2) // Glasses. -#define HIDEFACE BITFLAG(3) // Dictates whether we appear as "Unknown". -#define BLOCK_HEAD_HAIR BITFLAG(4) // Hides the user's hair overlay, and replace it with short hairs. Leaves facial hair. -#define BLOCK_FACIAL_HAIR BITFLAG(5) // Hides the user's hair, facial and otherwise. +#define HIDEMASK BITFLAG(5) +#define HIDEEARS BITFLAG(6) // Headsets and such. +#define HIDEEYES BITFLAG(7) // Glasses. +#define HIDEFACE BITFLAG(8) // Dictates whether we appear as "Unknown". +#define BLOCK_HEAD_HAIR BITFLAG(9) // Hides the user's hair overlay, and replace it with short hairs. Leaves facial hair. +#define BLOCK_FACIAL_HAIR BITFLAG(10) // Hides the user's hair, facial and otherwise. #define BLOCK_ALL_HAIR (BLOCK_HEAD_HAIR | BLOCK_FACIAL_HAIR) +#define EQUIPMENT_VISIBILITY_FLAGS (HIDEGLOVES|HIDESUITSTORAGE|HIDEJUMPSUIT|HIDESHOES|HIDEMASK|HIDEEYES|HIDEEARS|HIDEFACE) // Inventory slot strings. // since numbers cannot be used as associative list keys. @@ -176,18 +177,21 @@ #define HUD_JANITOR BITFLAG(3) // Limbs. -#define BP_L_FOOT "l_foot" -#define BP_R_FOOT "r_foot" -#define BP_L_LEG "l_leg" -#define BP_R_LEG "r_leg" -#define BP_L_HAND "l_hand" -#define BP_R_HAND "r_hand" -#define BP_L_ARM "l_arm" -#define BP_R_ARM "r_arm" -#define BP_HEAD "head" -#define BP_CHEST "chest" -#define BP_GROIN "groin" -#define BP_TAIL "tail" +#define BP_L_FOOT "l_foot" +#define BP_R_FOOT "r_foot" +#define BP_L_LEG "l_leg" +#define BP_R_LEG "r_leg" +#define BP_L_HAND "l_hand" +#define BP_R_HAND "r_hand" +#define BP_L_ARM "l_arm" +#define BP_R_ARM "r_arm" +#define BP_HEAD "head" +#define BP_CHEST "chest" +#define BP_GROIN "groin" +#define BP_TAIL "tail" + +// Other inventory-related slots (also organs). +#define BP_MOUTH "mouth" var/global/list/all_limb_tags = list(BP_CHEST, BP_GROIN, BP_TAIL, BP_HEAD, BP_L_ARM, BP_R_ARM, BP_L_HAND, BP_R_HAND, BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT) var/global/list/all_limb_tags_by_depth = list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TAIL, BP_CHEST) @@ -197,25 +201,26 @@ var/global/list/default_onmob_icons = list( BP_R_HAND = 'icons/mob/onmob/items/righthand.dmi' ) +// This list should be sorted by display priority/order for mob examine to look nice. var/global/list/all_inventory_slots = list( - slot_back_str, BP_L_HAND, BP_R_HAND, + BP_MOUTH, slot_w_uniform_str, slot_head_str, slot_wear_suit_str, - slot_l_ear_str, - slot_r_ear_str, + slot_s_store_str, + slot_back_str, + slot_gloves_str, slot_belt_str, slot_shoes_str, slot_wear_mask_str, - slot_handcuffed_str, - slot_wear_id_str, - slot_gloves_str, slot_glasses_str, - slot_s_store_str, + slot_l_ear_str, + slot_r_ear_str, + slot_wear_id_str, + slot_handcuffed_str, slot_tie_str, slot_l_store_str, slot_r_store_str ) - diff --git a/code/__defines/level_data.dm b/code/__defines/level_data.dm new file mode 100644 index 00000000000..31d2e1cbe82 --- /dev/null +++ b/code/__defines/level_data.dm @@ -0,0 +1,7 @@ +#define ZLEVEL_STATION BITFLAG(0) +#define ZLEVEL_ADMIN BITFLAG(1) +#define ZLEVEL_CONTACT BITFLAG(2) +#define ZLEVEL_PLAYER BITFLAG(3) +#define ZLEVEL_SEALED BITFLAG(4) +#define ZLEVEL_SAVED BITFLAG(5) +#define ZLEVEL_MINING BITFLAG(6) \ No newline at end of file diff --git a/code/__defines/mapping.dm b/code/__defines/mapping.dm index 984868d134c..5cf7407fb5e 100644 --- a/code/__defines/mapping.dm +++ b/code/__defines/mapping.dm @@ -1,3 +1,5 @@ +#define LEVELS_ARE_Z_CONNECTED(ZA, ZB) ((ZA > 0 && ZB > 0 && ZA <= world.maxz && ZB <= world.maxz) && ((ZA == ZB) || ((length(SSmapping.connected_z_cache) >= ZA && SSmapping.connected_z_cache[ZA] && length(SSmapping.connected_z_cache[ZA]) >= ZB) ? SSmapping.connected_z_cache[ZA][ZB] : SSmapping.are_connected_levels(ZA, ZB)))) + // Maploader bounds indices #define MAP_MINX 1 #define MAP_MINY 2 diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index bac4ed8b814..07f7005f433 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -3,6 +3,9 @@ #define TURF_FLAG_NOJAUNT BITFLAG(0) // This is used in literally one place, turf.dm, to block ethereal jaunt. #define TURF_FLAG_NORUINS BITFLAG(1) // Used by the ruin generator to skip placing loaded ruins on this turf. #define TURF_FLAG_BACKGROUND BITFLAG(2) // Used by shuttle movement to determine if it should be ignored by turf translation. +#define TURF_IS_HOLOMAP_OBSTACLE BITFLAG(3) +#define TURF_IS_HOLOMAP_PATH BITFLAG(4) +#define TURF_IS_HOLOMAP_ROCK BITFLAG(5) #define TRANSITIONEDGE 7 // Distance from edge to move to another z-level. #define RUIN_MAP_EDGE_PAD 15 @@ -86,6 +89,7 @@ #define AREA_FLAG_PRISON BITFLAG(9) // Area is a prison for the purposes of brigging objectives. #define AREA_FLAG_HOLY BITFLAG(10) // Area is holy for the purposes of marking turfs as cult-resistant. #define AREA_FLAG_SECURITY BITFLAG(11) // Area is security for the purposes of newscaster init. +#define AREA_FLAG_HIDE_FROM_HOLOMAP BITFLAG(12) // if we shouldn't be drawn on station holomaps //Map template flags #define TEMPLATE_FLAG_ALLOW_DUPLICATES BITFLAG(0) // Lets multiple copies of the template to be spawned @@ -238,9 +242,6 @@ #define SOULSTONE_EMPTY 0 #define SOULSTONE_ESSENCE 1 -#define INCREMENT_WORLD_Z_SIZE world.maxz++; global.connected_z_cache.Cut(); if (SSzcopy.zlev_maximums.len) { SSzcopy.calculate_zstack_limits() } -#define ARE_Z_CONNECTED(ZA, ZB) (ZA > 0 && ZB > 0 && ZA <= world.maxz && ZB <= world.maxz && ((ZA == ZB) || ((length(global.connected_z_cache) >= ZA && global.connected_z_cache[ZA] && length(global.connected_z_cache[ZA]) >= ZB) ? global.connected_z_cache[ZA][ZB] : AreConnectedZLevels(ZA, ZB)))) - //Request Console Department Types #define RC_ASSIST 1 //Request Assistance #define RC_SUPPLY 2 //Request Supplies diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 33289c36e45..b51f860e251 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -158,7 +158,6 @@ #define INCAPACITATION_ALL (~INCAPACITATION_NONE) // Organs. -#define BP_MOUTH "mouth" #define BP_EYES "eyes" #define BP_HEART "heart" #define BP_LUNGS "lungs" diff --git a/code/__defines/radio.dm b/code/__defines/radio.dm new file mode 100644 index 00000000000..1fec306b409 --- /dev/null +++ b/code/__defines/radio.dm @@ -0,0 +1,7 @@ +#define MESSAGE_MODE_LEFT "left" +#define MESSAGE_MODE_RIGHT "right" +#define MESSAGE_MODE_INTERCOM "intercom" +#define MESSAGE_MODE_DEFAULT "default" +#define MESSAGE_MODE_WHISPER "whisper" +#define MESSAGE_MODE_DEPARTMENT "department" +#define MESSAGE_MODE_SPECIAL "special" \ No newline at end of file diff --git a/code/__defines/subsystems.dm b/code/__defines/subsystems.dm index 66233d9a88d..2828c1d5c4b 100644 --- a/code/__defines/subsystems.dm +++ b/code/__defines/subsystems.dm @@ -52,12 +52,12 @@ #define SS_INIT_LIGHTING -6 #define SS_INIT_WEATHER -7 #define SS_INIT_ZCOPY -8 +#define SS_INIT_HOLOMAP -9 #define SS_INIT_XENOARCH -10 #define SS_INIT_TICKER -20 #define SS_INIT_UNIT_TESTS -100 // SS runlevels - #define RUNLEVEL_INIT 0 #define RUNLEVEL_LOBBY 1 #define RUNLEVEL_SETUP 2 diff --git a/code/__defines/turfs.dm b/code/__defines/turfs.dm index a710b7d0e2b..450199ca4e5 100644 --- a/code/__defines/turfs.dm +++ b/code/__defines/turfs.dm @@ -19,6 +19,7 @@ #define SMOOTH_BLACKLIST 3 //Smooth with all but a blacklist of subtypes #define RANGE_TURFS(CENTER, RADIUS) block(locate(max(CENTER.x-(RADIUS), 1), max(CENTER.y-(RADIUS),1), CENTER.z), locate(min(CENTER.x+(RADIUS), world.maxx), min(CENTER.y+(RADIUS), world.maxy), CENTER.z)) +#define BLOCK_TURFS(X1, Y1, X2, Y2, Z) block(locate(X1, Y1, Z), locate(X2, Y2, Z)) #define EXT_LAYER_CONSTANT 0.001 #define EXT_EDGE_OCEAN (10 * EXT_LAYER_CONSTANT) diff --git a/code/_global_vars/lists/clothing.dm b/code/_global_vars/lists/clothing.dm index b0582b896ef..412d83e527c 100644 --- a/code/_global_vars/lists/clothing.dm +++ b/code/_global_vars/lists/clothing.dm @@ -41,11 +41,31 @@ var/global/list/equipped_slots = list( slot_w_uniform_str ) +//The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. +var/global/list/slot_equipment_priority = list( + slot_back_str, + slot_wear_id_str, + slot_w_uniform_str, + slot_wear_suit_str, + slot_wear_mask_str, + slot_head_str, + slot_shoes_str, + slot_gloves_str, + slot_l_ear_str, + slot_r_ear_str, + slot_glasses_str, + slot_belt_str, + slot_s_store_str, + slot_tie_str, + slot_l_store_str, + slot_r_store_str +) + var/global/list/carried_slots = list( slot_l_store_str, slot_r_store_str, slot_handcuffed_str, - slot_s_store_str + slot_s_store_str ) var/global/list/persistent_inventory_slots = list( @@ -67,4 +87,4 @@ var/global/list/hidden_inventory_slots = list( slot_w_uniform_str, slot_wear_suit_str, slot_wear_mask_str -) \ No newline at end of file +) diff --git a/code/_helpers/animations.dm b/code/_helpers/animations.dm index c3ba7d48996..65932553d9a 100644 --- a/code/_helpers/animations.dm +++ b/code/_helpers/animations.dm @@ -67,4 +67,35 @@ // And animate the attack! animate(I, alpha = 175, transform = matrix() * 0.75, pixel_x = 0, pixel_y = 0, pixel_z = 0, time = 3) animate(time = 1) - animate(alpha = 0, time = 3, easing = CIRCULAR_EASING|EASE_OUT) \ No newline at end of file + animate(alpha = 0, time = 3, easing = CIRCULAR_EASING|EASE_OUT) + +/atom/proc/shake_animation(var/intensity = 8) + var/init_px = pixel_x + var/shake_dir = pick(-1, 1) + animate(src, transform=turn(matrix(), intensity*shake_dir), pixel_x=init_px + 2*shake_dir, time=1) + animate(transform=null, pixel_x=init_px, time=6, easing=ELASTIC_EASING) + +/atom/proc/SpinAnimation(speed = 10, loops = -1, clockwise = 1, segments = 3, parallel = TRUE) + if(!segments) + return + var/segment = 360/segments + if(!clockwise) + segment = -segment + var/list/matrices = list() + for(var/i in 1 to segments-1) + var/matrix/M = matrix(transform) + M.Turn(segment*i) + matrices += M + var/matrix/last = matrix(transform) + matrices += last + + speed /= segments + + if(parallel) + animate(src, transform = matrices[1], time = speed, loops , flags = ANIMATION_PARALLEL) + else + animate(src, transform = matrices[1], time = speed, loops) + for(var/i in 2 to segments) //2 because 1 is covered above + animate(transform = matrices[i], time = speed) + //doesn't have an object argument because this is "Stacking" with the animate call above + //3 billion% intentional \ No newline at end of file diff --git a/code/_helpers/areas.dm b/code/_helpers/areas.dm index f6208274336..b252f96b537 100644 --- a/code/_helpers/areas.dm +++ b/code/_helpers/areas.dm @@ -69,7 +69,7 @@ /proc/pick_area_turf_in_connected_z_levels(var/list/area_predicates, var/list/turf_predicates, var/z_level) area_predicates = area_predicates.Copy() - var/z_levels = GetConnectedZlevels(z_level) + var/z_levels = SSmapping.get_connected_levels(z_level) area_predicates[/proc/area_belongs_to_zlevels] = z_levels return pick_area_and_turf(area_predicates, turf_predicates) diff --git a/code/_helpers/atom_movables.dm b/code/_helpers/atom_movables.dm index 3d47bd768f1..87ed5bc08a1 100644 --- a/code/_helpers/atom_movables.dm +++ b/code/_helpers/atom_movables.dm @@ -28,12 +28,13 @@ return locate(final_x, final_y, T.z) /atom/movable/proc/throw_at_random(var/include_own_turf, var/maxrange, var/speed) - var/list/turfs = RANGE_TURFS(src, maxrange) + var/turf/own_turf = get_turf(src) + var/list/turfs = RANGE_TURFS(own_turf, maxrange) if(!maxrange) maxrange = 1 if(!include_own_turf) - turfs -= get_turf(src) + turfs -= own_turf src.throw_at(pick(turfs), maxrange, speed) /atom/movable/proc/do_simple_ranged_interaction(var/mob/user) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index c704ab64ca6..804e79275d7 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -51,28 +51,28 @@ // These are procs rather than macros so they can be used as predicates, I think(?) /proc/isSealedLevel(var/level) - return level in global.using_map.sealed_levels + return level in SSmapping.sealed_levels /proc/isMapLevel(var/level) - return level in global.using_map.map_levels + return level in SSmapping.map_levels /proc/isStationLevel(var/level) - return level in global.using_map.station_levels + return level in SSmapping.station_levels /proc/isNotStationLevel(var/level) return !isStationLevel(level) /proc/isPlayerLevel(var/level) - return level in global.using_map.player_levels + return level in SSmapping.player_levels /proc/isAdminLevel(var/level) - return level in global.using_map.admin_levels + return level in SSmapping.admin_levels /proc/isNotAdminLevel(var/level) return !isAdminLevel(level) /proc/isContactLevel(var/level) - return level in global.using_map.contact_levels + return level in SSmapping.contact_levels /proc/circlerange(center=usr,radius=3) diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index 94a4bc41388..b67971ebb86 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -197,7 +197,7 @@ var/global/log_end= world.system_type == UNIX ? ascii2text(13) : "" return "[..()] ([isnum(z) ? "[x],[y],[z]" : "0,0,0"])" /turf/get_log_info_line() - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(z)] if(istype(O)) return "[..()] ([x],[y],[z] - [O.name]) ([loc ? loc.type : "NULL"])" else @@ -206,7 +206,7 @@ var/global/log_end= world.system_type == UNIX ? ascii2text(13) : "" /atom/movable/get_log_info_line() var/turf/t = get_turf(src) if(t) - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[t.z]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(t.z)] if(istype(O)) return "[..()] ([t]) ([t.x],[t.y],[t.z] - [O.name]) ([t.type])" return "[..()] ([t]) ([t.x],[t.y],[t.z]) ([t.type])" diff --git a/code/_helpers/matrices.dm b/code/_helpers/matrices.dm index c211ec41a1c..7eaf04da437 100644 --- a/code/_helpers/matrices.dm +++ b/code/_helpers/matrices.dm @@ -1,121 +1,208 @@ +// Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1. +#define LUMA_R 0.213 +#define LUMA_G 0.715 +#define LUMA_B 0.072 + +/// Datum which stores information about a matrix decomposed with decompose(). +/datum/decompose_matrix + var/scale_x = 1 + var/scale_y = 1 + var/rotation = 0 + var/shift_x = 0 + var/shift_y = 0 + + +/// Decomposes a matrix into scale, shift and rotation. +/// * If other operations were applied on the matrix, such as shearing, the result will not be precise. +/matrix/proc/decompose() + var/datum/decompose_matrix/decompose_matrix = new + . = decompose_matrix + var/flip_sign = (a*e - b*d < 0)? -1 : 1 // Det < 0 => only 1 axis is flipped - start doing some sign flipping + // If both axis are flipped, nothing bad happens and Det >= 0, it just treats it like a 180° rotation + // If only 1 axis is flipped, we need to flip one direction - in this case X, so we flip a, b and the x scaling + decompose_matrix.scale_x = sqrt(a * a + d * d) * flip_sign + decompose_matrix.scale_y = sqrt(b * b + e * e) + decompose_matrix.shift_x = c + decompose_matrix.shift_y = f + if(!decompose_matrix.scale_x || !decompose_matrix.scale_y) + return + // If only translated, scaled and rotated, a/xs == e/ys and -d/xs == b/xy + var/cossine = (a/decompose_matrix.scale_x + e/decompose_matrix.scale_y) / 2 + var/sine = (b/decompose_matrix.scale_y - d/decompose_matrix.scale_x) / 2 * flip_sign + decompose_matrix.rotation = arctan(cossine, sine) * flip_sign + + /matrix/proc/TurnTo(old_angle, new_angle) . = new_angle - old_angle Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT -/atom/proc/SpinAnimation(speed = 10, loops = -1) - var/matrix/m120 = matrix(transform) - m120.Turn(120) - var/matrix/m240 = matrix(transform) - m240.Turn(240) - var/matrix/m360 = matrix(transform) - speed /= 3 //Gives us 3 equal time segments for our three turns. - //Why not one turn? Because byond will see that the start and finish are the same place and do nothing - //Why not two turns? Because byond will do a flip instead of a turn - animate(src, transform = m120, time = speed, loops) - animate(transform = m240, time = speed) - animate(transform = m360, time = speed) - -/atom/proc/shake_animation(var/intensity = 8) - var/init_px = pixel_x - var/shake_dir = pick(-1, 1) - animate(src, transform=turn(matrix(), intensity*shake_dir), pixel_x=init_px + 2*shake_dir, time=1) - animate(transform=null, pixel_x=init_px, time=6, easing=ELASTIC_EASING) - -//The X pixel offset of this matrix +/// Shear the transform on either or both axes. +/// * x - X axis shearing +/// * y - Y axis shearing +/matrix/proc/Shear(x, y) + return Multiply(matrix(1, x, 0, y, 1, 0)) + + +/// Dumps the matrix data in format a-f +/matrix/proc/tolist() + . = list() + . += a + . += b + . += c + . += d + . += e + . += f + +/// Dumps the matrix data in a matrix-grid format +/// * a d 0 +/// * b e 0 +/// * c f 1 +/matrix/proc/togrid() + . = list() + . += a + . += d + . += 0 + . += b + . += e + . += 0 + . += c + . += f + . += 1 + +/// The X pixel offset of this matrix /matrix/proc/get_x_shift() . = c -//The Y pixel offset of this matrix +/// The Y pixel offset of this matrix /matrix/proc/get_y_shift() . = f -// Color matrices: - -//Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1. -#define LUMR 0.2126 -#define LUMG 0.7152 -#define LUMB 0.0722 - -//Still need color matrix addition, negation, and multiplication. - -//Returns an identity color matrix which does nothing -/proc/color_identity() - return list(1,0,0, 0,1,0, 0,0,1) -//Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting whites -//TODO: Need a version that only affects one color (ie shift red to blue but leave greens and blues alone) -/proc/color_rotation(angle) - if(angle == 0) - return color_identity() - angle = clamp(angle, -180, 180) - var/cos = cos(angle) +/// Returns the matrix identity +/// * 1 0 0 0 +/// * 0 1 0 0 +/// * 0 0 1 0 +/// * 0 0 0 0 +/proc/color_matrix_identity() + return list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) + +/// Adds/subtracts overall lightness +/// * 0 is identity, 1 makes everything white, -1 makes everything black +/proc/color_matrix_lightness(power) + return list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, power,power,power,0) + +/// Changes distance hues have from grey while maintaining the overall lightness. Greys are unaffected. +/// * 1 is identity, 0 is greyscale, >1 oversaturates colors +/proc/color_matrix_saturation(value) + var/inv = 1 - value + var/R = round(LUMA_R * inv, 0.001) + var/G = round(LUMA_G * inv, 0.001) + var/B = round(LUMA_B * inv, 0.001) + + return list(R + value,R,R,0, G,G + value,G,0, B,B,B + value,0, 0,0,0,1, 0,0,0,0) + +/// Changes distance colors have from rgb(127,127,127) grey +/// * 1 is identity. 0 makes everything grey >1 blows out colors and greys +/proc/color_matrix_contrast(value) + var/add = (1 - value) / 2 + return list(value,0,0,0, 0,value,0,0, 0,0,value,0, 0,0,0,1, add,add,add,0) + +/// Moves all colors angle degrees around the color wheel while maintaining intensity of the color and not affecting greys +/// * 0 is identity, 120 moves reds to greens, 240 moves reds to blues +/proc/color_matrix_rotate_hue(angle) var/sin = sin(angle) - - var/constA = 0.143 - var/constB = 0.140 - var/constC = -0.283 + var/cos = cos(angle) + var/cos_inv_third = 0.333*(1-cos) + var/sqrt3_sin = sqrt(3)*sin return list( - LUMR + cos * (1-LUMR) + sin * -LUMR, LUMR + cos * -LUMR + sin * constA, LUMR + cos * -LUMR + sin * -(1-LUMR), - LUMG + cos * -LUMG + sin * -LUMG, LUMG + cos * (1-LUMG) + sin * constB, LUMG + cos * -LUMG + sin * LUMG, - LUMB + cos * -LUMB + sin * (1-LUMB), LUMB + cos * -LUMB + sin * constC, LUMB + cos * (1-LUMB) + sin * LUMB + round(cos+cos_inv_third, 0.001), round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), 0, + round(cos_inv_third-sqrt3_sin, 0.001), round(cos+cos_inv_third, 0.001), round(cos_inv_third+sqrt3_sin, 0.001), 0, + round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), round(cos+cos_inv_third, 0.001), 0, + 0,0,0,1, + 0,0,0,0 ) -//Makes everything brighter or darker without regard to existing color or brightness -/proc/color_brightness(power) - power = clamp(power, -255, 255) - power = power/255 - - return list(1,0,0, 0,1,0, 0,0,1, power,power,power) - -var/global/list/delta_index = list( - 0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, - 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.20, 0.21, 0.22, 0.24, - 0.25, 0.27, 0.28, 0.30, 0.32, 0.34, 0.36, 0.38, 0.40, 0.42, - 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, - 0.71, 0.74, 0.77, 0.80, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, - 1.0, 1.06, 1.12, 1.18, 1.24, 1.30, 1.36, 1.42, 1.48, 1.54, - 1.60, 1.66, 1.72, 1.78, 1.84, 1.90, 1.96, 2.0, 2.12, 2.25, - 2.37, 2.50, 2.62, 2.75, 2.87, 3.0, 3.2, 3.4, 3.6, 3.8, - 4.0, 4.3, 4.7, 4.9, 5.0, 5.5, 6.0, 6.5, 6.8, 7.0, - 7.3, 7.5, 7.8, 8.0, 8.4, 8.7, 9.0, 9.4, 9.6, 9.8, - 10.0) - -//Exxagerates or removes brightness -/proc/color_contrast(value) - value = clamp(value, -100, 100) - if(value == 0) - return color_identity() - - var/x = 0 - if (value < 0) - x = 127 + value / 100 * 127; - else - x = value % 1 - if(x == 0) - x = delta_index[value] +/// Rotates around the red axis +/proc/color_matrix_rotate_x(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(1,0,0,0, 0,cosval,sinval,0, 0,-sinval,cosval,0, 0,0,0,1, 0,0,0,0) + +/// Rotates around the green axis +/proc/color_matrix_rotate_y(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(cosval,0,-sinval,0, 0,1,0,0, sinval,0,cosval,0, 0,0,0,1, 0,0,0,0) + +/// Rotates around the blue axis +/proc/color_matrix_rotate_z(angle) + var/sinval = round(sin(angle), 0.001); var/cosval = round(cos(angle), 0.001) + return list(cosval,sinval,0,0, -sinval,cosval,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,0) + + +/// Returns a matrix addition of A with B +/proc/color_matrix_add(list/A, list/B) + if(!istype(A) || !istype(B)) + return color_matrix_identity() + if(A.len != 20 || B.len != 20) + return color_matrix_identity() + var/list/output = list() + output.len = 20 + for(var/value in 1 to 20) + output[value] = A[value] + B[value] + return output + +/// Returns a matrix multiplication of A with B +/proc/color_matrix_multiply(list/A, list/B) + if(!istype(A) || !istype(B)) + return color_matrix_identity() + if(A.len != 20 || B.len != 20) + return color_matrix_identity() + var/list/output = list() + output.len = 20 + var/x = 1 + var/y = 1 + var/offset = 0 + for(y in 1 to 5) + offset = (y-1)*4 + for(x in 1 to 4) + output[offset+x] = round(A[offset+1]*B[x] + A[offset+2]*B[x+4] + A[offset+3]*B[x+8] + A[offset+4]*B[x+12]+(y == 5?B[x+16]:0), 0.001) + return output + +/// Converts RGB shorthands into RGBA matrices complete of constants rows (ergo a 20 keys list in byond). +/proc/color_to_full_rgba_matrix(color) + if(istext(color)) + var/list/L = ReadRGB(color) + if(!L) + CRASH("Invalid/unsupported color format argument in color_to_full_rgba_matrix()") + return list(L[1]/255,0,0,0, 0,L[2]/255,0,0, 0,0,L[3]/255,0, 0,0,0,L.len>3?L[4]/255:1, 0,0,0,0) + else if(!islist(color)) //invalid format + return color_matrix_identity() + var/list/L = color + switch(L.len) + if(3 to 5) // row-by-row hexadecimals + . = list() + for(var/a in 1 to L.len) + var/list/rgb = ReadRGB(L[a]) + for(var/b in rgb) + . += b/255 + if(length(rgb) % 4) // RGB has no alpha instruction + . += a != 4 ? 0 : 1 + if(L.len < 4) //missing both alphas and constants rows + . += list(0,0,0,1, 0,0,0,0) + else if(L.len < 5) //missing constants row + . += list(0,0,0,0) + if(9 to 12) //RGB + . = list(L[1],L[2],L[3],0, L[4],L[5],L[6],0, L[7],L[8],L[9],0, 0,0,0,1) + for(var/b in 1 to 3) //missing constants row + . += L.len < 9+b ? 0 : L[9+b] + . += 0 + if(16 to 20) // RGBA + . = L.Copy() + if(L.len < 20) //missing constants row + for(var/b in 1 to 20-L.len) + . += 0 else - x = delta_index[value] * (1-x) + delta_index[value+1] * x//use linear interpolation for more granularity. - x = x * 127 + 127 - - var/mult = x / 127 - var/add = 0.5 * (127-x) / 255 - return list(mult,0,0, 0,mult,0, 0,0,mult, add,add,add) - -//Exxagerates or removes colors -/proc/color_saturation(value as num) - if(value == 0) - return color_identity() - value = clamp(value, -100, 100) - if(value > 0) - value *= 3 - var/x = 1 + value / 100 - var/inv = 1 - x - var/R = LUMR * inv - var/G = LUMG * inv - var/B = LUMB * inv - - return list(R + x,R,R, G,G + x,G, B,B,B + x) - -#undef LUMR -#undef LUMG -#undef LUMB \ No newline at end of file + CRASH("Invalid/unsupported color format argument in color_to_full_rgba_matrix()") + +#undef LUMA_R +#undef LUMA_G +#undef LUMA_B \ No newline at end of file diff --git a/code/_helpers/overmap.dm b/code/_helpers/overmap.dm index 67258663860..186d028083a 100644 --- a/code/_helpers/overmap.dm +++ b/code/_helpers/overmap.dm @@ -1,10 +1,3 @@ var/global/list/overmap_sectors = list() var/global/list/overmaps_by_name = list() var/global/list/overmaps_by_z = list() - -/proc/get_empty_zlevel(var/base_turf_type) - INCREMENT_WORLD_Z_SIZE - if(base_turf_type && base_turf_type != world.turf) - for(var/turf/T as anything in block(locate(1, 1, .),locate(world.maxx, world.maxy, .))) - T.ChangeTurf(base_turf_type) - return world.maxz diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 43aec53f30c..9894c4a2675 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -22,6 +22,12 @@ * Text sanitization */ +/** + * Strip out the special beyond characters for \proper and \improper + * from text that will be sent to the browser. + */ +#define strip_improper(input_text) replacetext(replacetext(input_text, "\proper", ""), "\improper", "") + //Used for preprocessing entered text //Added in an additional check to alert players if input is too long /proc/sanitize(input, max_length = MAX_MESSAGE_LEN, encode = TRUE, trim = TRUE, extra = TRUE, ascii_only = FALSE) @@ -35,6 +41,8 @@ return input = copytext_char(input, 1, max_length + 1) + input = strip_improper(input) + if(extra) input = replace_characters(input, list("\n"=" ","\t"=" ")) @@ -502,12 +510,6 @@ #define starts_with(string, substring) (copytext(string,1,1+length(substring)) == substring) -/** - * Strip out the special beyond characters for \proper and \improper - * from text that will be sent to the browser. - */ -#define strip_improper(input_text) replacetext(replacetext(input_text, "\proper", ""), "\improper", "") - /proc/pencode2html(t) t = replacetext(t, "\n", "
") t = replacetext(t, "\[center\]", "
") diff --git a/code/_helpers/turfs.dm b/code/_helpers/turfs.dm index e8f466e6179..385edc0c61f 100644 --- a/code/_helpers/turfs.dm +++ b/code/_helpers/turfs.dm @@ -133,7 +133,7 @@ var/supported = FALSE // Whether or not there's an object in the turf which can support other objects. if(is_background) new_turf = target - else + else new_turf = target.ChangeTurf(source.type, 1, 1) new_turf.transport_properties_from(source) new_turf.prev_type = target_type @@ -144,12 +144,8 @@ break for(var/obj/O in source) - if(O.simulated && (!is_background || supported || O.obj_flags & OBJ_FLAG_MOVES_UNSUPPORTED)) + if((O.movable_flags & MOVABLE_FLAG_ALWAYS_SHUTTLEMOVE) || (O.simulated && (!is_background || supported || (O.obj_flags & OBJ_FLAG_MOVES_UNSUPPORTED)))) O.forceMove(new_turf) - else if(istype(O,/obj/effect)) // This is used for non-game objects like spawnpoints, so ignore the background check. - var/obj/effect/E = O - if(E.movable_flags & MOVABLE_FLAG_EFFECTMOVE) - E.forceMove(new_turf) for(var/mob/M in source) if(is_background && !supported) @@ -160,5 +156,5 @@ if(is_background) return list(new_turf, source) - + return new_turf diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index d0b3fb80089..0a39a96585e 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -364,7 +364,7 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/get_valid_silicon_zs(z) if(z) - return GetConnectedZlevels(z) + return SSmapping.get_connected_levels(z) return list() //We return an empty list, because we are apparently in nullspace //Returns a list of all mobs with their name @@ -672,19 +672,23 @@ Turf and target are seperate in case you want to teleport some distance from a t /proc/parse_zone(zone) - if(zone == BP_R_HAND) return "right hand" - else if (zone == BP_L_HAND) return "left hand" - else if (zone == BP_L_ARM) return "left arm" - else if (zone == BP_R_ARM) return "right arm" - else if (zone == BP_L_LEG) return "left leg" - else if (zone == BP_R_LEG) return "right leg" - else if (zone == BP_L_FOOT) return "left foot" - else if (zone == BP_R_FOOT) return "right foot" - else if (zone == BP_L_HAND) return "left hand" - else if (zone == BP_R_HAND) return "right hand" - else if (zone == BP_L_FOOT) return "left foot" - else if (zone == BP_R_FOOT) return "right foot" - else return zone + var/static/list/zone_to_descriptor_mapping = list( + BP_R_HAND = "right hand", + BP_L_HAND = "left hand", + BP_L_ARM = "left arm", + BP_R_ARM = "right arm", + BP_L_LEG = "left leg", + BP_R_LEG = "right leg", + BP_L_FOOT = "left foot", + BP_R_FOOT = "right foot", + BP_L_HAND = "left hand", + BP_R_HAND = "right hand", + BP_L_FOOT = "left foot", + BP_R_FOOT = "right foot", + BP_MOUTH = "mouth", + BP_EYES = "eyes" + ) + return zone_to_descriptor_mapping[zone] || zone //Whether or not the given item counts as sharp in terms of dealing damage /proc/is_sharp(obj/O) diff --git a/code/_macros.dm b/code/_macros.dm index fcd6e78a2b7..c061b77bbf7 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -130,7 +130,7 @@ #define ARGS_DEBUG log_debug("[__FILE__] - [__LINE__]") ; for(var/arg in args) { log_debug("\t[log_info_line(arg)]") } -// Insert an object A into a sorted list using cmp_proc (/code/_helpers/cmp.dm) for comparison. +/// Insert an object A into a sorted list using cmp_proc (/code/_helpers/cmp.dm) for comparison. #define ADD_SORTED(list, A, cmp_proc) if(!list.len) {list.Add(A)} else {list.Insert(FindElementIndex(A, list, cmp_proc), A)} //Currently used in SDQL2 stuff diff --git a/code/_onclick/MouseDrag.dm b/code/_onclick/MouseDrag.dm index 4d971e86b69..daf6a09accb 100644 --- a/code/_onclick/MouseDrag.dm +++ b/code/_onclick/MouseDrag.dm @@ -1,9 +1,15 @@ //If we intercept it return true else return false -/atom/proc/RelayMouseDrag(atom/src_object, atom/over_object, src_location, over_location, src_control, over_control, params, var/mob/user) +/atom/proc/RelayMouseDrag(atom/src_object, atom/over_object, src_location, over_location, src_control, over_control, params, mob/user) + return FALSE + +/atom/proc/RelayMouseDown(atom/object, location, control, params, mob/user) + return FALSE + +/atom/proc/RelayMouseUp(atom/object, location, control, params, mob/user) return FALSE /mob/proc/OnMouseDrag(atom/src_object, atom/over_object, src_location, over_location, src_control, over_control, params) - if(istype(loc, /atom)) + if(loc) var/atom/A = loc if(A.RelayMouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params, src)) return @@ -13,11 +19,21 @@ gun.set_autofire(over_object, src) /mob/proc/OnMouseDown(atom/object, location, control, params) + if(loc) + var/atom/A = loc + if(A.RelayMouseDown(object, location, control, params, src)) + return + var/obj/item/gun/gun = get_active_hand() if(a_intent == I_HURT && istype(object) && (isturf(object) || isturf(object.loc)) && !incapacitated() && istype(gun)) gun.set_autofire(object, src) /mob/proc/OnMouseUp(atom/object, location, control, params) + if(loc) + var/atom/A = loc + if(A.RelayMouseUp(object, location, control, params, src)) + return + var/obj/item/gun/gun = get_active_hand() if(istype(gun)) gun.clear_autofire() diff --git a/code/_onclick/hud/animal.dm b/code/_onclick/hud/animal.dm index 07c6495c4a8..129d39f259a 100644 --- a/code/_onclick/hud/animal.dm +++ b/code/_onclick/hud/animal.dm @@ -2,7 +2,7 @@ /mob/living/simple_animal hud_type = /datum/hud/animal -/datum/hud/animal/FinalizeInstantiation(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255) +/datum/hud/animal/FinalizeInstantiation() mymob.client.screen = list() action_intent = new /obj/screen/intent() mymob.client.screen |= action_intent \ No newline at end of file diff --git a/code/_onclick/hud/global_hud.dm b/code/_onclick/hud/global_hud.dm index a1d067535f5..70e7aa2f7df 100644 --- a/code/_onclick/hud/global_hud.dm +++ b/code/_onclick/hud/global_hud.dm @@ -14,6 +14,7 @@ var/global/datum/global_hud/hud var/obj/screen/thermal var/obj/screen/meson var/obj/screen/science + var/obj/screen/holomap // makes custom colored overlay, can also generate scanline /datum/global_hud/proc/setup_overlay(icon_state, color) @@ -36,3 +37,13 @@ var/global/datum/global_hud/hud thermal = setup_overlay("scanline", "#ff0000") meson = setup_overlay("scanline", "#9fd800") science = setup_overlay("scanline", "#d600d6") + + //Holomap screen object is invisible and work + //By setting it as n images location, without icon changes + //Make it part of global hud since it's inmutable + holomap = new /obj/screen() + holomap.name = "holomap" + holomap.icon = null + holomap.layer = HUD_BASE_LAYER + holomap.screen_loc = UI_HOLOMAP + holomap.mouse_opacity = 0 \ No newline at end of file diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 81ee062cd61..ba40d9b4e53 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -15,6 +15,7 @@ hud_used = new hud_type(src) else hud_used = new /datum/hud(src) + refresh_lighting_master() /datum/hud var/mob/mymob @@ -26,6 +27,7 @@ var/obj/screen/lingchemdisplay var/list/hand_hud_objects + var/list/swaphand_hud_objects var/obj/screen/action_intent var/obj/screen/move_intent var/obj/screen/stamina/stamina_bar @@ -53,6 +55,7 @@ hotkeybuttons = null mymob = null QDEL_NULL_LIST(hand_hud_objects) + QDEL_NULL_LIST(swaphand_hud_objects) /datum/hud/proc/update_stamina() if(mymob && stamina_bar) @@ -106,70 +109,201 @@ gear.screen_loc = hud_data["loc"] /datum/hud/proc/instantiate() - if(!ismob(mymob)) return 0 - if(!mymob.client) return 0 - var/ui_style = ui_style2icon(mymob.client.prefs.UI_style) - var/ui_color = mymob.client.prefs.UI_style_color - var/ui_alpha = mymob.client.prefs.UI_style_alpha - FinalizeInstantiation(ui_style, ui_color, ui_alpha) - -/datum/hud/proc/FinalizeInstantiation(var/ui_style, var/ui_color, var/ui_alpha) + if(ismob(mymob) && mymob.client) + FinalizeInstantiation() + return TRUE + return FALSE + +/datum/hud/proc/FinalizeInstantiation() return -/datum/hud/proc/rebuild_hands(list/adding, list/removing, skip_client_update = FALSE) +/datum/hud/proc/get_ui_style() + return ui_style2icon(mymob?.client?.prefs?.UI_style) || 'icons/mob/screen/white.dmi' - if(isnull(removing)) - if(!skip_client_update) - mymob?.client?.screen -= hand_hud_objects - QDEL_NULL_LIST(hand_hud_objects) - else - for(var/bp in removing) - for(var/obj/screen/inventory/inv_box in hand_hud_objects) - if(inv_box.slot_id == bp) - if(mymob.client) - mymob.client.screen -= inv_box - hand_hud_objects -= inv_box - qdel(inv_box) +/datum/hud/proc/get_ui_color() + return mymob?.client?.prefs?.UI_style_color || COLOR_WHITE + +/datum/hud/proc/get_ui_alpha() + return mymob?.client?.prefs?.UI_style_alpha || 255 + +/datum/hud/proc/rebuild_hands() var/mob/living/target = mymob if(!istype(target)) return - if(isnull(adding)) - adding = target.held_item_slots + var/ui_style = get_ui_style() + var/ui_color = get_ui_color() + var/ui_alpha = get_ui_alpha() - var/ui_style = ui_style2icon(mymob.client?.prefs.UI_style) - var/ui_color = mymob.client?.prefs?.UI_style_color - var/ui_alpha = mymob.client?.prefs?.UI_style_alpha || 255 - for(var/bp in adding) + // Build held item boxes for missing slots. + var/list/held_slots = mymob.get_held_item_slots() + for(var/hand_tag in held_slots) var/obj/screen/inventory/inv_box for(var/obj/screen/inventory/existing_box in hand_hud_objects) - if(existing_box.slot_id == bp) + if(existing_box.slot_id == hand_tag) inv_box = existing_box break if(!inv_box) inv_box = new /obj/screen/inventory() - var/datum/inventory_slot/inv_slot = target.held_item_slots[bp] - inv_box.SetName(bp) + var/datum/inventory_slot/inv_slot = target.held_item_slots[hand_tag] + inv_box.SetName(hand_tag) inv_box.icon = ui_style inv_box.icon_state = "hand_base" inv_box.cut_overlays() - inv_box.add_overlay("hand_[bp]") - inv_box.add_overlay("hand_[inv_slot.ui_label]") - if(target.get_active_held_item_slot() == bp) + inv_box.add_overlay("hand_[hand_tag]") + if(inv_slot.ui_label) + inv_box.add_overlay("hand_[inv_slot.ui_label]") + if(target.get_active_held_item_slot() == hand_tag) inv_box.add_overlay("hand_selected") inv_box.compile_overlays() - inv_box.screen_loc = inv_slot.ui_loc - inv_box.slot_id = bp + inv_box.slot_id = hand_tag inv_box.color = ui_color inv_box.alpha = ui_alpha inv_box.appearance_flags |= KEEP_TOGETHER - LAZYADD(hand_hud_objects, inv_box) - if(!skip_client_update) - mymob.client?.screen |= inv_box + LAZYDISTINCTADD(hand_hud_objects, inv_box) + + // Clear held item boxes with no held slot. + for(var/obj/screen/inventory/inv_box in hand_hud_objects) + if(!(inv_box.slot_id in held_slots)) + if(mymob.client) + mymob.client.screen -= inv_box + LAZYREMOVE(hand_hud_objects, inv_box) + qdel(inv_box) + + // Rebuild offsets for the hand elements. + var/hand_y_offset = 5 + var/list/elements = hand_hud_objects?.Copy() + while(length(elements)) + var/copy_index = min(length(elements), 2)+1 + var/list/sublist = elements.Copy(1, copy_index) + elements.Cut(1, copy_index) + var/obj/screen/inventory/inv_box + if(length(sublist) == 1) + inv_box = sublist[1] + inv_box.screen_loc = "CENTER,BOTTOM:[hand_y_offset]" + else + inv_box = sublist[1] + inv_box.screen_loc = "CENTER:-[world.icon_size/2],BOTTOM:[hand_y_offset]" + inv_box = sublist[2] + inv_box.screen_loc = "CENTER:[world.icon_size/2],BOTTOM:[hand_y_offset]" + hand_y_offset += world.icon_size + if(mymob.client) + mymob.client.screen |= inv_box + + // Make sure all held items are on the screen and set to the correct screen loc. + var/datum/inventory_slot/inv_slot + for(var/obj/inv_elem in hand_hud_objects) + inv_slot = target.get_inventory_slot_datum(inv_elem.name) + if(inv_slot) + inv_slot.ui_loc = inv_elem.screen_loc + if(inv_slot.holding) + inv_slot.holding.screen_loc = inv_slot.ui_loc + if(mymob.client) + mymob.client.screen |= inv_slot.holding // just to make sure it's visible post-login + + var/hand_x_offset = -(world.icon_size/2) + for(var/i = 1 to length(swaphand_hud_objects)) + var/obj/swap_elem = swaphand_hud_objects[i] + swap_elem.screen_loc = "CENTER:[hand_x_offset],BOTTOM:[hand_y_offset]" + if(i > 1) // first two elems share a slot + hand_x_offset += world.icon_size + if(mymob.client) + mymob.client.screen |= swap_elem + +/datum/hud/proc/BuildInventoryUI() + + var/ui_style = get_ui_style() + var/ui_color = get_ui_color() + var/ui_alpha = get_ui_alpha() + + var/has_hidden_gear = FALSE + + var/mob/living/carbon/human/target = mymob + var/datum/hud_data/hud_data = istype(target) ? target.species.hud : new() + var/list/held_slots = mymob.get_held_item_slots() + + // Draw the various inventory equipment slots. + var/obj/screen/inventory/inv_box + for(var/gear_slot in hud_data.gear) // inventory_slots) + + if(gear_slot in held_slots) + continue + + inv_box = new /obj/screen/inventory() + inv_box.icon = ui_style + inv_box.color = ui_color + inv_box.alpha = ui_alpha + + var/list/slot_data = hud_data.gear[gear_slot] + inv_box.screen_loc = slot_data["loc"] + inv_box.slot_id = slot_data["slot"] + inv_box.icon_state = slot_data["state"] + inv_box.SetName(gear_slot) + + if(slot_data["dir"]) + inv_box.set_dir(slot_data["dir"]) + + if(slot_data["toggle"]) + other += inv_box + has_hidden_gear = TRUE + else + adding += inv_box + + if(has_hidden_gear) + var/obj/screen/using = new /obj/screen() + using.SetName("toggle") + using.icon = ui_style + using.icon_state = "other" + using.screen_loc = ui_inventory + using.color = ui_color + using.alpha = ui_alpha + adding += using + +/datum/hud/proc/BuildHandsUI() + + var/ui_style = get_ui_style() + var/ui_color = get_ui_color() + var/ui_alpha = get_ui_alpha() + + var/obj/screen/using + + // Swap hand and quick equip screen elems. + using = new /obj/screen() + using.SetName("equip") + using.icon = ui_style + using.icon_state = "act_equip" + using.color = ui_color + using.alpha = ui_alpha + src.adding += using + LAZYADD(swaphand_hud_objects, using) + + var/list/held_slots = mymob.get_held_item_slots() + if(length(held_slots) > 1) + + using = new /obj/screen/inventory() + using.SetName("hand") + using.icon = ui_style + using.icon_state = "hand1" + using.color = ui_color + using.alpha = ui_alpha + src.adding += using + LAZYADD(swaphand_hud_objects, using) + + using = new /obj/screen/inventory() + using.SetName("hand") + using.icon = ui_style + using.icon_state = "hand2" + using.color = ui_color + using.alpha = ui_alpha + src.adding += using + LAZYADD(swaphand_hud_objects, using) + + // Actual hand elems. + rebuild_hands() /mob/verb/minimize_hud(full = FALSE as null) set name = "Minimize Hud" @@ -198,9 +332,12 @@ //Due to some poor coding some things need special treatment: //These ones are a part of 'adding', 'other' or 'hotkeybuttons' but we want them to stay if(!full) - src.client.screen += src.hud_used.hand_hud_objects //we want the hands to be visible - src.client.screen += src.hud_used.action_intent //we want the intent swticher visible - src.hud_used.action_intent.screen_loc = ui_acti_alt //move this to the alternative position, where zone_select usually is. + if(LAZYLEN(hud_used.hand_hud_objects)) + client.screen += hud_used.hand_hud_objects // we want the hands to be visible + if(LAZYLEN(hud_used.swaphand_hud_objects)) + client.screen += hud_used.swaphand_hud_objects // we want the hands swap thingy to be visible + src.client.screen += src.hud_used.action_intent // we want the intent swticher visible + src.hud_used.action_intent.screen_loc = ui_acti_alt // move this to the alternative position, where zone_select usually is. else src.client.screen -= src.healths src.client.screen -= src.internals diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 3498abc4fa8..466c5427237 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -1,7 +1,12 @@ /mob/living/carbon/human hud_type = /datum/hud/human -/datum/hud/human/FinalizeInstantiation(var/ui_style='icons/mob/screen/white.dmi', var/ui_color = "#ffffff", var/ui_alpha = 255) +/datum/hud/human/FinalizeInstantiation() + + var/ui_style = get_ui_style() + var/ui_color = get_ui_color() + var/ui_alpha = get_ui_alpha() + var/mob/living/carbon/human/target = mymob var/datum/hud_data/hud_data = istype(target) ? target.species.hud : new() if(hud_data.icon) @@ -13,44 +18,11 @@ var/list/hud_elements = list() var/obj/screen/using - var/obj/screen/inventory/inv_box stamina_bar = new adding += stamina_bar - // Draw the various inventory equipment slots. - var/has_hidden_gear - for(var/gear_slot in hud_data.gear) - - inv_box = new /obj/screen/inventory() - inv_box.icon = ui_style - inv_box.color = ui_color - inv_box.alpha = ui_alpha - - var/list/slot_data = hud_data.gear[gear_slot] - inv_box.SetName(gear_slot) - inv_box.screen_loc = slot_data["loc"] - inv_box.slot_id = slot_data["slot"] - inv_box.icon_state = slot_data["state"] - - if(slot_data["dir"]) - inv_box.set_dir(slot_data["dir"]) - - if(slot_data["toggle"]) - src.other += inv_box - has_hidden_gear = 1 - else - src.adding += inv_box - - if(has_hidden_gear) - using = new /obj/screen() - using.SetName("toggle") - using.icon = ui_style - using.icon_state = "other" - using.screen_loc = ui_inventory - using.color = ui_color - using.alpha = ui_alpha - src.adding += using + BuildInventoryUI() // Draw the attack intent dialogue. if(hud_data.has_a_intent) @@ -81,35 +53,7 @@ src.hotkeybuttons += using if(hud_data.has_hands) - - using = new /obj/screen() - using.SetName("equip") - using.icon = ui_style - using.icon_state = "act_equip" - using.screen_loc = ui_equip - using.color = ui_color - using.alpha = ui_alpha - src.adding += using - - using = new /obj/screen/inventory() - using.SetName("hand") - using.icon = ui_style - using.icon_state = "hand1" - using.screen_loc = ui_swaphand1 - using.color = ui_color - using.alpha = ui_alpha - src.adding += using - - using = new /obj/screen/inventory() - using.SetName("hand") - using.icon = ui_style - using.icon_state = "hand2" - using.screen_loc = ui_swaphand2 - using.color = ui_color - using.alpha = ui_alpha - src.adding += using - - rebuild_hands(skip_client_update = TRUE) + BuildHandsUI() if(hud_data.has_resist) using = new /obj/screen() @@ -261,6 +205,8 @@ mymob.client.screen = list() if(length(hand_hud_objects)) mymob.client.screen += hand_hud_objects + if(length(swaphand_hud_objects)) + mymob.client.screen += swaphand_hud_objects if(length(hud_elements)) mymob.client.screen += hud_elements mymob.client.screen += src.adding + src.hotkeybuttons diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index bce2e800065..f6495821fd0 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -236,6 +236,7 @@ /obj/screen/Click(location, control, params) if(!usr) return 1 + switch(name) if("toggle") if(usr.hud_used.inventory_shown) @@ -264,7 +265,9 @@ L.lookup() if("internal") - usr.ui_toggle_internals() + if(isliving(usr)) + var/mob/living/M = usr + M.ui_toggle_internals() if("act_intent") usr.a_intent_change("right") @@ -373,3 +376,15 @@ if(pref) pref.bgstate = next_in_list(pref.bgstate, pref.bgstate_options) pref.update_preview_icon() + +/obj/screen/lighting_plane_master + screen_loc = "CENTER" + appearance_flags = PLANE_MASTER + mouse_opacity = 0 + plane = LIGHTING_PLANE + blend_mode = BLEND_MULTIPLY + alpha = 255 + +/obj/screen/lighting_plane_master/proc/set_alpha(var/newalpha) + if(alpha != newalpha) + animate(src, alpha = newalpha, time = SSmobs.wait) diff --git a/code/controllers/communications.dm b/code/controllers/communications.dm index 3fc2b77bf74..1e5e679530e 100644 --- a/code/controllers/communications.dm +++ b/code/controllers/communications.dm @@ -324,7 +324,7 @@ var/global/datum/controller/radio/radio_controller /datum/radio_frequency/proc/send_to_filter(obj/source, datum/signal/signal, var/radio_filter, var/turf/start_point = null, var/range = null) var/list/z_levels if(start_point) - z_levels = GetConnectedZlevels(start_point.z) + z_levels = SSmapping.get_connected_levels(start_point.z) for(var/obj/device in devices[radio_filter]) if(device == source) diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index b4bf0921fd4..88e5450eb9c 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -203,7 +203,7 @@ var/global/list/gamemode_cache = list() var/dsay_allowed = 1 var/aooc_allowed = 1 - var/starlight = 0 // Whether space turfs have ambient light or not + var/exterior_ambient_light = 0 // The strength of ambient light applied to outside turfs var/law_zero = "ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'ALL LAWS OVERRIDDEN#*?&110010" @@ -253,6 +253,9 @@ var/global/list/gamemode_cache = list() var/no_throttle_localhost var/dex_malus_brainloss_threshold = 30 //The threshold of when brainloss begins to affect dexterity. + var/grant_default_darksight = FALSE + var/default_darksight_range = 2 + var/default_darksight_effectiveness = 0.05 // Economy variables var/withdraw_period = 1 DAY @@ -751,9 +754,9 @@ var/global/list/gamemode_cache = list() config.event_delay_upper[EVENT_LEVEL_MODERATE] = MinutesToTicks(values[2]) config.event_delay_upper[EVENT_LEVEL_MAJOR] = MinutesToTicks(values[3]) - if("starlight") + if("exterior_ambient_light") value = text2num(value) - config.starlight = value >= 0 ? value : 0 + config.exterior_ambient_light = value >= 0 ? value : 0 if("law_zero") law_zero = value @@ -914,7 +917,12 @@ var/global/list/gamemode_cache = list() config.use_loyalty_implants = 1 if("dexterity_malus_brainloss_threshold") config.dex_malus_brainloss_threshold = text2num(value) - + if("grant_default_darksight") + config.grant_default_darksight = TRUE + if("default_darksight_range") + config.default_darksight_range = max(text2num(value), 0) + if("default_darksight_effectiveness") + config.default_darksight_effectiveness = clamp(text2num(value), 0, 1) // Economy config. if("withdraw_period") config.withdraw_period = value DAYS diff --git a/code/controllers/evacuation/evacuation_pods.dm b/code/controllers/evacuation/evacuation_pods.dm index 3f5047db7b8..76e91690c19 100644 --- a/code/controllers/evacuation/evacuation_pods.dm +++ b/code/controllers/evacuation/evacuation_pods.dm @@ -46,7 +46,7 @@ else // FTL Jump priority_announcement.Announce(replacetext(replacetext(global.using_map.shuttle_leaving_dock, "%dock_name%", "[global.using_map.dock_name]"), "%ETA%", "[round(get_eta()/60,1)] minute\s")) - SetUniversalState(/datum/universal_state/jump, arguments=list(global.using_map.station_levels)) + SetUniversalState(/datum/universal_state/jump, arguments=list(SSmapping.station_levels)) /datum/evacuation_controller/starship/finish_evacuation() ..() diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 49a05a04af1..0072bd2612a 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -259,7 +259,7 @@ var/global/datum/controller/master/Master = new SS.state = SS_IDLE if (SS.flags & SS_TICKER) tickersubsystems += SS - timer += world.tick_lag * rand(1, 5) + timer += world.tick_lag * rand(0,1) SS.next_fire = timer continue @@ -334,14 +334,16 @@ var/global/datum/controller/master/Master = new var/checking_runlevel = current_runlevel if(cached_runlevel != checking_runlevel) //resechedule subsystems + var/list/old_subsystems = current_runlevel_subsystems cached_runlevel = checking_runlevel current_runlevel_subsystems = runlevel_sorted_subsystems[cached_runlevel] - var/stagger = world.time - for(var/I in current_runlevel_subsystems) - var/datum/controller/subsystem/SS = I - if(SS.next_fire <= world.time) - stagger += world.tick_lag * rand(1, 5) - SS.next_fire = stagger + + //now we'll go through all the subsystems we want to offset and give them a next_fire + for(var/datum/controller/subsystem/SS as anything in current_runlevel_subsystems) + //we only want to offset it if it's new and also behind + if(SS.next_fire > world.time || (SS in old_subsystems)) + continue + SS.next_fire = world.time + world.tick_lag * rand(0, DS2TICKS(min(SS.wait, 2 SECONDS))) subsystems_to_check = current_runlevel_subsystems else diff --git a/code/controllers/subsystems/ambience.dm b/code/controllers/subsystems/ambience.dm index 1f615731f18..6bbe3b27fea 100644 --- a/code/controllers/subsystems/ambience.dm +++ b/code/controllers/subsystems/ambience.dm @@ -30,27 +30,21 @@ SUBSYSTEM_DEF(ambience) return FALSE // If we're dynamically lit, we want ambient light regardless of neighbors. - . = TURF_IS_DYNAMICALLY_LIT_UNSAFE(src) + var/lit = TURF_IS_DYNAMICALLY_LIT_UNSAFE(src) // If we're not, we want ambient light if one of our neighbors needs to show spillover from corners. - if(!.) + if(!lit) for(var/turf/T in RANGE_TURFS(src, 1)) // Fuck if I know how these turfs are located in an area that is not an area. if(isloc(T.loc) && TURF_IS_DYNAMICALLY_LIT_UNSAFE(T)) - . = TRUE + lit = TRUE break - if(.) - // Grab what we need to set ambient light. - // TODO: z-level data handlers should store this information in a cheaply accessible way. - var/obj/effect/overmap/visitable/sector/exoplanet/planet = global.overmap_sectors["[z]"] - if(istype(planet)) - if(planet.lightlevel) - set_ambient_light(COLOR_WHITE, planet.lightlevel) - return TRUE - else - if(config.starlight) - set_ambient_light(SSskybox.background_color, config.starlight) - return TRUE + if(lit) + // Grab what we need to set ambient light from our level handler. + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[z] + if(level_data?.ambient_light_level) + set_ambient_light(level_data.ambient_light_color, level_data.ambient_light_level) + return TRUE clear_ambient_light() return FALSE diff --git a/code/controllers/subsystems/holomap.dm b/code/controllers/subsystems/holomap.dm new file mode 100644 index 00000000000..dd544596c29 --- /dev/null +++ b/code/controllers/subsystems/holomap.dm @@ -0,0 +1,112 @@ +// Minimap generation system adapted from vorestation, adapted from /vg/. +// Seems to be much simpler/saner than /vg/'s implementation. + +//The structure holding a given map +/datum/holomapdata + var/icon/holomap_base + var/list/icon/holomap_areas = list() + var/icon/holomap_combined + var/icon/holomap_areas_combined + var/icon/holomap_small + +SUBSYSTEM_DEF(minimap) + name = "Holomap" + flags = SS_NO_FIRE + init_order = SS_INIT_HOLOMAP + + var/list/datum/holomapdata/holomaps = list() + var/list/station_holomaps = list() + +/datum/controller/subsystem/minimap/Initialize() + holomaps.len = world.maxz + for (var/z = 1 to world.maxz) + generateHolomap(z) + + //Update machinery if it has not been + for(var/obj/machinery/holomap/M in station_holomaps) + M.update_map_data() + + ..() + +/datum/controller/subsystem/minimap/proc/generateHolomap(zlevel) + var/datum/holomapdata/data = new() + data.holomap_base = generateBaseHolomap(zlevel) + data.holomap_areas = generateHolomapAreaOverlays(zlevel) + + var/icon/combinedareas = icon(HOLOMAP_ICON, "blank") + + for(var/area/A in data.holomap_areas) + var/icon/single = data.holomap_areas[A] + if(A.holomap_color) + single.Blend(A.holomap_color, ICON_MULTIPLY) + combinedareas.Blend(single, ICON_OVERLAY) + + data.holomap_areas_combined = combinedareas + + var/icon/map_base = icon(data.holomap_base) + + // Generate the full sized map by blending the base and areas onto the backdrop + var/icon/big_map = icon(HOLOMAP_ICON, "stationmap") + big_map.Blend(map_base, ICON_OVERLAY) + big_map.Blend(combinedareas, ICON_OVERLAY) + data.holomap_combined = big_map + + // Generate the "small" map + var/icon/small_map = icon(HOLOMAP_ICON, "blank") + //Make it green. + small_map.Blend(map_base, ICON_OVERLAY) + small_map.Blend(COLOR_HOLOMAP_HOLOFIER, ICON_MULTIPLY) + small_map.Blend(combinedareas, ICON_OVERLAY) + small_map.Scale(WORLD_ICON_SIZE, WORLD_ICON_SIZE) + + // And rotate it in every direction of course! + var/icon/actual_small_map = icon(small_map) + actual_small_map.Insert(new_icon = small_map, dir = SOUTH) + actual_small_map.Insert(new_icon = turn(small_map, 90), dir = WEST) + actual_small_map.Insert(new_icon = turn(small_map, 180), dir = NORTH) + actual_small_map.Insert(new_icon = turn(small_map, 270), dir = EAST) + data.holomap_small = actual_small_map + + holomaps[zlevel] = data + +// Generates the "base" holomap for one z-level, showing only the physical structure of walls and paths. +/datum/controller/subsystem/minimap/proc/generateBaseHolomap(zlevel = 1) + // Save these values now to avoid a bazillion array lookups + var/offset_x = HOLOMAP_PIXEL_OFFSET_X + var/offset_y = HOLOMAP_PIXEL_OFFSET_Y + + // Sanity checks - Better to generate a helpful error message now than have DrawBox() runtime + var/icon/canvas = icon(HOLOMAP_ICON, "blank") + if(world.maxx + offset_x > canvas.Width()) + CRASH("Minimap for z=[zlevel] : world.maxx ([world.maxx]) + holomap_offset_x ([offset_x]) must be <= [canvas.Width()]") + if(world.maxy + offset_y > canvas.Height()) + CRASH("Minimap for z=[zlevel] : world.maxy ([world.maxy]) + holomap_offset_y ([offset_y]) must be <= [canvas.Height()]") + + for(var/turf/tile as anything in BLOCK_TURFS(1,1,world.maxx,world.maxy,zlevel)) + var/area/A = get_area(tile) + if ((A && (A.area_flags & AREA_FLAG_HIDE_FROM_HOLOMAP)) || (tile.turf_flags & TURF_IS_HOLOMAP_ROCK)) + continue + if((tile.turf_flags & TURF_IS_HOLOMAP_OBSTACLE) || (locate(/obj/structure/grille) in tile)) + canvas.DrawBox(COLOR_HOLOMAP_OBSTACLE, tile.x + offset_x, tile.y + offset_y) + else if((tile.turf_flags & TURF_IS_HOLOMAP_PATH) || (locate(/obj/structure/catwalk) in tile)) + canvas.DrawBox(COLOR_HOLOMAP_PATH, tile.x + offset_x, tile.y + offset_y) + CHECK_TICK + return canvas + +// Generate overlays based on areas +/datum/controller/subsystem/minimap/proc/generateHolomapAreaOverlays(zlevel) + var/list/icon/areas = list() + + var/offset_x = HOLOMAP_PIXEL_OFFSET_X + var/offset_y = HOLOMAP_PIXEL_OFFSET_Y + + for(var/x = 1 to world.maxx) + for(var/y = 1 to world.maxy) + var/turf/tile = locate(x, y, zlevel) + if(tile && tile.loc) + var/area/areaToPaint = tile.loc + if(areaToPaint.holomap_color) + if(!areas[areaToPaint]) + areas[areaToPaint] = icon(HOLOMAP_ICON, "blank") + areas[areaToPaint].DrawBox(HOLOMAP_AREACOLOR_BASE, x + offset_x, y + offset_y) //We draw white because we want a generic version to use later. However if there is no colour we ignore it + return areas \ No newline at end of file diff --git a/code/controllers/subsystems/initialization/codex.dm b/code/controllers/subsystems/initialization/codex.dm index 6c409ca3e63..0437bac3503 100644 --- a/code/controllers/subsystems/initialization/codex.dm +++ b/code/controllers/subsystems/initialization/codex.dm @@ -65,8 +65,9 @@ SUBSYSTEM_DEF(codex) /datum/controller/subsystem/codex/proc/get_codex_entry(var/entry) if(istype(entry, /atom)) var/atom/entity = entry - if(entity.get_specific_codex_entry()) - return entity.get_specific_codex_entry() + var/specific_codex_entry = entity.get_specific_codex_entry() + if(specific_codex_entry) + return specific_codex_entry return get_entry_by_string(entity.name) || entries_by_path[entity.type] if(ispath(entry)) return entries_by_path[entry] diff --git a/code/controllers/subsystems/initialization/materials.dm b/code/controllers/subsystems/initialization/materials.dm index cfe07bcfe10..f1adb69ed9b 100644 --- a/code/controllers/subsystems/initialization/materials.dm +++ b/code/controllers/subsystems/initialization/materials.dm @@ -136,7 +136,7 @@ SUBSYSTEM_DEF(materials) /datum/controller/subsystem/materials/proc/get_strata(var/turf/exterior/wall/location) if(!istype(location)) return - var/obj/effect/overmap/visitable/sector/exoplanet/planet = global.overmap_sectors["[location.z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/planet = global.overmap_sectors[num2text(location.z)] if(istype(planet)) return planet.get_strata(location) var/s_key = "[location.z]" diff --git a/code/controllers/subsystems/initialization/misc.dm b/code/controllers/subsystems/initialization/misc.dm index 88ac5d9f5ca..09025757cdf 100644 --- a/code/controllers/subsystems/initialization/misc.dm +++ b/code/controllers/subsystems/initialization/misc.dm @@ -4,16 +4,6 @@ SUBSYSTEM_DEF(misc) flags = SS_NO_FIRE /datum/controller/subsystem/misc/Initialize() - -#ifdef UNIT_TEST - config.generate_map = TRUE -#endif - - if(config.generate_map) - global.using_map.perform_map_generation() - global.using_map.build_exterior_atmosphere() - setupgenetics() - transfer_controller = new - . = ..() \ No newline at end of file + . = ..() diff --git a/code/controllers/subsystems/managed_instance.dm b/code/controllers/subsystems/managed_instance.dm new file mode 100644 index 00000000000..fe80e262a84 --- /dev/null +++ b/code/controllers/subsystems/managed_instance.dm @@ -0,0 +1,47 @@ +SUBSYSTEM_DEF(managed_instances) + name = "Managed Instances" + flags = SS_NO_FIRE | SS_NO_INIT + var/list/_managed_instance_cache = list() + +/datum/controller/subsystem/managed_instances/proc/get(var/instance_type, var/cache_id, var/cache_category = "default", var/list/instance_args) + if(!cache_id) + cache_id = instance_type + if(isnull(cache_id)) // No type and no id supplied, no point going further. + CRASH("Attempted to retrieve a managed instance with no supplied type or ID.") + if(isnum(cache_id)) // The cache is an assoc list of id to instance, so numerical IDs are out. + CRASH("Attempted to retrieve a managed instance with numerical ID ([cache_id]).") + + var/category_list = _managed_instance_cache[cache_category] + if(category_list) + . = category_list[cache_id] + else + category_list = list() + _managed_instance_cache[cache_category] = category_list + + if(!.) + var/datum/managed_instance + LAZYINITLIST(instance_args) + managed_instance = new instance_type(arglist(instance_args)) + category_list[cache_id] = managed_instance + instance_args.Insert(1, cache_id) + managed_instance.ManagedInstanceInitialize(arglist(instance_args)) // We do this after storing to avoid circular creation loops. + if(QDELETED(managed_instance)) + PRINT_STACK_TRACE("Managed instance was queued for deletion during init! [managed_instance]") + category_list[cache_id] -= managed_instance + else + events_repository.register(/decl/observ/destroyed, managed_instance, src, /datum/controller/subsystem/managed_instances/proc/clear) + . = managed_instance + +// This is costly, but it also shouldn't be common for managed instances to get qdeleted post-storage. +/datum/controller/subsystem/managed_instances/proc/clear(var/datum/destroyed_instance) + if(!destroyed_instance) + return + PRINT_STACK_TRACE("Managed instance was destroyed! [destroyed_instance]") + for(var/category in _managed_instance_cache) + var/list/category_data = _managed_instance_cache[category] + for(var/cache_id in category_data) + if(category_data[cache_id] == destroyed_instance) + category_data -= cache_id + +/datum/proc/ManagedInstanceInitialize(var/cache_id, ...) + return diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm index e5173d352a8..2aac24ed7eb 100644 --- a/code/controllers/subsystems/mapping.dm +++ b/code/controllers/subsystems/mapping.dm @@ -3,6 +3,9 @@ SUBSYSTEM_DEF(mapping) init_order = SS_INIT_MAPPING flags = SS_NO_FIRE + /* + * General map, submap and template handling + */ var/list/map_templates = list() var/list/submaps = list() var/list/map_templates_by_category = list() @@ -12,9 +15,41 @@ SUBSYSTEM_DEF(mapping) // Listing .dmm filenames in the file at this location will blacklist any templates that include them from being used. // Maps must be the full file path to be properly included. ex. "maps/random_ruins/away_sites/example.dmm" var/banned_dmm_location = "config/banned_map_paths.json" - var/decl/overmap_event_handler/overmap_event_handler + /* + * Z-Level Handling Stuff + */ + /// Associative list of levels by strict z-level + var/list/levels_by_z = list() + /// Associative list of levels by string ID + var/list/levels_by_id = list() + /// List of z-levels containing the 'main map' + var/list/station_levels = list() + /// List of z-levels for admin functionality (Centcom, shuttle transit, etc) + var/list/admin_levels = list() + /// List of z-levels that can be contacted from the station, for eg announcements + var/list/contact_levels = list() + /// List of z-levels a character can typically reach + var/list/player_levels = list() + /// List of z-levels that don't allow random transit at edge + var/list/sealed_levels = list() + /// Custom base turf by Z-level. Defaults to world.turf for unlisted Z-levels + var/list/base_turf_by_z = list() + /// This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. + var/list/accessible_z_levels = list() + /// Z-levels available to various consoles, such as the crew monitor. Defaults to station_levels if unset. + var/list/map_levels + /// The turf type used when generating floors between Z-levels at startup. + var/base_floor_type = /turf/simulated/floor/airless + /// Replacement area, if a base_floor_type is generated. Leave blank to skip. + var/base_floor_area + /// A list of connected z-levels to avoid repeatedly rebuilding connections + var/list/connected_z_cache = list() + +/datum/controller/subsystem/mapping/PreInit() + reindex_lists() + /datum/controller/subsystem/mapping/Initialize(timeofday) // Load our banned map list, if we have one. @@ -49,6 +84,17 @@ SUBSYSTEM_DEF(mapping) // Build away sites. global.using_map.build_away_sites() + // Initialize z-level objects. +#ifdef UNIT_TEST + config.generate_map = TRUE +#endif + for(var/z = 1 to world.maxz) + var/obj/abstract/level_data/level = levels_by_z[z] + if(!istype(level)) + level = new /obj/abstract/level_data/space(locate(round(world.maxx*0.5), round(world.maxy*0.5), z)) + PRINT_STACK_TRACE("Missing z-level data object for z[num2text(z)]!") + level.setup_level_data() + . = ..() /datum/controller/subsystem/mapping/Recover() @@ -91,3 +137,62 @@ SUBSYSTEM_DEF(mapping) /datum/controller/subsystem/mapping/proc/get_templates_by_category(var/temple_cat) // :33 return map_templates_by_category[temple_cat] + +// Z-Level procs after this point. +/datum/controller/subsystem/mapping/proc/get_gps_level_name(var/z) + if(z) + var/obj/abstract/level_data/level = levels_by_z[z] + if(level?.name) + return level.get_gps_level_name() + return "Unknown Sector" + +/datum/controller/subsystem/mapping/proc/reindex_lists() + levels_by_z.len = world.maxz // Populate with nulls so we don't get index errors later. + base_turf_by_z.len = world.maxz + connected_z_cache.Cut() + +/datum/controller/subsystem/mapping/proc/increment_world_z_size(var/new_level_type, var/defer_setup = FALSE) + + world.maxz++ + reindex_lists() + + if(SSzcopy.zlev_maximums.len) + SSzcopy.calculate_zstack_limits() + if(!new_level_type) + PRINT_STACK_TRACE("Missing z-level data type for z["[world.maxz]"]!") + return + + var/obj/abstract/level_data/level = new new_level_type(locate(round(world.maxx*0.5), round(world.maxy*0.5), world.maxz), defer_setup) + level.initialize_level() + return level + +/datum/controller/subsystem/mapping/proc/get_connected_levels(z) + if(z <= 0 || z > length(levels_by_z)) + CRASH("Invalid z-level supplied to get_connected_levels: [isnull(z) ? "NULL" : z]") + . = list(z) + // Traverse up and down to get the multiz stack. + for(var/level = z, HasBelow(level), level--) + . |= level-1 + for(var/level = z, HasAbove(level), level++) + . |= level+1 + // Check stack for any laterally connected neighbors. + for(var/tz in .) + var/obj/abstract/level_data/level = levels_by_z[tz] + if(level) + level.find_connected_levels(.) + +/datum/controller/subsystem/mapping/proc/are_connected_levels(var/zA, var/zB) + if (zA <= 0 || zB <= 0 || zA > world.maxz || zB > world.maxz) + return FALSE + if (zA == zB) + return TRUE + if (length(connected_z_cache) >= zA && length(connected_z_cache[zA]) >= zB) + return connected_z_cache[zA][zB] + var/list/levels = get_connected_levels(zA) + var/list/new_entry = new(world.maxz) + for (var/entry in levels) + new_entry[entry] = TRUE + if (connected_z_cache.len < zA) + connected_z_cache.len = zA + connected_z_cache[zA] = new_entry + return new_entry[zB] diff --git a/code/controllers/subsystems/processing/nano.dm b/code/controllers/subsystems/processing/nano.dm index 44b05e8326b..a7d531e8679 100644 --- a/code/controllers/subsystems/processing/nano.dm +++ b/code/controllers/subsystems/processing/nano.dm @@ -75,6 +75,9 @@ PROCESSING_SUBSYSTEM_DEF(nano) */ /datum/controller/subsystem/processing/nano/proc/close_uis(src_object) . = 0 + if (!length(open_uis)) + return + var/src_object_key = "\ref[src_object]" if (!open_uis[src_object_key]) return diff --git a/code/controllers/subsystems/shuttle.dm b/code/controllers/subsystems/shuttle.dm index 29c07237d7b..f8e5f2063e8 100644 --- a/code/controllers/subsystems/shuttle.dm +++ b/code/controllers/subsystems/shuttle.dm @@ -80,7 +80,7 @@ SUBSYSTEM_DEF(shuttle) try_add_landmark_tag(shuttle_landmark_tag, O) landmarks_still_needed -= shuttle_landmark_tag else if(istype(shuttle_landmark, /obj/effect/shuttle_landmark/automatic)) //These find their sector automatically - O = global.overmap_sectors["[shuttle_landmark.z]"] + O = global.overmap_sectors[num2text(shuttle_landmark.z)] O ? O.add_landmark(shuttle_landmark, shuttle_landmark.shuttle_restricted) : (landmarks_awaiting_sector += shuttle_landmark) /datum/controller/subsystem/shuttle/proc/unregister_landmark(shuttle_landmark_tag) diff --git a/code/controllers/subsystems/skybox.dm b/code/controllers/subsystems/skybox.dm index b07694ae7b1..6846f2308c2 100644 --- a/code/controllers/subsystems/skybox.dm +++ b/code/controllers/subsystems/skybox.dm @@ -102,13 +102,13 @@ SUBSYSTEM_DEF(skybox) mapedge_cache["[dir]"] = MA /datum/controller/subsystem/skybox/proc/get_skybox(z) - if(!skybox_cache["[z]"]) - skybox_cache["[z]"] = generate_skybox(z) - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] + if(!skybox_cache[num2text(z)]) + skybox_cache[num2text(z)] = generate_skybox(z) + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(z)] if(istype(O)) for(var/zlevel in O.map_z) - skybox_cache["[zlevel]"] = skybox_cache["[z]"] - return skybox_cache["[z]"] + skybox_cache["[zlevel]"] = skybox_cache[num2text(z)] + return skybox_cache[num2text(z)] /datum/controller/subsystem/skybox/proc/generate_skybox(z) var/image/res = image(skybox_icon) @@ -123,7 +123,7 @@ SUBSYSTEM_DEF(skybox) res.overlays += base if(use_overmap_details) - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(z)] if(istype(O)) var/image/overmap = image(skybox_icon) overmap.overlays += O.generate_skybox() @@ -141,7 +141,7 @@ SUBSYSTEM_DEF(skybox) /datum/controller/subsystem/skybox/proc/rebuild_skyboxes(var/list/zlevels) for(var/z in zlevels) - skybox_cache["[z]"] = generate_skybox(z) + skybox_cache[num2text(z)] = generate_skybox(z) for(var/client/C) C.update_skybox(1) diff --git a/code/controllers/subsystems/statistics.dm b/code/controllers/subsystems/statistics.dm index 7c031e71a1c..c41945144fa 100644 --- a/code/controllers/subsystems/statistics.dm +++ b/code/controllers/subsystems/statistics.dm @@ -162,7 +162,7 @@ SUBSYSTEM_DEF(statistics) death.brainloss = dead.getBrainLoss() death.oxyloss = dead.getOxyLoss() death.using_map_name = global.using_map.full_name - var/obj/effect/overmap/visitable/cell = global.overmap_sectors["[dead.z]"] + var/obj/effect/overmap/visitable/cell = global.overmap_sectors[num2text(dead.z)] death.overmap_location_name = cell?.name || "Unknown" LAZYADD(deaths, death) diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index 670d6c73e45..7bd02bedd58 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -28,8 +28,7 @@ SUBSYSTEM_DEF(ticker) var/looking_for_antags = 0 /datum/controller/subsystem/ticker/Initialize() - to_world("[SPAN_BLUE("Welcome to the pre-game lobby!")]") - to_world("Please, setup your character and select ready. Game will start in [round(pregame_timeleft/10)] seconds") + print_lobby_message() return ..() /datum/controller/subsystem/ticker/fire(resumed = 0) @@ -464,3 +463,7 @@ Helpers bypass_gamemode_vote = 1 Master.SetRunLevel(RUNLEVEL_SETUP) return 1 + +/datum/controller/subsystem/ticker/proc/print_lobby_message() + to_world("[SPAN_BLUE("Welcome to the pre-game lobby!")]") + to_world("Please, setup your character and select ready. Game will start in [round(pregame_timeleft/10)] seconds") \ No newline at end of file diff --git a/code/controllers/subsystems/timer.dm b/code/controllers/subsystems/timer.dm index 03d0ccd3ca1..298d4e28dd6 100644 --- a/code/controllers/subsystems/timer.dm +++ b/code/controllers/subsystems/timer.dm @@ -1,7 +1,7 @@ /// Controls how many buckets should be kept, each representing a tick. (1 minutes worth) #define BUCKET_LEN (world.fps*1*60) /// Helper for getting the correct bucket for a given timer -#define BUCKET_POS(timer) (((round((timer.timeToRun - timer.timer_subsystem.head_offset) / world.tick_lag)+1) % BUCKET_LEN)||BUCKET_LEN) +#define BUCKET_POS(timer) (((CEILING((timer.timeToRun - timer.timer_subsystem.head_offset) / world.tick_lag)+1) % BUCKET_LEN)||BUCKET_LEN) /// Gets the maximum time at which timers will be invoked from buckets, used for deferring to secondary queue #define TIMER_MAX(timer_ss) (timer_ss.head_offset + TICKS2DS(BUCKET_LEN + timer_ss.practical_offset - 1)) /// Max float with integer precision diff --git a/code/controllers/subsystems/typing.dm b/code/controllers/subsystems/typing.dm index a844669f5a1..c6ac9dce6a1 100644 --- a/code/controllers/subsystems/typing.dm +++ b/code/controllers/subsystems/typing.dm @@ -129,7 +129,7 @@ SUBSYSTEM_DEF(typing) return if(display) if(!target.typing_indicator) - target.typing_indicator = new(target) + target.typing_indicator = new(null, target) target.is_typing = TRUE target.typing_indicator.show_typing_indicator() else if(target.typing_indicator) @@ -143,26 +143,30 @@ I IS TYPIN'!' Updated 09/10/2022 to include chatbar using Spookerton's SStyping system from Polaris. */ -/atom/movable/overlay/typing_indicator - expected_master_type = /atom/movable - follow_proc = /atom/movable/proc/move_to_turf_or_null +/atom/movable/typing_indicator icon = 'icons/mob/talk.dmi' icon_state = "typing" mouse_opacity = 0 vis_flags = VIS_INHERIT_ID - follow_proc = null // Sits in vis_contents instead. + var/atom/movable/master -/atom/movable/overlay/typing_indicator/Destroy() - if(ismovable(master)) - var/atom/movable/AM = master - remove_vis_contents(AM, src) +/atom/movable/typing_indicator/Initialize(ml, _master) + . = ..() + master = _master + if(!ismovable(master)) + PRINT_STACK_TRACE("Typing indicator initialized with [isnull(master) ? "null" : master] as master.") + return INITIALIZE_HINT_QDEL + +/atom/movable/typing_indicator/Destroy() + if(master) + remove_vis_contents(master, src) if(ismob(master)) var/mob/owner = master if(owner.typing_indicator == src) owner.typing_indicator = null return ..() -/atom/movable/overlay/typing_indicator/proc/hide_typing_indicator() +/atom/movable/typing_indicator/proc/hide_typing_indicator() set waitfor = FALSE if(ismob(master)) var/mob/owner = master @@ -175,7 +179,7 @@ Updated 09/10/2022 to include chatbar using Spookerton's SStyping system from Po var/atom/movable/owner = master remove_vis_contents(owner, src) -/atom/movable/overlay/typing_indicator/proc/show_typing_indicator() +/atom/movable/typing_indicator/proc/show_typing_indicator() // Make it visible after being hidden. set_invisibility(0) @@ -199,6 +203,3 @@ Updated 09/10/2022 to include chatbar using Spookerton's SStyping system from Po transform = M alpha = 0 animate(src, transform = 0, alpha = 255, time = 0.2 SECONDS, easing = EASE_IN) - -/atom/movable/overlay/typing_indicator/SetInitLoc() - forceMove(null) diff --git a/code/datums/appearances/appearance_manager.dm b/code/datums/appearances/appearance_manager.dm index 93462f28a3b..52fd23a1534 100644 --- a/code/datums/appearances/appearance_manager.dm +++ b/code/datums/appearances/appearance_manager.dm @@ -6,9 +6,9 @@ return appearance_handlers[handler_type] /decl/appearance_manager/proc/add_appearance(var/mob/viewer, var/datum/appearance_data/ad) - var/PriorityQueue/pq = appearances_[viewer] + var/datum/priority_queue/pq = appearances_[viewer] if(!pq) - pq = new/PriorityQueue(/proc/cmp_appearance_data) + pq = new /datum/priority_queue(/proc/cmp_appearance_data) appearances_[viewer] = pq events_repository.register(/decl/observ/logged_in, viewer, src, /decl/appearance_manager/proc/apply_appearance_images) events_repository.register(/decl/observ/destroyed, viewer, src, /decl/appearance_manager/proc/remove_appearances) @@ -16,7 +16,7 @@ reset_appearance_images(viewer) /decl/appearance_manager/proc/remove_appearance(var/mob/viewer, var/datum/appearance_data/ad, var/refresh_images) - var/PriorityQueue/pq = appearances_[viewer] + var/datum/priority_queue/pq = appearances_[viewer] pq.Remove(ad) if(viewer.client) viewer.client.images -= ad.images @@ -26,7 +26,7 @@ appearances_ -= viewer /decl/appearance_manager/proc/remove_appearances(var/mob/viewer) - var/PriorityQueue/pq = appearances_[viewer] + var/datum/priority_queue/pq = appearances_[viewer] for(var/entry in pq.L) var/datum/appearance_data/ad = entry ad.RemoveViewer(viewer, FALSE) @@ -40,7 +40,7 @@ /decl/appearance_manager/proc/clear_appearance_images(var/mob/viewer) if(!viewer.client) return - var/PriorityQueue/pq = appearances_[viewer] + var/datum/priority_queue/pq = appearances_[viewer] if(!pq) return for(var/entry in pq.L) @@ -50,7 +50,7 @@ /decl/appearance_manager/proc/apply_appearance_images(var/mob/viewer) if(!viewer.client) return - var/PriorityQueue/pq = appearances_[viewer] + var/datum/priority_queue/pq = appearances_[viewer] if(!pq) return for(var/entry in pq.L) diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 58e9f056c18..df3678803fe 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -47,7 +47,7 @@ add_stylesheet("common", common_stylesheet) /datum/browser/proc/set_title(ntitle) - title = replacetext(replacetext(ntitle,"\proper ",""),"\improper ","") + title = sanitize(ntitle) /datum/browser/proc/add_head_content(nhead_content) head_content = nhead_content diff --git a/code/datums/extensions/deity_be_near.dm b/code/datums/extensions/deity_be_near.dm index a77ac227513..ad95104e24a 100644 --- a/code/datums/extensions/deity_be_near.dm +++ b/code/datums/extensions/deity_be_near.dm @@ -51,7 +51,7 @@ if(!ishuman(I.loc)) return FALSE var/mob/living/carbon/human/H = I.loc - if(H.get_inventory_slot(I) != slot_wear_suit_str) + if(H.get_equipped_slot_for_item(I) != slot_wear_suit_str) return FALSE if(expected_helmet && !istype(H.get_equipped_item(slot_head_str), expected_helmet)) return FALSE diff --git a/code/datums/extensions/hattable.dm b/code/datums/extensions/hattable.dm index 5dc91aa4b93..a12f3fc2916 100644 --- a/code/datums/extensions/hattable.dm +++ b/code/datums/extensions/hattable.dm @@ -11,7 +11,7 @@ ..() /datum/extension/hattable/proc/wear_hat(var/mob/wearer, var/obj/item/clothing/head/new_hat) - if(hat || !new_hat) + if(hat || !istype(new_hat)) return FALSE hat = new_hat hat.forceMove(wearer) diff --git a/code/datums/helper_datums/dist_check.dm b/code/datums/helper_datums/dist_check.dm index 121b4b1d2f6..47aa457f49e 100644 --- a/code/datums/helper_datums/dist_check.dm +++ b/code/datums/helper_datums/dist_check.dm @@ -18,7 +18,7 @@ /decl/dist_check/connected_z_level/within_dist(var/atom/a, var/atom/b) var/turf/turf_a = get_turf(a) var/turf/turf_b = get_turf(b) - return turf_a && turf_b && ARE_Z_CONNECTED(turf_a.z, turf_b.z) + return turf_a && turf_b && LEVELS_ARE_Z_CONNECTED(turf_a.z, turf_b.z) /decl/dist_check/omni/within_dist() return TRUE diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index b63645e0430..f0118d55832 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -24,8 +24,8 @@ if(isAdminLevel(oz)) return isAdminLevel(tz) || isStationLevel(tz) || isContactLevel(tz) - var/list/accessible_z_levels = GetConnectedZlevels(oz) - var/obj/effect/overmap/sector = global.overmap_sectors["[oz]"] + var/list/accessible_z_levels = SSmapping.get_connected_levels(oz) + var/obj/effect/overmap/sector = global.overmap_sectors[num2text(oz)] if(sector) var/list/neighbors_to_add = list() diff --git a/code/datums/local_network.dm b/code/datums/local_network.dm index 8a343b1c557..8ecefba9f94 100644 --- a/code/datums/local_network.dm +++ b/code/datums/local_network.dm @@ -72,6 +72,6 @@ var/global/list/multilevel_local_networks = list() /datum/local_network/multilevel/within_radius(var/atom/checking) for(var/entity_list in network_entities) for(var/atom/entity in entity_list) - if(!(get_z(entity) in GetConnectedZlevels(get_z(checking)))) + if(!(get_z(entity) in SSmapping.get_connected_levels(get_z(checking)))) return FALSE return TRUE \ No newline at end of file diff --git a/code/datums/repositories/cameras.dm b/code/datums/repositories/cameras.dm index fc8f961d8d6..b0d1ab40bdc 100644 --- a/code/datums/repositories/cameras.dm +++ b/code/datums/repositories/cameras.dm @@ -26,6 +26,8 @@ var/global/repository/cameras/camera_repository = new() devices_by_channel[channel] |= added /repository/cameras/proc/remove_camera_from_channels(var/datum/extension/network_device/camera/removed, var/list/channels) + if(!length(devices_by_channel)) + return if(!islist(channels)) channels = list(channels) for(var/channel in channels) diff --git a/code/datums/repositories/crew/crew.dm b/code/datums/repositories/crew/crew.dm index 32c94c7b070..c12e23e918a 100644 --- a/code/datums/repositories/crew/crew.dm +++ b/code/datums/repositories/crew/crew.dm @@ -10,10 +10,10 @@ var/global/datum/repository/crew/crew_repository = new() cache_data = list() cache_data_alert = list() - var/PriorityQueue/general_modifiers = new/PriorityQueue(/proc/cmp_crew_sensor_modifier) - var/PriorityQueue/binary_modifiers = new/PriorityQueue(/proc/cmp_crew_sensor_modifier) - var/PriorityQueue/vital_modifiers = new/PriorityQueue(/proc/cmp_crew_sensor_modifier) - var/PriorityQueue/tracking_modifiers = new/PriorityQueue(/proc/cmp_crew_sensor_modifier) + var/datum/priority_queue/general_modifiers = new /datum/priority_queue(/proc/cmp_crew_sensor_modifier) + var/datum/priority_queue/binary_modifiers = new /datum/priority_queue(/proc/cmp_crew_sensor_modifier) + var/datum/priority_queue/vital_modifiers = new /datum/priority_queue(/proc/cmp_crew_sensor_modifier) + var/datum/priority_queue/tracking_modifiers = new /datum/priority_queue(/proc/cmp_crew_sensor_modifier) general_modifiers.Enqueue(new/crew_sensor_modifier/general()) binary_modifiers.Enqueue(new/crew_sensor_modifier/binary()) @@ -94,7 +94,7 @@ var/global/datum/repository/crew/crew_repository = new() if(. & MOD_SUIT_SENSORS_REJECTED) return -/datum/repository/crew/proc/process_crew_data(var/PriorityQueue/modifiers, var/mob/living/carbon/human/H, var/obj/item/clothing/under/C, var/turf/pos, var/list/crew_data) +/datum/repository/crew/proc/process_crew_data(var/datum/priority_queue/modifiers, var/mob/living/carbon/human/H, var/obj/item/clothing/under/C, var/turf/pos, var/list/crew_data) var/current_priority = INFINITY var/list/modifiers_of_this_priority = list() @@ -120,7 +120,7 @@ var/global/datum/repository/crew/crew_repository = new() /datum/repository/crew/proc/add_modifier(var/base_type, var/crew_sensor_modifier/csm) if(!istype(csm, base_type)) CRASH("The given crew sensor modifier was not of the given base type.") - var/PriorityQueue/pq = modifier_queues_by_type[base_type] + var/datum/priority_queue/pq = modifier_queues_by_type[base_type] if(!pq) CRASH("The given base type was not a valid base type.") if(csm in pq.L) @@ -131,7 +131,7 @@ var/global/datum/repository/crew/crew_repository = new() /datum/repository/crew/proc/remove_modifier(var/base_type, var/crew_sensor_modifier/csm) if(!istype(csm, base_type)) CRASH("The given crew sensor modifier was not of the given base type.") - var/PriorityQueue/pq = modifier_queues_by_type[base_type] + var/datum/priority_queue/pq = modifier_queues_by_type[base_type] if(!pq) CRASH("The given base type was not a valid base type.") return pq.Remove(csm) diff --git a/code/datums/trading/trade_hub_overmap.dm b/code/datums/trading/trade_hub_overmap.dm index 2afa99d5576..16096eac4eb 100644 --- a/code/datums/trading/trade_hub_overmap.dm +++ b/code/datums/trading/trade_hub_overmap.dm @@ -15,7 +15,7 @@ var/global/list/trading_hub_names = list() update_hub_datum(hub_datum) . = ..() -/obj/effect/overmap/trade_hub/proc/update_hub_datum(var/datum/trade_hub/overmap/hub) +/obj/effect/overmap/trade_hub/proc/update_hub_datum(var/datum/trade_hub/overmap/hub) hub.owner = src /obj/effect/overmap/trade_hub/Destroy() @@ -66,7 +66,7 @@ var/global/list/trading_hub_names = list() /datum/trade_hub/overmap/is_accessible_from(var/turf/check) if(istype(check)) - var/obj/effect/overmap/customer = global.overmap_sectors["[check.z]"] + var/obj/effect/overmap/customer = global.overmap_sectors[num2text(check.z)] return customer && owner && get_turf(customer) == get_turf(owner) /datum/trade_hub/overmap/proc/update_hub(var/obj/effect/overmap/trade_hub/hub) diff --git a/code/datums/uplink/services.dm b/code/datums/uplink/services.dm index 9d75d392724..87492d97334 100644 --- a/code/datums/uplink/services.dm +++ b/code/datums/uplink/services.dm @@ -86,7 +86,7 @@ if(state != AWAITING_ACTIVATION) to_chat(user, "\The [src] won't activate again.") return - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[get_z(src)]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(get_z(src))] var/choice = alert(user, "This will only affect your current location[istype(O) ? " ([O])" : ""]. Proceed?","Confirmation", "Yes", "No") if(choice != "Yes") return @@ -161,7 +161,7 @@ service_label = "Ion Storm Announcement" /obj/item/uplink_service/fake_ion_storm/enable(var/mob/user = usr) - ion_storm_announcement(GetConnectedZlevels(get_z(src))) + ion_storm_announcement(SSmapping.get_connected_levels(get_z(src))) . = ..() /***************** @@ -191,7 +191,7 @@ if(CanUseTopic(user, global.hands_topic_state) != STATUS_INTERACTIVE) return FALSE - command_announcement.Announce(message, title, msg_sanitized = 1, zlevels = GetConnectedZlevels(get_z(src))) + command_announcement.Announce(message, title, msg_sanitized = 1, zlevels = SSmapping.get_connected_levels(get_z(src))) return TRUE /********************************* diff --git a/code/game/area/area_abstract.dm b/code/game/area/area_abstract.dm index c0ee630d75c..a7cad4fbd60 100644 --- a/code/game/area/area_abstract.dm +++ b/code/game/area/area_abstract.dm @@ -1,5 +1,6 @@ /area/hallway name = "hallway" + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/maintenance area_flags = AREA_FLAG_RAD_SHIELDED @@ -7,13 +8,16 @@ turf_initializer = /decl/turf_initializer/maintenance forced_ambience = list('sound/ambience/maintambience.ogg') req_access = list(access_maint_tunnels) + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/shuttle requires_power = 0 sound_env = SMALL_ENCLOSED base_turf = /turf/space area_flags = AREA_FLAG_SHUTTLE | AREA_FLAG_RAD_SHIELDED + holomap_color = HOLOMAP_AREACOLOR_CREW /area/ship name = "\improper Generic Ship" ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg') + holomap_color = HOLOMAP_AREACOLOR_CREW diff --git a/code/game/area/area_space.dm b/code/game/area/area_space.dm index 0ec6cb45f9d..c4bc55dbe31 100644 --- a/code/game/area/area_space.dm +++ b/code/game/area/area_space.dm @@ -10,7 +10,7 @@ var/global/area/space_area power_equip = 0 power_environ = 0 has_gravity = 0 - area_flags = AREA_FLAG_EXTERNAL | AREA_FLAG_IS_NOT_PERSISTENT | AREA_FLAG_IS_BACKGROUND + area_flags = AREA_FLAG_EXTERNAL | AREA_FLAG_IS_NOT_PERSISTENT | AREA_FLAG_IS_BACKGROUND | AREA_FLAG_HIDE_FROM_HOLOMAP ambience = list('sound/ambience/ambispace1.ogg','sound/ambience/ambispace2.ogg','sound/ambience/ambispace3.ogg','sound/ambience/ambispace4.ogg','sound/ambience/ambispace5.ogg') is_outside = OUTSIDE_YES diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 233426aff38..bb86b91f607 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -12,6 +12,7 @@ var/global/list/areas = list() mouse_opacity = 0 var/proper_name /// Automatically set by SetName and Initialize; cached result of strip_improper(name). + var/holomap_color // Color of this area on the holomap. Must be a hex color (as string) or null. var/fire var/party @@ -319,24 +320,20 @@ var/global/list/areas = list() var/global/list/mob/living/forced_ambiance_list = new /area/Entered(A) - if(!istype(A,/mob/living)) return - + if(!istype(A,/mob/living)) + return var/mob/living/L = A - if(!L.lastarea) L.lastarea = get_area(L.loc) - var/area/newarea = get_area(L.loc) var/area/oldarea = L.lastarea - if(oldarea.has_gravity != newarea.has_gravity) - if(newarea.has_gravity == 1 && !MOVING_DELIBERATELY(L)) // Being ready when you change areas allows you to avoid falling. + if(!oldarea || oldarea.has_gravity != has_gravity) + if(has_gravity == 1 && !MOVING_DELIBERATELY(L)) // Being ready when you change areas allows you to avoid falling. thunk(L) L.update_floating() - if(L.ckey) play_ambience(L) do_area_blurb(L) - - L.lastarea = newarea + L.lastarea = src /area/Exited(A) @@ -364,7 +361,7 @@ var/global/list/mob/living/forced_ambiance_list = new if(LAZYLEN(forced_ambience) && !(L in forced_ambiance_list)) forced_ambiance_list += L L.playsound_local(T,sound(pick(forced_ambience), repeat = 1, wait = 0, volume = 25, channel = sound_channels.lobby_channel)) - if(length(ambience) && prob(5) && (world.time >= L.client.played + 3 MINUTES)) + if(LAZYLEN(ambience) && prob(5) && (world.time >= L.client.played + 3 MINUTES)) L.playsound_local(T, sound(pick(ambience), repeat = 0, wait = 0, volume = 15, channel = sound_channels.ambience_channel)) L.client.played = world.time diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 6b0f547f948..4d001a66a5c 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -231,12 +231,12 @@ /atom/proc/explosion_act(var/severity) SHOULD_CALL_PARENT(TRUE) - if(!currently_exploding) + . = !currently_exploding && severity > 0 && severity <= 3 + if(.) currently_exploding = TRUE - . = (severity <= 3) - if(.) + if(severity < 3) for(var/atom/movable/AM in get_contained_external_atoms()) - AM.explosion_act(severity++) + AM.explosion_act(severity + 1) try_detonate_reagents(severity) currently_exploding = FALSE diff --git a/code/game/atoms_init.dm b/code/game/atoms_init.dm index 73ae77e3761..345aec10d2b 100644 --- a/code/game/atoms_init.dm +++ b/code/game/atoms_init.dm @@ -83,7 +83,8 @@ if(opacity) updateVisibility(src) - + if(atom_codex_ref && atom_codex_ref != TRUE) // may be null, TRUE or a datum instance + QDEL_NULL(atom_codex_ref) return ..() // Called if an atom is deleted before it initializes. Only call Destroy in this if you know what you're doing. diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 5a2c6375587..a220144a3b0 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -521,6 +521,9 @@ expected_target_type = /atom/movable interaction_flags = INTERACTION_NEEDS_PHYSICAL_INTERACTION | INTERACTION_NEEDS_TURF +/decl/interaction_handler/grab/is_possible(atom/movable/target, mob/user, obj/item/prop) + return ..() && !target.anchored + /decl/interaction_handler/grab/invoked(atom/target, mob/user, obj/item/prop) var/atom/movable/AM = target AM.try_make_grab(user, defer_hand = TRUE) diff --git a/code/game/base_turf.dm b/code/game/base_turf.dm index 7807cbf6b22..edb7d1006f7 100644 --- a/code/game/base_turf.dm +++ b/code/game/base_turf.dm @@ -1,10 +1,9 @@ // Returns the lowest turf available on a given Z-level /proc/get_base_turf(var/z_num) - var/z = num2text(z_num) - if(!global.using_map.base_turf_by_z[z]) - global.using_map.base_turf_by_z[z] = world.turf - return global.using_map.base_turf_by_z[z] + if(!SSmapping.base_turf_by_z[z_num]) + SSmapping.base_turf_by_z[z_num] = world.turf + return SSmapping.base_turf_by_z[z_num] //An area can override the z-level base turf, so our solar array areas etc. can be space-based. /proc/get_base_turf_by_area(var/turf/T) @@ -25,13 +24,13 @@ if(!check_rights(R_DEBUG)) return - var/choice = input("Which Z-level do you wish to set the base turf for?") as num|null + var/choice = clamp(input("Which Z-level do you wish to set the base turf for?") as num|null, 0, length(SSmapping.base_turf_by_z)) if(!choice) return var/new_base_path = input("Please select a turf path (cancel to reset to /turf/space).") as null|anything in typesof(/turf) if(!new_base_path) new_base_path = /turf/space - global.using_map.base_turf_by_z["[choice]"] = new_base_path + SSmapping.base_turf_by_z[choice] = new_base_path message_admins("[key_name_admin(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].") log_admin("[key_name(usr)] has set the base turf for z-level [choice] to [get_base_turf(choice)].") diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index eee59e383a1..ec1b5161781 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -141,15 +141,10 @@ var/global/list/datum/dna/gene/dna_genes[0] SetUIState(DNA_UI_GENDER, character.gender!=MALE, 1) // Hair - // FIXME: Species-specific defaults pls - if(!character.h_style) - character.h_style = /decl/sprite_accessory/hair/bald var/list/hair_types = decls_repository.get_decl_paths_of_subtype(/decl/sprite_accessory/hair) SetUIValueRange(DNA_UI_HAIR_STYLE, hair_types.Find(character.h_style), length(hair_types), 1) // Facial Hair - if(!character.f_style) - character.f_style = /decl/sprite_accessory/facial_hair/shaved var/list/beard_types = decls_repository.get_decl_paths_of_subtype(/decl/sprite_accessory/facial_hair) SetUIValueRange(DNA_UI_BEARD_STYLE, beard_types.Find(character.f_style), length(beard_types), 1) @@ -158,6 +153,8 @@ var/global/list/datum/dna/gene/dna_genes[0] if(LAZYLEN(E.markings)) body_markings[E.organ_tag] = E.markings.Copy() + b_type = character.b_type + UpdateUI() // Set a DNA UI block's raw value. diff --git a/code/game/gamemodes/endgame/ftl_jump/ftl_jump.dm b/code/game/gamemodes/endgame/ftl_jump/ftl_jump.dm index 1b24c48325b..fae76f7aadc 100644 --- a/code/game/gamemodes/endgame/ftl_jump/ftl_jump.dm +++ b/code/game/gamemodes/endgame/ftl_jump/ftl_jump.dm @@ -9,12 +9,12 @@ affected_levels = zlevels /datum/universal_state/jump/OnEnter() - var/space_zlevel = get_empty_zlevel(/turf/space) //get a place for stragglers + var/obj/abstract/level_data/space_zlevel = SSmapping.increment_world_z_size(/obj/abstract/level_data/space) //get a place for stragglers for(var/mob/living/M in SSmobs.mob_list) if(M.z in affected_levels) var/area/A = get_area(M) if(istype(A,/area/space)) //straggler - var/turf/T = locate(M.x, M.y, space_zlevel) + var/turf/T = locate(M.x, M.y, space_zlevel.my_z) if(T) M.forceMove(T) else @@ -23,9 +23,9 @@ goast.mouse_opacity = 0 //can't let you click that Dave goast.set_invisibility(SEE_INVISIBLE_LIVING) goast.alpha = 255 - old_accessible_z_levels = global.using_map.accessible_z_levels.Copy() + old_accessible_z_levels = SSmapping.accessible_z_levels.Copy() for(var/z in affected_levels) - global.using_map.accessible_z_levels -= "[z]" //not accessible during the jump + SSmapping.accessible_z_levels -= num2text(z) //not accessible during the jump /datum/universal_state/jump/OnExit() for(var/mob/M in duplicated) @@ -33,7 +33,7 @@ clear_duplicated(M) duplicated.Cut() - global.using_map.accessible_z_levels = old_accessible_z_levels + SSmapping.accessible_z_levels = old_accessible_z_levels old_accessible_z_levels = null /datum/universal_state/jump/OnPlayerLatejoin(var/mob/living/M) diff --git a/code/game/gamemodes/endgame/nuclear_explosion/nuclear_explosion.dm b/code/game/gamemodes/endgame/nuclear_explosion/nuclear_explosion.dm index 15ba769b733..b8c6afdaf28 100644 --- a/code/game/gamemodes/endgame/nuclear_explosion/nuclear_explosion.dm +++ b/code/game/gamemodes/endgame/nuclear_explosion/nuclear_explosion.dm @@ -26,12 +26,12 @@ if(isStationLevel(T.z)) to_world("The [station_name()] was destoyed by the nuclear blast!") - dust_mobs(GetConnectedZlevels(T.z)) + dust_mobs(SSmapping.get_connected_levels(T.z)) play_cinematic_station_destroyed() else to_world("A nuclear device was set off, but the explosion was out of reach of the [station_name()]!") - dust_mobs(GetConnectedZlevels(T.z)) + dust_mobs(SSmapping.get_connected_levels(T.z)) play_cinematic_station_unaffected() sleep(100) diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index dc57d857391..00d60dbf8cd 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -86,7 +86,7 @@ next_wave = round_duration_in_ticks + meteor_wave_delay // Starts as barely noticeable dust impact, ends as barrage of most severe meteor types the code has to offer. Have fun. spawn() - spawn_meteors(meteor_severity, get_meteor_types(), pick(global.cardinal), pick(global.using_map.station_levels)) + spawn_meteors(meteor_severity, get_meteor_types(), pick(global.cardinal), pick(SSmapping.station_levels)) var/escalated = FALSE if(prob(escalation_probability) && (meteor_severity < maximal_severity)) meteor_severity++ diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index 70191556cf9..356f13022f1 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -240,7 +240,7 @@ //Find a server if (href_list["find"]) var/list/local_message_servers = list() - var/list/local_zs = GetConnectedZlevels(z) + var/list/local_zs = SSmapping.get_connected_levels(z) for(var/obj/machinery/network/message_server/MS in SSmachines.machinery) if((MS.z in local_zs) && !(MS.stat & (BROKEN|NOPOWER))) local_message_servers += MS @@ -331,7 +331,7 @@ var/turf/T = get_turf(src) if(!T) return - var/list/our_z = GetConnectedZlevels(T.z) + var/list/our_z = SSmapping.get_connected_levels(T.z) for(var/obj/machinery/network/message_server/server in SSmachines.machinery) if((server.z in our_z) && !(server.stat & (BROKEN|NOPOWER)) && !isnull(server.decryptkey)) info = "

Daily Key Reset


The new message monitor key is '[server.decryptkey]'.
This key is only intended for personnel granted access to the messaging server. Keep it safe.
If necessary, change the password to a more secure one." diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm index b81a1108780..7d4c202b05c 100644 --- a/code/game/machinery/computer/prisoner.dm +++ b/code/game/machinery/computer/prisoner.dm @@ -23,7 +23,7 @@ var/turf/Tr = null for(var/obj/item/implant/chem/C in global.chem_implants) Tr = get_turf(C) - if((Tr) && !ARE_Z_CONNECTED(Tr.z, src.z)) continue // Out of range + if((Tr) && !LEVELS_ARE_Z_CONNECTED(Tr.z, src.z)) continue // Out of range if(!C.implanted) continue dat += "[C.imp_in.name] | Remaining Units: [C.reagents.total_volume] | Inject: " dat += "((1))" @@ -33,7 +33,7 @@ dat += "
Tracking Implants
" for(var/obj/item/implant/tracking/T in global.tracking_implants) Tr = get_turf(T) - if((Tr) && !ARE_Z_CONNECTED(Tr.z, src.z)) continue // Out of range + if((Tr) && !LEVELS_ARE_Z_CONNECTED(Tr.z, src.z)) continue // Out of range if(!T.implanted) continue var/loc_display = "Space" var/mob/living/carbon/M = T.imp_in diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index bb4e20d6cfd..912119325ee 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -16,7 +16,7 @@ density = 0 interact_offline = 1 obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED - directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':32}, 'EAST':{'x':-24}, 'WEST':{'x':-24}}" + directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':32}, 'EAST':{'x':24}, 'WEST':{'x':-24}}" //Used for logging people entering cryosleep and important items they are carrying. var/list/frozen_crew = list() @@ -85,7 +85,7 @@ if(!allow_items) return if(frozen_items.len == 0) - to_chat(user, "There is nothing to recover from storage.") + to_chat(user, SPAN_NOTICE("There is nothing to recover from storage.")) return TOPIC_HANDLED var/obj/item/I = input(user, "Please choose which object to retrieve.","Object recovery",null) as null|anything in frozen_items @@ -93,10 +93,10 @@ return TOPIC_HANDLED if(!(I in frozen_items)) - to_chat(user, "\The [I] is no longer in storage.") + to_chat(user, SPAN_NOTICE("\The [I] is no longer in storage.")) return TOPIC_HANDLED - visible_message("The console beeps happily as it disgorges \the [I].", range = 3) + visible_message(SPAN_NOTICE("The console beeps happily as it disgorges \the [I]."), range = 3) I.dropInto(loc) frozen_items -= I @@ -106,10 +106,10 @@ if(!allow_items) return TOPIC_HANDLED if(frozen_items.len == 0) - to_chat(user, "There is nothing to recover from storage.") + to_chat(user, SPAN_NOTICE("There is nothing to recover from storage.")) return TOPIC_HANDLED - visible_message("The console beeps happily as it disgorges the desired objects.", range = 3) + visible_message(SPAN_NOTICE("The console beeps happily as it disgorges the desired objects."), range = 3) for(var/obj/item/I in frozen_items) I.dropInto(loc) @@ -211,21 +211,26 @@ B.force_open() break - var/list/possible_locations = list() - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] - if(istype(O)) - for(var/obj/effect/overmap/visitable/OO in range(O,2)) - if((OO.sector_flags & OVERMAP_SECTOR_IN_SPACE) || istype(OO,/obj/effect/overmap/visitable/sector/exoplanet)) - possible_locations |= text2num(level) - - var/newz = get_empty_zlevel(/turf/space) - if(possible_locations.len && prob(10)) - newz = pick(possible_locations) - var/turf/nloc = locate(rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE), rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE),newz) - if(!isspaceturf(nloc)) - explosion(nloc, 1, 2, 3) - playsound(loc,'sound/effects/rocket.ogg',100) - forceMove(nloc) + var/newz + if(prob(10)) + var/list/possible_locations + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(z)] + if(istype(O)) + for(var/obj/effect/overmap/visitable/OO in range(O,2)) + if((OO.sector_flags & OVERMAP_SECTOR_IN_SPACE) || istype(OO,/obj/effect/overmap/visitable/sector/exoplanet)) + LAZYDISTINCTADD(possible_locations, text2num(level)) + if(length(possible_locations)) + newz = pick(possible_locations) + if(!newz) + var/obj/abstract/level_data/level = SSmapping.increment_world_z_size(/obj/abstract/level_data/space) + newz = level?.my_z + + if(newz) + var/turf/nloc = locate(rand(TRANSITIONEDGE, world.maxx-TRANSITIONEDGE), rand(TRANSITIONEDGE, world.maxy-TRANSITIONEDGE), newz) + if(!isspaceturf(nloc)) + explosion(nloc, 1, 2, 3) + playsound(loc,'sound/effects/rocket.ogg',100) + forceMove(nloc) //Don't use these for in-round leaving // don't tell me what to do chinsky @@ -435,7 +440,7 @@ if(istype(G, /obj/item/grab)) var/obj/item/grab/grab = G if(occupant) - to_chat(user, "\The [src] is in use.") + to_chat(user, SPAN_NOTICE("\The [src] is in use.")) return if(!ismob(grab.affecting)) @@ -492,7 +497,7 @@ return if(src.occupant) - to_chat(usr, "\The [src] is in use.") + to_chat(usr, SPAN_NOTICE("\The [src] is in use.")) return set_occupant(usr) @@ -527,8 +532,8 @@ if(occupant.client) if(!silent) - to_chat(occupant, "[on_enter_occupant_message]") - to_chat(occupant, "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.") + to_chat(occupant, SPAN_NOTICE("[on_enter_occupant_message]")) + to_chat(occupant, SPAN_NOTICE("If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.")) occupant.client.perspective = EYE_PERSPECTIVE occupant.client.eye = src occupant.forceMove(src) @@ -556,13 +561,13 @@ /obj/structure/broken_cryo/attack_hand(mob/user) ..() if (closed) - to_chat(user, "You tug at the glass but can't open it with your hands alone.") + to_chat(user, SPAN_NOTICE("You tug at the glass but can't open it with your hands alone.")) else - to_chat(user, "The glass is already open.") + to_chat(user, SPAN_NOTICE("The glass is already open.")) /obj/structure/broken_cryo/attackby(obj/item/W, mob/user) if (busy) - to_chat(user, "Someone else is attempting to open this.") + to_chat(user, SPAN_NOTICE("Someone else is attempting to open this.")) return if (closed) if (IS_CROWBAR(W)) @@ -578,7 +583,7 @@ var/obj/dead = new remains_type(loc) dead.set_dir(dir) //skeleton is oriented as cryo else - to_chat(user, "The glass cover is already open.") + to_chat(user, SPAN_NOTICE("The glass cover is already open.")) /obj/machinery/cryopod/proc/on_mob_spawn() playsound(src, 'sound/machines/ding.ogg', 30, 1) \ No newline at end of file diff --git a/code/game/machinery/doors/_door.dm b/code/game/machinery/doors/_door.dm index 5e13b1cf78d..0247544b7fa 100644 --- a/code/game/machinery/doors/_door.dm +++ b/code/game/machinery/doors/_door.dm @@ -325,20 +325,36 @@ return FALSE /obj/machinery/door/take_damage(var/damage, damtype=BRUTE) - var/initialhealth = src.health - src.health = max(0, src.health - damage) - if(src.health <= 0 && initialhealth > 0) + if(!health) + ..(damage, damtype) + update_icon() + return + + var/component_damage = get_damage_leakthrough(damage, BRUTE) + damage -= component_damage + + //Part of damage is soaked by our own health + var/initialhealth = health + health = max(0, health - damage) + if(health <= 0 && initialhealth > 0) visible_message(SPAN_WARNING("\The [src] breaks down!")) - src.set_broken(TRUE) - else if(src.health < src.maxhealth / 4 && initialhealth >= src.maxhealth / 4) + set_broken(TRUE) + else if(health < maxhealth / 4 && initialhealth >= maxhealth / 4) visible_message(SPAN_WARNING("\The [src] looks like it's about to break!")) - else if(src.health < src.maxhealth / 2 && initialhealth >= src.maxhealth / 2) + else if(health < maxhealth / 2 && initialhealth >= maxhealth / 2) visible_message(SPAN_WARNING("\The [src] looks seriously damaged!")) - else if(src.health < src.maxhealth * 3/4 && initialhealth >= src.maxhealth * 3/4) + else if(health < maxhealth * 3/4 && initialhealth >= maxhealth * 3/4) visible_message(SPAN_WARNING("\The [src] shows signs of damage!")) - ..(max(0, damage - initialhealth), damtype) + + ..(component_damage, damtype) update_icon() +//How much damage should be passed to components inside even when door health is non zero +/obj/machinery/door/proc/get_damage_leakthrough(var/damage, damtype=BRUTE) + if(health > 0.75 * maxhealth && damage < 10) + return 0 + . = round((1 - health/maxhealth) * damage) + /obj/machinery/door/examine(mob/user) . = ..() if(src.health <= 0) diff --git a/code/game/machinery/doors/airlock_subtypes.dm b/code/game/machinery/doors/airlock_subtypes.dm index 5b1f2722c9f..9be22784a4e 100644 --- a/code/game/machinery/doors/airlock_subtypes.dm +++ b/code/game/machinery/doors/airlock_subtypes.dm @@ -217,6 +217,8 @@ frame_type = /obj/structure/door_assembly/door_assembly_highsecurity paintable = 0 +/obj/machinery/door/airlock/highsecurity/get_damage_leakthrough(var/damage, damtype=BRUTE) + return 0 /obj/machinery/door/airlock/highsecurity/bolted locked = TRUE @@ -256,5 +258,7 @@ frame_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites. paintable = PAINT_PAINTABLE|PAINT_STRIPABLE +/obj/machinery/door/airlock/vault/get_damage_leakthrough(var/damage, damtype=BRUTE) + return 0 /obj/machinery/door/airlock/vault/bolted locked = TRUE diff --git a/code/game/machinery/embedded_controller/airlock_controllers.dm b/code/game/machinery/embedded_controller/airlock_controllers.dm index c13901f9d71..346dfab73c3 100644 --- a/code/game/machinery/embedded_controller/airlock_controllers.dm +++ b/code/game/machinery/embedded_controller/airlock_controllers.dm @@ -13,6 +13,8 @@ var/tag_air_alarm var/list/dummy_terminals = list() // Internal use only; set id_tag on the dummy terminal to be added. var/cycle_to_external_air = 0 + var/tag_pump_out_external + var/tag_pump_out_internal /obj/machinery/embedded_controller/radio/airlock/modify_mapped_vars(map_hash) ..() @@ -23,6 +25,8 @@ ADJUST_TAG_VAR(tag_exterior_sensor, map_hash) ADJUST_TAG_VAR(tag_interior_sensor, map_hash) ADJUST_TAG_VAR(tag_air_alarm, map_hash) + ADJUST_TAG_VAR(tag_pump_out_external, map_hash) + ADJUST_TAG_VAR(tag_pump_out_internal, map_hash) /obj/machinery/embedded_controller/radio/airlock/Destroy() for(var/obj/machinery/dummy_airlock_controller/terminal in dummy_terminals) diff --git a/code/game/machinery/embedded_controller/airlock_program.dm b/code/game/machinery/embedded_controller/airlock_program.dm index 98d6da3bd30..4eb4b321fe0 100644 --- a/code/game/machinery/embedded_controller/airlock_program.dm +++ b/code/game/machinery/embedded_controller/airlock_program.dm @@ -48,11 +48,11 @@ /datum/computer/file/embedded_program/airlock/reset_id_tags(base_tag) . = ..() - if(cycle_to_external_air) - tag_pump_out_external = "[id_tag]_pump_out_external" - tag_pump_out_internal = "[id_tag]_pump_out_internal" if(istype(master, /obj/machinery/embedded_controller/radio/airlock)) //if our controller is an airlock controller than we can auto-init our tags var/obj/machinery/embedded_controller/radio/airlock/controller = master + if(cycle_to_external_air) + tag_pump_out_external = SET_AIRLOCK_TAG(controller.tag_pump_out_external, "[id_tag]_pump_out_external") + tag_pump_out_internal = SET_AIRLOCK_TAG(controller.tag_pump_out_internal, "[id_tag]_pump_out_internal") tag_exterior_door = SET_AIRLOCK_TAG(controller.tag_exterior_door, "[id_tag]_outer") tag_interior_door = SET_AIRLOCK_TAG(controller.tag_interior_door, "[id_tag]_inner") tag_airpump = SET_AIRLOCK_TAG(controller.tag_airpump, "[id_tag]_pump") diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 6ff3659a291..9b211dbfce8 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -95,7 +95,7 @@ var/global/const/HOLOPAD_MODE = RANGE_BASED var/area/area = get_area(src) for(var/mob/living/silicon/ai/AI in global.living_mob_list_) if(!AI.client) continue - if (holopadType != HOLOPAD_LONG_RANGE && !AreConnectedZLevels(AI.z, src.z)) + if (holopadType != HOLOPAD_LONG_RANGE && !SSmapping.are_connected_levels(AI.z, src.z)) continue to_chat(AI, "Your presence is requested at \the [area.proper_name].") else @@ -107,11 +107,11 @@ var/global/const/HOLOPAD_MODE = RANGE_BASED if(last_request + 200 < world.time) //don't spam other people with requests either, you jerk! last_request = world.time var/list/holopadlist = list() - var/zlevels = GetConnectedZlevels(z) + var/zlevels = SSmapping.get_connected_levels(z) var/zlevels_long = list() if(holopadType == HOLOPAD_LONG_RANGE && length(reachable_overmaps)) for(var/zlevel in global.overmap_sectors) - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[zlevel]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(zlevel)] if(!isnull(O) && (O.overmap_id in reachable_overmaps)) zlevels_long |= O.map_z for(var/obj/machinery/hologram/holopad/H in SSmachines.machinery) @@ -180,7 +180,7 @@ var/global/const/HOLOPAD_MODE = RANGE_BASED user.eyeobj.setLoc(get_turf(src)) else if (!allow_ai) to_chat(user, SPAN_WARNING("Access denied.")) - else if (holopadType != HOLOPAD_LONG_RANGE && !AreConnectedZLevels(user.z, src.z)) + else if (holopadType != HOLOPAD_LONG_RANGE && !SSmapping.are_connected_levels(user.z, src.z)) to_chat(user, SPAN_WARNING("Out of range.")) else if(!masters[user])//If there is no hologram, possibly make one. activate_holo(user) diff --git a/code/game/machinery/oxygen_pump.dm b/code/game/machinery/oxygen_pump.dm index 82d7fd2d4a0..0a3fb1b0a73 100644 --- a/code/game/machinery/oxygen_pump.dm +++ b/code/game/machinery/oxygen_pump.dm @@ -21,6 +21,7 @@ power_channel = ENVIRON idle_power_usage = 10 active_power_usage = 120 // No idea what the realistic amount would be. + directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':28}, 'EAST':{'x':24}, 'WEST':{'x':-24}}" /obj/machinery/oxygen_pump/Initialize() . = ..() @@ -34,7 +35,7 @@ qdel(tank) if(breather) breather.drop_from_inventory(contained) - src.visible_message("The mask rapidly retracts just before /the [src] is destroyed!") + src.visible_message(SPAN_NOTICE("The mask rapidly retracts just before /the [src] is destroyed!")) qdel(contained) contained = null breather = null @@ -52,7 +53,7 @@ /obj/machinery/oxygen_pump/physical_attack_hand(mob/user) if((stat & MAINT) && tank) - user.visible_message("\The [user] removes \the [tank] from \the [src].", "You remove \the [tank] from \the [src].") + user.visible_message(SPAN_NOTICE("\The [user] removes \the [tank] from \the [src]."), SPAN_NOTICE("You remove \the [tank] from \the [src].")) user.put_in_hands(tank) src.add_fingerprint(user) tank.add_fingerprint(user) @@ -85,9 +86,9 @@ tank.forceMove(src) breather.drop_from_inventory(contained, src) if(user) - visible_message("\The [user] detaches \the [contained] and it rapidly retracts back into \the [src]!") + visible_message(SPAN_NOTICE("\The [user] detaches \the [contained] and it rapidly retracts back into \the [src]!")) else - visible_message("\The [contained] rapidly retracts back into \the [src]!") + visible_message(SPAN_NOTICE("\The [contained] rapidly retracts back into \the [src]!")) if(breather.internals) breather.internals.icon_state = "internal0" breather = null @@ -98,44 +99,44 @@ user = target // Check target validity if(!GET_EXTERNAL_ORGAN(target, BP_HEAD)) - to_chat(user, "\The [target] doesn't have a head.") + to_chat(user, SPAN_WARNING("\The [target] doesn't have a head.")) return if(!target.check_has_mouth()) - to_chat(user, "\The [target] doesn't have a mouth.") + to_chat(user, SPAN_WARNING("\The [target] doesn't have a mouth.")) return var/obj/item/mask = target.get_equipped_item(slot_wear_mask_str) if(mask && target != breather) - to_chat(user, "\The [target] is already wearing a mask.") + to_chat(user, SPAN_WARNING("\The [target] is already wearing a mask.")) return var/obj/item/head = target.get_equipped_item(slot_head_str) if(head && (head.body_parts_covered & SLOT_FACE)) - to_chat(user, "Remove their [head] first.") + to_chat(user, SPAN_WARNING("Remove their [head] first.")) return if(!tank) - to_chat(user, "There is no tank in \the [src].") + to_chat(user, SPAN_WARNING("There is no tank in \the [src].")) return if(stat & MAINT) - to_chat(user, "Please close \the maintenance hatch first.") + to_chat(user, SPAN_WARNING("Please close the maintenance hatch first.")) return if(!Adjacent(target)) - to_chat(user, "Please stay close to \the [src].") + to_chat(user, SPAN_WARNING("Please stay close to \the [src].")) return //when there is a breather: if(breather && target != breather) - to_chat(user, "\The pump is already in use.") + to_chat(user, SPAN_WARNING("The pump is already in use.")) return //Checking if breather is still valid mask = target.get_equipped_item(slot_wear_mask_str) if(target == breather && (!mask || mask != contained)) - to_chat(user, "\The [target] is not using the supplied mask.") + to_chat(user, SPAN_WARNING("\The [target] is not using the supplied mask.")) return return 1 /obj/machinery/oxygen_pump/attackby(obj/item/W, mob/user) if(IS_SCREWDRIVER(W)) stat ^= MAINT - user.visible_message("\The [user] [stat & MAINT ? "opens" : "closes"] \the [src].", "You [stat & MAINT ? "open" : "close"] \the [src].") + user.visible_message(SPAN_NOTICE("\The [user] [stat & MAINT ? "opens" : "closes"] \the [src]."), SPAN_NOTICE("You [stat & MAINT ? "open" : "close"] \the [src].")) if(stat & MAINT) icon_state = icon_state_open if(!stat) @@ -143,22 +144,22 @@ //TO-DO: Open icon if(istype(W, /obj/item/tank) && (stat & MAINT)) if(tank) - to_chat(user, "\The [src] already has a tank installed!") + to_chat(user, SPAN_WARNING("\The [src] already has a tank installed!")) else if(!user.unEquip(W, src)) return tank = W - user.visible_message("\The [user] installs \the [tank] into \the [src].", "You install \the [tank] into \the [src].") + user.visible_message(SPAN_NOTICE("\The [user] installs \the [tank] into \the [src]."), SPAN_NOTICE("You install \the [tank] into \the [src].")) src.add_fingerprint(user) if(istype(W, /obj/item/tank) && !stat) - to_chat(user, "Please open the maintenance hatch first.") + to_chat(user, SPAN_WARNING("Please open the maintenance hatch first.")) /obj/machinery/oxygen_pump/examine(mob/user) . = ..() if(tank) to_chat(user, "The meter shows [round(tank.air_contents.return_pressure())].") else - to_chat(user, "It is missing a tank!") + to_chat(user, SPAN_WARNING("It is missing a tank!")) /obj/machinery/oxygen_pump/Process() @@ -180,7 +181,7 @@ /obj/machinery/oxygen_pump/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) var/data[0] if(!tank) - to_chat(usr, "It is missing a tank!") + to_chat(usr, SPAN_WARNING("It is missing a tank!")) data["tankPressure"] = 0 data["releasePressure"] = 0 data["defaultReleasePressure"] = 0 diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index e5111e5dd54..ddcf0287161 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -118,7 +118,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() if(!listening_levels) //Defaults to our Z level! var/turf/position = get_turf(src) - listening_levels = GetConnectedZlevels(position.z) + listening_levels = SSmapping.get_connected_levels(position.z) if(autolinkers.len) // Links nearby machines @@ -162,12 +162,12 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/Move() . = ..() - listening_levels = GetConnectedZlevels(z) + listening_levels = (z ? SSmapping.get_connected_levels(z) : list()) update_power() /obj/machinery/telecomms/forceMove(var/newloc) . = ..(newloc) - listening_levels = GetConnectedZlevels(z) + listening_levels = (z ? SSmapping.get_connected_levels(z) : list()) update_power() /obj/machinery/telecomms/proc/update_power() diff --git a/code/game/machinery/vending/medical.dm b/code/game/machinery/vending/medical.dm index 89cb52abf9c..fe21b91e4f4 100644 --- a/code/game/machinery/vending/medical.dm +++ b/code/game/machinery/vending/medical.dm @@ -53,7 +53,7 @@ /obj/item/storage/med_pouch/toxin ) contraband = list(/obj/item/chems/syringe/antitoxin = 4,/obj/item/chems/syringe/antibiotic = 4,/obj/item/chems/pill/bromide = 1) - directional_offset = "{'NORTH':{'y':-32}, 'SOUTH':{'y':32}, 'EAST':{'x':32}, 'WEST':{'x':-32}}" + directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':24}, 'EAST':{'x':-24}, 'WEST':{'x':24}}" obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED /obj/machinery/vending/wallmed2 @@ -76,5 +76,5 @@ /obj/item/storage/med_pouch/radiation ) contraband = list(/obj/item/chems/pill/bromide = 3, /obj/item/chems/hypospray/autoinjector/pain = 2) - directional_offset = "{'NORTH':{'y':-32}, 'SOUTH':{'y':32}, 'EAST':{'x':32}, 'WEST':{'x':-32}}" + directional_offset = "{'NORTH':{'y':-24}, 'SOUTH':{'y':24}, 'EAST':{'x':-24}, 'WEST':{'x':24}}" obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED diff --git a/code/game/objects/compass/compass_holder.dm b/code/game/objects/compass/compass_holder.dm index 0c27fe176cb..f557d013c31 100644 --- a/code/game/objects/compass/compass_holder.dm +++ b/code/game/objects/compass/compass_holder.dm @@ -65,7 +65,8 @@ var/global/list/angle_step_to_dir = list( return global.angle_step_to_dir[clamp(round(angle/45)+1, 1, length(global.angle_step_to_dir))] /obj/compass_holder/Destroy() - QDEL_NULL_LIST(compass_waypoints) + QDEL_LIST_ASSOC_VAL(compass_waypoints) + compass_waypoints = null . = ..() /obj/compass_holder/proc/get_heading_strength() diff --git a/code/game/objects/effects/chem/chemsmoke.dm b/code/game/objects/effects/chem/chemsmoke.dm index 0a9894fb4b1..793495489c4 100644 --- a/code/game/objects/effects/chem/chemsmoke.dm +++ b/code/game/objects/effects/chem/chemsmoke.dm @@ -34,8 +34,7 @@ /obj/effect/effect/smoke/chem/Destroy() walk(src, 0) // Because we might have called walk_to, we must stop the walk loop or BYOND keeps an internal reference to us forever. set_opacity(0) - // TODO - fadeOut() sleeps. Sleeping in /Destroy is Bad, this needs to be fixed. - fadeOut() + set_density(0) return ..() /obj/effect/effect/smoke/chem/Move() @@ -62,14 +61,15 @@ reagents.splash(AM, splash_amount, copy = 1) // Fades out the smoke smoothly using it's alpha variable. -/obj/effect/effect/smoke/chem/proc/fadeOut(var/frames = 16) - if(!alpha) return //already transparent - - frames = max(frames, 1) //We will just assume that by 0 frames, the coder meant "during one frame". - var/alpha_step = round(alpha / frames) - while(alpha > 0) - alpha = max(0, alpha - alpha_step) - sleep(world.tick_lag) +/obj/effect/effect/smoke/chem/end_of_life() + if(QDELETED(src)) + return + walk(src, 0) // Because we might have called walk_to, we must stop the walk loop or BYOND keeps an internal reference to us forever. + set_opacity(0) + set_density(0) + animate(src, alpha = 0, time = 0.5 SECONDS) + sleep(0.5 SECONDS) + ..() ///////////////////////////////////////////// // Chem Smoke Effect System diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index a7f89209c25..631699a672f 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -182,7 +182,11 @@ steam.start() -- spawns the effect . = ..() if(smoke_duration) time_to_live = smoke_duration - QDEL_IN(src, time_to_live) + addtimer(CALLBACK(src, .proc/end_of_life), time_to_live) + +/obj/effect/effect/smoke/proc/end_of_life() + if(!QDELETED(src)) + qdel(src) /obj/effect/effect/smoke/Crossed(mob/living/carbon/M) ..() diff --git a/code/game/objects/effects/fluids.dm b/code/game/objects/effects/fluids.dm index 283205e971a..4009776528a 100644 --- a/code/game/objects/effects/fluids.dm +++ b/code/game/objects/effects/fluids.dm @@ -125,7 +125,8 @@ var/global/obj/abstract/flood/flood_object = new color = COLOR_LIQUID_WATER icon = 'icons/effects/liquids.dmi' icon_state = "ocean" - alpha = FLUID_MAX_ALPHA + alpha = 140 + invisibility = 0 /obj/effect/fluid/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) . = ..() diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 32395698f16..e3a2cedd855 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -198,7 +198,7 @@ CHECK_TICK continue - if (!ARE_Z_CONNECTED(T.z, epicenter.z)) + if (!LEVELS_ARE_Z_CONNECTED(T.z, epicenter.z)) CHECK_TICK continue diff --git a/code/game/objects/item.dm b/code/game/objects/item.dm index 10803edb7c7..a95cdcb5280 100644 --- a/code/game/objects/item.dm +++ b/code/game/objects/item.dm @@ -102,7 +102,7 @@ /obj/item/proc/dropped_sound_callback() if(!ismob(loc) && drop_sound) - playsound(src, drop_sound, 25, 0) + playsound(src, pick(drop_sound), 25, 0) /obj/item/proc/get_origin_tech() return origin_tech @@ -208,7 +208,7 @@ var/desc_comp = "" //For "description composite" desc_comp += "It is a [w_class_description()] item." - var/desc_damage = get_examined_damage_string() + var/desc_damage = get_examined_damage_string(health / max_health) if(length(desc_damage)) desc_comp += "
[desc_damage]" @@ -675,20 +675,21 @@ var/global/list/slot_flags_enumeration = list( return TRUE -var/global/list/blood_overlay_cache = list() - +var/global/list/_blood_overlay_cache = list() +var/global/list/_item_blood_mask = icon('icons/effects/blood.dmi', "itemblood") /obj/item/proc/generate_blood_overlay(force = FALSE) if(blood_overlay && !force) return - if(global.blood_overlay_cache["[icon]" + icon_state]) - blood_overlay = global.blood_overlay_cache["[icon]" + icon_state] + var/cache_key = "[icon]-[icon_state]" + if(global._blood_overlay_cache[cache_key]) + blood_overlay = global._blood_overlay_cache[cache_key] return var/icon/I = new /icon(icon, icon_state) - I.Blend(new /icon('icons/effects/blood.dmi', rgb(255,255,255)),ICON_ADD) //fills the icon_state with white (except where it's transparent) - I.Blend(new /icon('icons/effects/blood.dmi', "itemblood"),ICON_MULTIPLY) //adds blood and the remaining white areas become transparant + I.MapColors(0,0,0, 0,0,0, 0,0,0, 1,1,1) // Sets the icon RGB channel to pure white. + I.Blend(global._item_blood_mask, ICON_MULTIPLY) // Masks the blood overlay against the generated mask. blood_overlay = image(I) blood_overlay.appearance_flags |= NO_CLIENT_COLOR|RESET_COLOR - global.blood_overlay_cache["[icon]" + icon_state] = blood_overlay + global._blood_overlay_cache[cache_key] = blood_overlay /obj/item/proc/showoff(mob/user) for(var/mob/M in view(user)) @@ -900,7 +901,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. screen_loc = null else if(client) client.screen |= src - if(!client.mob || !client.mob.hud_used || !slot || (!client.mob.hud_used.inventory_shown && (slot in global.hidden_inventory_slots))) + if(!client.mob?.item_should_have_screen_presence(src, slot)) screen_loc = null /obj/item/proc/gives_weather_protection() diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index b009d4b8d5c..f23ad7ee1c7 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -43,7 +43,7 @@ var/turf/T = get_turf(src) if(istype(T) && length(global.using_map.overmap_ids)) - var/obj/effect/overmap/visitable/sector/S = global.overmap_sectors["[T.z]"] + var/obj/effect/overmap/visitable/sector/S = global.overmap_sectors[num2text(T.z)] if(!S) // The blueprints are useless now, but keep them around for fluff. desc = "Some dusty old blueprints. The markings are old, and seem entirely irrelevant for your wherabouts." return FALSE @@ -56,7 +56,7 @@ desc = "Blueprints of the [station_name()]. There is a \"Classified\" stamp and several coffee stains on it." area_prefix = station_name() - valid_z_levels += global.using_map.station_levels + valid_z_levels += SSmapping.station_levels return TRUE //For use on exoplanets @@ -65,14 +65,14 @@ icon_state = "blueprints2" /obj/item/blueprints/outpost/attack_self(mob/user) - var/obj/effect/overmap/visitable/sector/S = global.overmap_sectors["[get_z(user)]"] + var/obj/effect/overmap/visitable/sector/S = global.overmap_sectors[num2text(get_z(user))] area_prefix = S.name . = ..() /obj/item/blueprints/outpost/set_valid_z_levels() var/turf/T = get_turf(src) if(istype(T) && length(global.using_map.overmap_ids)) - var/obj/effect/overmap/visitable/sector/S = global.overmap_sectors["[T.z]"] + var/obj/effect/overmap/visitable/sector/S = global.overmap_sectors[num2text(T.z)] if(istype(S)) T = locate(1, 1, S.z) var/area/overmap/map = T && get_area(T) diff --git a/code/game/objects/items/cryobag.dm b/code/game/objects/items/cryobag.dm index 9d7ed58d5aa..fd0650c3fd6 100644 --- a/code/game/objects/items/cryobag.dm +++ b/code/game/objects/items/cryobag.dm @@ -72,13 +72,13 @@ add_overlay(I) /obj/structure/closet/body_bag/cryobag/proc/get_saturation() - return -155 * (1 - stasis_power/initial(stasis_power)) + return stasis_power / initial(stasis_power) /obj/structure/closet/body_bag/cryobag/fold(var/user) var/obj/item/bodybag/cryobag/folded = ..() if(istype(folded)) folded.stasis_power = stasis_power - folded.color = color_saturation(get_saturation()) + folded.color = color_matrix_saturation(get_saturation()) /obj/structure/closet/body_bag/cryobag/Process() if(stasis_power < 2) @@ -90,7 +90,7 @@ if(degradation_time < 0) degradation_time = initial(degradation_time) stasis_power = round(0.75 * stasis_power) - animate(src, color = color_saturation(get_saturation()), time = 10) + animate(src, color = color_matrix_saturation(get_saturation()), time = 10) update_icon() if(H.stasis_sources[STASIS_CRYOBAG] != stasis_power) diff --git a/code/game/objects/items/devices/auto_cpr.dm b/code/game/objects/items/devices/auto_cpr.dm index d953237cb7e..081a72d57b7 100644 --- a/code/game/objects/items/devices/auto_cpr.dm +++ b/code/game/objects/items/devices/auto_cpr.dm @@ -57,7 +57,7 @@ return PROCESS_KILL var/mob/living/carbon/human/H = loc - if(H.get_inventory_slot(src) != slot_wear_suit_str) + if(H.get_equipped_slot_for_item(src) != slot_wear_suit_str) return PROCESS_KILL if(world.time > last_pump + 15 SECONDS) diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index f663969ba86..7057b445d5f 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -123,9 +123,9 @@ var/global/list/all_gps_units = list() var/list/adding_sites if(long_range) - adding_sites = (global.using_map.station_levels|global.using_map.contact_levels|global.using_map.player_levels) + adding_sites = (SSmapping.station_levels|SSmapping.contact_levels|SSmapping.player_levels) else - adding_sites = GetConnectedZlevels(origin.z) + adding_sites = SSmapping.get_connected_levels(origin.z) if(LAZYLEN(adding_sites)) LAZYDISTINCTADD(reachable_z_levels, adding_sites) @@ -247,14 +247,14 @@ var/global/list/all_gps_units = list() .["curr_x"] = curr.x .["curr_y"] = curr.y .["curr_z"] = curr.z - .["curr_z_name"] = strip_improper(using_map.get_zlevel_name(curr.z)) + .["curr_z_name"] = strip_improper(SSmapping.get_gps_level_name(curr.z)) .["local_mode"] = local_mode var/z_level_detection if(long_range) - z_level_detection = (global.using_map.station_levels|global.using_map.contact_levels|global.using_map.player_levels) + z_level_detection = (SSmapping.station_levels|SSmapping.contact_levels|SSmapping.player_levels) else - z_level_detection = GetConnectedZlevels(curr.z) + z_level_detection = SSmapping.get_connected_levels(curr.z) .["z_level_detection"] = z_level_detection var/list/gps_list = list() @@ -276,7 +276,7 @@ var/global/list/all_gps_units = list() gps_data["area_name"] = strip_improper(A.name) var/turf/T = get_turf(G) - gps_data["z_name"] = strip_improper(using_map.get_zlevel_name(T.z)) + gps_data["z_name"] = strip_improper(SSmapping.get_gps_level_name(T.z)) gps_data["direction"] = get_compass_direction_string(curr, T) gps_data["degrees"] = round(Get_Angle(curr,T)) gps_data["distX"] = T.x - curr.x diff --git a/code/game/objects/items/devices/pinpointer.dm b/code/game/objects/items/devices/pinpointer.dm index fe2895786f1..39ccf373f68 100644 --- a/code/game/objects/items/devices/pinpointer.dm +++ b/code/game/objects/items/devices/pinpointer.dm @@ -93,7 +93,7 @@ add_overlay("[icon_state]-here") return - if(!(there.z in GetConnectedZlevels(here.z))) + if(!(there.z in SSmapping.get_connected_levels(here.z))) add_overlay("[icon_state]-invalid") return if(here.z > there.z) @@ -124,7 +124,7 @@ /obj/item/pinpointer/radio/acquire_target() var/turf/T = get_turf(src) - var/zlevels = GetConnectedZlevels(T.z) + var/zlevels = SSmapping.get_connected_levels(T.z) var/cur_dist = world.maxx+world.maxy for(var/obj/item/radio/beacon/R in global.radio_beacons) if(!R.functioning) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index f6116a8eb48..2814ffd302a 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -49,12 +49,11 @@ to_chat(user, radio_desc) /obj/item/radio/headset/get_connection_from_message_mode(mob/living/M, message, message_mode) - if (message_mode == "special") - if (translate_binary) - var/decl/language/binary = GET_DECL(/decl/language/binary) - binary.broadcast(M, message) - return null - return ..() + if(message_mode == MESSAGE_MODE_SPECIAL && translate_binary) + var/decl/language/binary = GET_DECL(/decl/language/binary) + binary.broadcast(M, message) + else + return ..() /obj/item/radio/headset/receive_range(freq, level, aiOverride = 0) if (aiOverride) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index fb825fe0147..05c95800f1b 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -238,7 +238,7 @@ /obj/item/radio/proc/autosay(var/message, var/from, var/channel, var/sayverb = "states") //BS12 EDIT var/datum/radio_frequency/connection = null if(channel && channels && channels.len > 0) - if (channel == "department") + if (channel == MESSAGE_MODE_DEPARTMENT) channel = channels[1] connection = secure_radio_connections[channel] else @@ -254,12 +254,12 @@ // Interprets the message mode when talking into a radio, possibly returning a connection datum /obj/item/radio/proc/get_connection_from_message_mode(mob/living/M, message, message_mode) // If a channel isn't specified, send to common. - if(!message_mode || message_mode == "headset") + if(!message_mode || global.nondepartmental_message_modes[message_mode]) return radio_connection // Otherwise, if a channel is specified, look for it. if(channels && channels.len > 0) - if (message_mode == "department") // Department radio shortcut + if (message_mode == MESSAGE_MODE_DEPARTMENT) // Department radio shortcut message_mode = channels[1] if (channels[message_mode]) // only broadcast if the channel is set on @@ -287,7 +287,8 @@ to_chat(M, SPAN_WARNING("You're disrupted as you reach for \the [src].")) return 0 - if(istype(M)) M.trigger_aiming(TARGET_CAN_RADIO) + if(istype(M)) + M.trigger_aiming(TARGET_CAN_RADIO) // Uncommenting this. To the above comment: // The permacell radios aren't suppose to be able to transmit, this isn't a bug and this "fix" is just making radio wires useless. -Giacom @@ -297,7 +298,6 @@ if(!radio_connection) set_frequency(frequency) - if(power_usage) var/obj/item/cell/has_cell = get_cell() if(!has_cell) @@ -498,7 +498,7 @@ if(!connection) return 0 //~Carn return Broadcast_Message(connection, M, voicemask, pick(M.speak_emote), src, message, displayname, jobname, real_name, M.voice_name, - filter_type, signal.data["compression"], GetConnectedZlevels(position.z), connection.frequency, verb, speaking, + filter_type, signal.data["compression"], SSmapping.get_connected_levels(position.z), connection.frequency, verb, speaking, "[connection.frequency]", channel_color_presets["Menacing Maroon"]) @@ -811,7 +811,7 @@ /obj/item/radio/announcer/Initialize() . = ..() - forceMove(locate(1,1,global.using_map.contact_levels.len ? global.using_map.contact_levels[1] : 1)) + forceMove(locate(1,1,SSmapping.contact_levels.len ? SSmapping.contact_levels[1] : 1)) /obj/item/radio/announcer/subspace subspace_transmission = 1 diff --git a/code/game/objects/items/weapons/circuitboards/machinery/holomap.dm b/code/game/objects/items/weapons/circuitboards/machinery/holomap.dm new file mode 100644 index 00000000000..8365797b46c --- /dev/null +++ b/code/game/objects/items/weapons/circuitboards/machinery/holomap.dm @@ -0,0 +1,11 @@ +/obj/item/stock_parts/circuitboard/holomap + name = "circuitboard (holomap)" + board_type = "machine" + build_path = /obj/machinery/holomap + origin_tech = "{'engineering':1}" + req_components = list() + additional_spawn_components = list( + /obj/item/stock_parts/console_screen = 1, + /obj/item/stock_parts/keyboard = 1, + /obj/item/stock_parts/power/apc/buildable = 1 + ) diff --git a/code/game/objects/items/weapons/circuitboards/machinery/research.dm b/code/game/objects/items/weapons/circuitboards/machinery/research.dm index 7b833138f4e..1d820de80f3 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/research.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/research.dm @@ -239,4 +239,16 @@ /obj/item/stock_parts/console_screen = 1, /obj/item/stock_parts/keyboard = 1, /obj/item/stock_parts/power/apc/buildable = 1, + ) + +/obj/item/stock_parts/circuitboard/design_database + name = "circuitboard (design database)" + build_path = /obj/machinery/design_database + board_type = "machine" + origin_tech = "{'programming':2, 'engineering':2}" + req_components = list() + additional_spawn_components = list( + /obj/item/stock_parts/power/apc/buildable = 1, + /obj/item/stock_parts/console_screen = 1, + /obj/item/stock_parts/keyboard = 1 ) \ No newline at end of file diff --git a/code/game/objects/items/weapons/circuitboards/machinery/shipsensors.dm b/code/game/objects/items/weapons/circuitboards/machinery/shipsensors.dm index 04a418a9b3a..a3df680001e 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/shipsensors.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/shipsensors.dm @@ -10,5 +10,6 @@ /obj/item/stock_parts/subspace/transmitter = 1 ) additional_spawn_components = list( - /obj/item/stock_parts/shielding/heat = 1 - ) \ No newline at end of file + /obj/item/stock_parts/shielding/heat = 1, + /obj/item/stock_parts/power/terminal = 1 + ) diff --git a/code/game/objects/items/weapons/lighter.dm b/code/game/objects/items/weapons/lighter.dm index fc578b8d1e9..675b954604d 100644 --- a/code/game/objects/items/weapons/lighter.dm +++ b/code/game/objects/items/weapons/lighter.dm @@ -26,7 +26,7 @@ if(!reagents) create_reagents(max_fuel) . = ..() - + /obj/item/flame/lighter/populate_reagents() reagents.add_reagent(/decl/material/liquid/fuel, max_fuel) @@ -45,11 +45,9 @@ user.visible_message("After a few attempts, [user] manages to light the [src].") else to_chat(user, "You burn yourself while lighting the lighter.") - for(var/bp in user.held_item_slots) - var/datum/inventory_slot/inv_slot = user.held_item_slots[bp] - if(inv_slot.holding == src) - user.apply_damage(2, BURN, bp) - break + var/hand_tag = user.get_held_slot_for_item(src) + if(hand_tag) + user.apply_damage(2, BURN, hand_tag) user.visible_message("After a few attempts, [user] manages to light the [src], burning their finger in the process.") playsound(src.loc, "light_bic", 100, 1, -4) diff --git a/code/game/objects/items/weapons/material/swords.dm b/code/game/objects/items/weapons/material/swords.dm index 6440c29f55a..32ee7ae427a 100644 --- a/code/game/objects/items/weapons/material/swords.dm +++ b/code/game/objects/items/weapons/material/swords.dm @@ -19,9 +19,12 @@ pickup_sound = 'sound/foley/knife1.ogg' drop_sound = 'sound/foley/knifedrop3.ogg' - var/draw_handle + var/draw_handle = TRUE /obj/item/sword/update_force() + sharp = initial(sharp) + edge = initial(edge) + hitsound = initial(hitsound) if(material?.hardness < MAT_VALUE_HARD) edge = 0 attack_verb = list("attacked", "stabbed", "jabbed", "smacked", "prodded") diff --git a/code/game/objects/items/weapons/weldbackpack.dm b/code/game/objects/items/weapons/weldbackpack.dm index 68d8309be14..e022606e27b 100644 --- a/code/game/objects/items/weapons/weldbackpack.dm +++ b/code/game/objects/items/weapons/weldbackpack.dm @@ -131,8 +131,11 @@ /obj/item/chems/weldpack/attack_hand(mob/user) if(is_welder_attached()) - var/curslot = user.get_inventory_slot(src) - if(curslot == slot_back_str || curslot == slot_s_store_str || user.is_holding_offhand(src)) + if(user.is_holding_offhand(src)) + detach_gun(user) + return TRUE + var/curslot = user.get_equipped_slot_for_item(src) + if(curslot == slot_back_str || curslot == slot_s_store_str) detach_gun(user) return TRUE return ..() diff --git a/code/game/objects/random/subtypes/misc.dm b/code/game/objects/random/subtypes/misc.dm index d3f51fc1845..f654fd0fae6 100644 --- a/code/game/objects/random/subtypes/misc.dm +++ b/code/game/objects/random/subtypes/misc.dm @@ -350,7 +350,6 @@ /obj/item/storage/firstaid/surgery = 4, /obj/item/cell/infinite = 1, /obj/random/archaeological_find = 2, - /obj/structure/artifact = 1, /obj/item/multitool/hacktool = 2, /obj/item/surgicaldrill = 7, /obj/item/sutures = 7, diff --git a/code/game/objects/structures/crates_lockers/closets/__closet.dm b/code/game/objects/structures/crates_lockers/closets/__closet.dm index 6c87eecaad8..9d625cfb377 100644 --- a/code/game/objects/structures/crates_lockers/closets/__closet.dm +++ b/code/game/objects/structures/crates_lockers/closets/__closet.dm @@ -50,7 +50,7 @@ var/global/list/closets = list() /obj/structure/closet/LateInitialize(mapload, ...) var/list/will_contain = WillContain() if(will_contain) - create_objects_in_loc(src, will_contain) + create_objects_in_loc(opened ? loc : src, will_contain) if(!opened && mapload) // if closed and it's the map loading phase, relevant items at the crate's loc are put in the contents store_contents() @@ -103,7 +103,7 @@ var/global/list/closets = list() stored_units += store_mobs(stored_units) if(storage_types & CLOSET_STORAGE_STRUCTURES) stored_units += store_structures(stored_units) - + /obj/structure/closet/proc/open() if(src.opened) return 0 @@ -234,7 +234,7 @@ var/global/list/closets = list() take_damage(proj_damage) /obj/structure/closet/attackby(obj/item/W, mob/user) - + if(user.a_intent == I_HURT && W.force) return ..() @@ -421,7 +421,7 @@ var/global/list/closets = list() open() /obj/structure/closet/onDropInto(var/atom/movable/AM) - return + return opened ? loc : null // If we use the /obj/structure/closet/proc/togglelock variant BYOND asks the user to select an input for id_card, which is then mostly irrelevant. /obj/structure/closet/proc/togglelock_verb() diff --git a/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm b/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm index 9af8a975df7..1e13e508629 100644 --- a/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm +++ b/code/game/objects/structures/crates_lockers/closets/_closet_appearance_definitions.dm @@ -658,6 +658,11 @@ "glass" = COLOR_WHITE ) +/decl/closet_appearance/wall/suit + color = COLOR_LIGHT_CYAN + extra_decals = list( + "stripe_outer" = COLOR_OFF_WHITE + ) /decl/closet_appearance/wall/medical decals = null color = COLOR_OFF_WHITE diff --git a/code/game/objects/structures/crates_lockers/closets/walllocker.dm b/code/game/objects/structures/crates_lockers/closets/walllocker.dm index bc59a87d328..0e85e4b1a80 100644 --- a/code/game/objects/structures/crates_lockers/closets/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/closets/walllocker.dm @@ -17,3 +17,15 @@ /obj/structure/closet/walllocker/Initialize() . = ..() tool_interaction_flags &= ~TOOL_INTERACTION_ANCHOR + +/obj/structure/closet/walllocker/suit + name = "wall suit storage" + desc = "A nook in the wall storing a couple of space suits." + closet_appearance = /decl/closet_appearance/wall/suit + +/obj/structure/closet/walllocker/suit/WillContain() + return list( + /obj/item/clothing/head/helmet/space = 2, + /obj/item/clothing/suit/space = 2, + /obj/item/tank/oxygen = 2 + ) \ No newline at end of file diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 371be257ced..6782fb158c0 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -160,7 +160,6 @@ if(signs) add_overlay("cart_sign[signs]") -//old style retardo-cart /datum/movement_handler/move_relay_self/janicart/MayMove(mob/mover, is_external) . = ..() if(. == MOVEMENT_PROCEED && !is_external && !(locate(/obj/item/janicart_key) in mover.get_held_items())) @@ -168,6 +167,7 @@ to_chat(mover, SPAN_WARNING("You'll need the keys in one of your hands to drive this [istype(janicart) ? janicart.callme : host.name].")) return MOVEMENT_STOP +//old style cart /obj/structure/bed/chair/janicart name = "janicart" icon = 'icons/obj/vehicles.dmi' diff --git a/code/game/objects/structures/transit_tubes.dm b/code/game/objects/structures/transit_tubes.dm index 3e3dd61a511..51bedbcb6c1 100644 --- a/code/game/objects/structures/transit_tubes.dm +++ b/code/game/objects/structures/transit_tubes.dm @@ -74,17 +74,17 @@ /obj/structure/transit_tube/Bumped(mob/AM) var/obj/structure/transit_tube/T = locate() in AM.loc if(T) - to_chat(AM, "The tube's support pylons block your way.") + to_chat(AM, SPAN_WARNING("The tube's support pylons block your way.")) return ..() else AM.dropInto(loc) - to_chat(AM, "You slip under the tube.") + to_chat(AM, SPAN_INFO("You slip under the tube.")) /obj/structure/transit_tube/station/Bumped(mob/AM) if(!pod_moving && icon_state == "open" && istype(AM, /mob)) for(var/obj/structure/transit_tube_pod/pod in loc) if(pod.contents.len) - to_chat(AM, "The pod is already occupied.") + to_chat(AM, SPAN_NOTICE("The pod is already occupied.")) return else if(!pod.moving && (pod.dir in directions())) AM.forceMove(pod) @@ -545,7 +545,7 @@ if("SOUTHWEST", "SW") return 10 else - return 0 + return 0 @@ -570,4 +570,4 @@ if(10) return "SW" else - return + return diff --git a/code/game/sound.dm b/code/game/sound.dm index 3a91c8f67f4..de42f41dc3d 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -22,7 +22,7 @@ if(get_dist(M, turf_source) <= maxdistance) var/turf/T = get_turf(M) - if(T && (T.z == turf_source.z || (zrange && AreConnectedZLevels(T.z, turf_source.z) && abs(T.z - turf_source.z) <= zrange)) && (!is_ambiance || M.get_preference_value(/datum/client_preference/play_ambiance) == PREF_YES)) + if(T && (T.z == turf_source.z || (zrange && SSmapping.are_connected_levels(T.z, turf_source.z) && abs(T.z - turf_source.z) <= zrange)) && (!is_ambiance || M.get_preference_value(/datum/client_preference/play_ambiance) == PREF_YES)) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, is_global, extrarange, override_env, envdry, envwet) var/global/const/FALLOFF_SOUNDS = 0.5 diff --git a/code/game/turfs/exterior/_exterior.dm b/code/game/turfs/exterior/_exterior.dm index 5ceffedd623..57812497ba0 100644 --- a/code/game/turfs/exterior/_exterior.dm +++ b/code/game/turfs/exterior/_exterior.dm @@ -5,7 +5,7 @@ icon_state = "0" layer = PLATING_LAYER open_turf_type = /turf/exterior/open - turf_flags = TURF_FLAG_BACKGROUND + turf_flags = TURF_FLAG_BACKGROUND | TURF_IS_HOLOMAP_PATH var/base_color var/diggable = 1 var/dirt_color = "#7c5e42" @@ -18,9 +18,8 @@ // Bit faster than return_air() for exoplanet exterior turfs /turf/exterior/get_air_graphic() - if(owner) - return owner.atmosphere?.graphic - return global.using_map.exterior_atmosphere?.graphic + var/obj/abstract/level_data/level = SSmapping.levels_by_z[z] + return level?.exterior_atmosphere?.graphic /turf/exterior/Initialize(mapload, no_update_icon = FALSE) @@ -31,7 +30,7 @@ if(possible_states > 0) icon_state = "[rand(0, possible_states)]" - owner = LAZYACCESS(global.overmap_sectors, "[z]") + owner = LAZYACCESS(global.overmap_sectors, num2text(z)) if(!istype(owner)) owner = null else @@ -83,13 +82,10 @@ . = ..() /turf/exterior/return_air() - var/datum/gas_mixture/gas - if(owner) - gas = new - gas.copy_from(owner.atmosphere) - else - gas = global.using_map.get_exterior_atmosphere() - + var/obj/abstract/level_data/level = SSmapping.levels_by_z[z] + var/datum/gas_mixture/gas = level?.get_exterior_atmosphere() + if(!gas) + return var/initial_temperature = gas.temperature if(weather) initial_temperature = weather.adjust_temperature(initial_temperature) diff --git a/code/game/turfs/exterior/exterior_barren.dm b/code/game/turfs/exterior/exterior_barren.dm index 5e645d85950..795fa140df5 100644 --- a/code/game/turfs/exterior/exterior_barren.dm +++ b/code/game/turfs/exterior/exterior_barren.dm @@ -3,11 +3,7 @@ icon = 'icons/turf/exterior/barren.dmi' icon_edge_layer = EXT_EDGE_BARREN -/turf/exterior/barren/on_update_icon() - . = ..() - if(prob(20)) - add_overlay(image('icons/turf/flooring/decals.dmi', "asteroid[rand(0,9)]")) - /turf/exterior/barren/Initialize() + if(prob(20)) + LAZYADD(decals, image('icons/turf/flooring/decals.dmi', "asteroid[rand(0,9)]")) . = ..() - update_icon() \ No newline at end of file diff --git a/code/game/turfs/exterior/exterior_concrete.dm b/code/game/turfs/exterior/exterior_concrete.dm index 8f4eb268a5a..4a1fb989f44 100644 --- a/code/game/turfs/exterior/exterior_concrete.dm +++ b/code/game/turfs/exterior/exterior_concrete.dm @@ -15,7 +15,7 @@ var/global/exterior_broken_states = icon_states('icons/turf/exterior/broken.dmi' desc = "A flat expanse of artificial stone-like artificial material." icon = 'icons/turf/exterior/concrete.dmi' diggable = FALSE - var/broken + var/broken var/burned /turf/exterior/concrete/flooded @@ -38,11 +38,11 @@ var/global/exterior_broken_states = icon_states('icons/turf/exterior/broken.dmi' /turf/exterior/concrete/reinforced name = "reinforced concrete" - desc = "Stone-like artificial material. It has been reinforced with an unknown compound" + desc = "Stone-like artificial material. It has been reinforced with an unknown compound." -/turf/exterior/concrete/reinforced/on_update_icon() +/turf/exterior/concrete/reinforced/Initialize(ml) + LAZYDISTINCTADD(decals, "hexacrete") . = ..() - add_overlay("hexacrete") /turf/exterior/concrete/reinforced/damaged broken = TRUE @@ -50,3 +50,4 @@ var/global/exterior_broken_states = icon_states('icons/turf/exterior/broken.dmi' /turf/exterior/concrete/reinforced/road name = "asphalt" color = COLOR_GRAY40 + base_color = COLOR_GRAY40 diff --git a/code/game/turfs/exterior/exterior_grass.dm b/code/game/turfs/exterior/exterior_grass.dm index 259e4ccd83f..e67d485510f 100644 --- a/code/game/turfs/exterior/exterior_grass.dm +++ b/code/game/turfs/exterior/exterior_grass.dm @@ -16,7 +16,7 @@ /turf/exterior/wildgrass/Initialize() . = ..() - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(z)] if(istype(E) && E.grass_color) color = E.grass_color diff --git a/code/game/turfs/exterior/exterior_seafloor.dm b/code/game/turfs/exterior/exterior_seafloor.dm index 07f84bb27aa..4ab69066acd 100644 --- a/code/game/turfs/exterior/exterior_seafloor.dm +++ b/code/game/turfs/exterior/exterior_seafloor.dm @@ -10,13 +10,6 @@ color = COLOR_LIQUID_WATER /turf/exterior/seafloor/Initialize() + if(prob(20)) + LAZYADD(decals, image("asteroid[rand(0,9)]", 'icons/turf/mining_decals.dmi')) . = ..() - color = null - if(isnull(detail_decal) && prob(20)) - detail_decal = "asteroid[rand(0,9)]" - update_icon() - -/turf/exterior/seafloor/on_update_icon() - . = ..() - if(detail_decal) - add_overlay(image(icon = 'icons/turf/mining_decals.dmi', icon_state = detail_decal)) diff --git a/code/game/turfs/exterior/exterior_wall.dm b/code/game/turfs/exterior/exterior_wall.dm index 2f03714a9cb..9b51f45f062 100644 --- a/code/game/turfs/exterior/exterior_wall.dm +++ b/code/game/turfs/exterior/exterior_wall.dm @@ -12,6 +12,7 @@ var/global/list/natural_walls = list() opacity = TRUE density = TRUE blocks_air = TRUE + turf_flags = TURF_FLAG_BACKGROUND | TURF_IS_HOLOMAP_OBSTACLE var/strata var/paint_color @@ -19,6 +20,7 @@ var/global/list/natural_walls = list() var/decl/material/material var/decl/material/reinf_material var/floor_type = /turf/exterior/barren + var/static/list/exterior_wall_shine_cache = list() /turf/exterior/wall/examine(mob/user, distance, infix, suffix) . = ..() @@ -178,23 +180,18 @@ var/global/list/natural_walls = list() var/material_icon_base = material.icon_base_natural || 'icons/turf/walls/natural.dmi' var/base_color = paint_color ? paint_color : material.color - var/max_shine - var/shine + var/shine = 0 if(material?.reflectiveness > 0) - max_shine = 0.6 * ReadHSV(RGBtoHSV(material.color))[3] // patened formula based on color's Value (in HSV) - shine = clamp((material.reflectiveness * 0.01) * 255, 10, max_shine) - - var/image/I - for(var/i = 1 to 4) - var/apply_state = "[wall_connections[i]]" - I = image(material_icon_base, apply_state, dir = BITFLAG(i-1)) - I.color = base_color - add_overlay(I) - if(shine) - I = image(material_icon_base, "shine[wall_connections[i]]", dir = BITFLAG(i-1)) - I.appearance_flags |= RESET_ALPHA - I.alpha = shine - add_overlay(I) + var/shine_cache_key = "[material.reflectiveness]-[material.color]" + shine = exterior_wall_shine_cache[shine_cache_key] + if(isnull(shine)) + // patented formula based on color's value (in HSV) + shine = clamp((material.reflectiveness * 0.01) * 255, 10, (0.6 * ReadHSV(RGBtoHSV(material.color))[3])) + exterior_wall_shine_cache[shine_cache_key] = shine + + icon = get_combined_wall_icon(wall_connections, null, material_icon_base, base_color, shine_value = shine) + icon_state = "" + color = null if(ore_overlay) add_overlay(ore_overlay) diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 2616d6d1c6f..561fa7d0b55 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -347,12 +347,12 @@ name = "coastline" icon = 'icons/misc/beach2.dmi' icon_state = "sandwater" - turf_flags = TURF_IS_WET + turf_flags = TURF_IS_WET | TURF_IS_HOLOMAP_PATH /turf/simulated/floor/beach/water name = "water" icon_state = "water" - turf_flags = TURF_IS_WET + turf_flags = TURF_IS_WET | TURF_IS_HOLOMAP_PATH /turf/simulated/floor/beach/water/is_flooded(lying_mob, absolute) . = absolute ? ..() : lying_mob diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 3e7b6923115..a2fd937a87d 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -114,8 +114,8 @@ if(shoes.coating && shoes.coating.total_volume > 1) source = shoes else - for(var/bp in list(BP_L_FOOT, BP_R_FOOT)) - var/obj/item/organ/external/stomper = GET_EXTERNAL_ORGAN(src, bp) + for(var/foot_tag in list(BP_L_FOOT, BP_R_FOOT)) + var/obj/item/organ/external/stomper = GET_EXTERNAL_ORGAN(src, foot_tag) if(stomper && stomper.coating && stomper.coating.total_volume > 1) source = stomper if(!source) diff --git a/code/game/turfs/simulated/_wall_icon_cache.dm b/code/game/turfs/simulated/_wall_icon_cache.dm new file mode 100644 index 00000000000..9a113e9f15b --- /dev/null +++ b/code/game/turfs/simulated/_wall_icon_cache.dm @@ -0,0 +1,61 @@ +#define CACHE_BASE_MARKER 1 +#define CACHE_PAINT_MARKER 2 +#define CACHE_STRIPE_MARKER 3 +#define CACHE_EDGE_MARKER 4 +#define CACHE_SHINE_MARKER 5 + +var/global/const/WALL_PAINT_STATE = "paint" +var/global/const/WALL_STRIPE_STATE = "stripe" +var/global/const/WALL_OTHER_STATE = "other" +var/global/const/WALL_SHINE_STATE = "shine" + +var/global/list/cached_wall_icons = list() +/proc/_get_wall_subicon(var/material_icon_base, var/connections, var/color, var/state, var/alpha, var/cache_marker) + var/cache_key = jointext(list(cache_marker, material_icon_base, json_encode(connections), color), "-") + if(!global.cached_wall_icons[cache_key]) + var/icon/subicon = icon('icons/turf/wall_texture.dmi', "blank") + for(var/i = 1 to 4) + var/check_state = "[state][length(connections) >= i ? connections[i] : null]" + if(check_state_in_icon(check_state, material_icon_base)) + subicon.Blend(icon(material_icon_base, check_state, dir = BITFLAG(i-1)), ICON_OVERLAY) + if(color && color != COLOR_WHITE) + subicon.Blend(color, ICON_MULTIPLY) + if(!isnull(alpha)) + subicon += rgb(null, null, null, alpha) + global.cached_wall_icons[cache_key] = subicon + return global.cached_wall_icons[cache_key] + +/proc/get_combined_wall_icon(var/list/wall_connections, var/list/other_connections, var/material_icon_base, var/base_color, var/paint_color, var/stripe_color, var/edge_color, var/shine_value) + + var/cache_key = list(material_icon_base, json_encode(wall_connections), json_encode(other_connections)) + if(base_color) + cache_key += CACHE_BASE_MARKER + cache_key += base_color + if(paint_color) + cache_key += CACHE_PAINT_MARKER + cache_key += paint_color + if(stripe_color) + cache_key += CACHE_STRIPE_MARKER + cache_key += stripe_color + if(edge_color) + cache_key += CACHE_EDGE_MARKER + cache_key += edge_color + if(shine_value) + cache_key += CACHE_SHINE_MARKER + cache_key += shine_value + cache_key = jointext(cache_key, "-") + + if(!global.cached_wall_icons[cache_key]) + var/icon/wall_icon = icon(_get_wall_subicon(material_icon_base, wall_connections, base_color, cache_marker = CACHE_BASE_MARKER)) + if(paint_color) wall_icon.Blend(_get_wall_subicon(material_icon_base, wall_connections, paint_color, WALL_PAINT_STATE, cache_marker = CACHE_PAINT_MARKER), ICON_OVERLAY) + if(stripe_color) wall_icon.Blend(_get_wall_subicon(material_icon_base, wall_connections, stripe_color, WALL_STRIPE_STATE, cache_marker = CACHE_STRIPE_MARKER), ICON_OVERLAY) + if(edge_color) wall_icon.Blend(_get_wall_subicon(material_icon_base, other_connections, edge_color, WALL_OTHER_STATE, cache_marker = CACHE_EDGE_MARKER), ICON_OVERLAY) + if(shine_value) wall_icon.Blend(_get_wall_subicon(material_icon_base, other_connections, null, WALL_SHINE_STATE, cache_marker = CACHE_SHINE_MARKER, alpha = shine_value), ICON_OVERLAY) + global.cached_wall_icons[cache_key] = wall_icon + return global.cached_wall_icons[cache_key] + +#undef CACHE_BASE_MARKER +#undef CACHE_PAINT_MARKER +#undef CACHE_STRIPE_MARKER +#undef CACHE_EDGE_MARKER +#undef CACHE_SHINE_MARKER \ No newline at end of file diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index dff990701e4..a2b6ac8f336 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -6,6 +6,7 @@ thermal_conductivity = 0.040 heat_capacity = 10000 explosion_resistance = 1 + turf_flags = TURF_IS_HOLOMAP_PATH // Damage to flooring. var/broken diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index 1a686e26afe..e16a4efca9f 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -123,28 +123,18 @@ other_connections = dirs_to_corner_states(other_dirs) var/material_icon_base = get_wall_icon() - var/image/I var/base_color = material.color if(!density) - I = image(material_icon_base, "fwall_open") - I.color = base_color - add_overlay(I) - return - - for(var/i = 1 to 4) - I = image(material_icon_base, "[wall_connections[i]]", dir = BITFLAG(i-1)) - I.color = base_color - add_overlay(I) - if(paint_color) - I = image(icon, "paint[wall_connections[i]]", dir = BITFLAG(i-1)) - I.color = paint_color - add_overlay(I) - if(stripe_color) - I = image(icon, "stripe[wall_connections[i]]", dir = BITFLAG(i-1)) - I.color = stripe_color - add_overlay(I) + icon = material_icon_base + icon_state = "fwall_open" + color = base_color + else + icon = get_combined_wall_icon(wall_connections, other_connections, material_icon_base, base_color, paint_color, stripe_color, (material.wall_flags & WALL_HAS_EDGES) && (stripe_color || base_color)) + icon_state = "" + color = null if(apply_reinf_overlay()) + var/image/I var/reinf_color = paint_color ? paint_color : reinf_material.color if(construction_stage != null && construction_stage < 6) I = image('icons/turf/walls/_construction_overlays.dmi', "[construction_stage]") @@ -154,18 +144,8 @@ if(reinf_material.use_reinf_state) I = image(reinf_material.icon_reinf, reinf_material.use_reinf_state) I.color = reinf_color - add_overlay(I) else - // Directional icon - for(var/i = 1 to 4) - I = image(reinf_material.icon_reinf, "[wall_connections[i]]", dir = BITFLAG(i-1)) - I.color = reinf_color - add_overlay(I) - - if(material.wall_flags & WALL_HAS_EDGES) - for(var/i = 1 to 4) - I = image(material_icon_base, "other[other_connections[i]]", dir = BITFLAG(i-1)) - I.color = stripe_color ? stripe_color : base_color + I = image(_get_wall_subicon(reinf_material.icon_reinf, wall_connections, reinf_color)) add_overlay(I) var/image/texture = material.get_wall_texture() diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 269e75d0965..3a598173670 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -28,6 +28,7 @@ var/global/list/wall_fullblend_objects = list( explosion_resistance = 10 color = COLOR_GRAY40 atom_flags = ATOM_FLAG_CAN_BE_PAINTED + turf_flags = TURF_IS_HOLOMAP_OBSTACLE var/damage = 0 var/can_open = 0 diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index b4af6d188dc..fde96995a2d 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -83,10 +83,10 @@ return ..() /turf/space/LateInitialize() - if(global.using_map.base_floor_area) - var/area/new_area = locate(global.using_map.base_floor_area) || new global.using_map.base_floor_area + if(SSmapping.base_floor_area) + var/area/new_area = locate(SSmapping.base_floor_area) || new SSmapping.base_floor_area ChangeArea(src, new_area) - ChangeTurf(global.using_map.base_floor_type) + ChangeTurf(SSmapping.base_floor_type) // override for space turfs, since they should never hide anything /turf/space/levelupdate() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index cb193e80513..edfd424728f 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -371,7 +371,7 @@ /turf/proc/update_weather(var/obj/abstract/weather_system/new_weather, var/force_update_below = FALSE) if(isnull(new_weather)) - new_weather = global.weather_by_z["[z]"] + new_weather = global.weather_by_z[num2text(z)] // We have a weather system and we are exposed to it; update our vis contents. if(istype(new_weather) && is_outside()) @@ -401,26 +401,27 @@ if(density) return OUTSIDE_NO - // What would we like to return in an ideal world? - if(is_outside == OUTSIDE_AREA) + // What is our local outside value? + // Some turfs can be roofed irrespective of the turf above them in multiz. + // I have the feeling this is redundat as a roofed turf below max z will + // have a floor above it, but ah well. + . = is_outside + if(. == OUTSIDE_AREA) var/area/A = get_area(src) . = A ? A.is_outside : OUTSIDE_NO - else - . = is_outside - - // Notes for future self when confused: is_open() on higher - // turfs must match effective is_outside value if the turf - // should get to use the is_outside value it wants to. If it - // doesn't line up, we invert the outside value (roof is not - // open but turf wants to be outside, invert to OUTSIDE_NO). - // Do we have a roof over our head? Should we care? + // If we are in a multiz volume, we return the outside value of + // the highest unenclosed turf in the stack. if(HasAbove(z)) + . = OUTSIDE_YES // assume for the moment we're unroofed until we learn otherwise. var/turf/top_of_stack = src while(HasAbove(top_of_stack.z)) - top_of_stack = GetAbove(top_of_stack) - if(top_of_stack.is_open() != . || (top_of_stack.is_outside != OUTSIDE_AREA && top_of_stack.is_outside != .)) - return !. + var/turf/next_turf = GetAbove(top_of_stack) + if(!next_turf.is_open()) + return OUTSIDE_NO + top_of_stack = next_turf + // If we hit the top of the stack without finding a roof, we ask the upmost turf if we're outside. + return top_of_stack.is_outside() /turf/proc/set_outside(var/new_outside, var/skip_weather_update = FALSE) if(is_outside != new_outside) diff --git a/code/game/turfs/unsimulated/beach.dm b/code/game/turfs/unsimulated/beach.dm index f9eabf8a09d..58ec57d520b 100644 --- a/code/game/turfs/unsimulated/beach.dm +++ b/code/game/turfs/unsimulated/beach.dm @@ -14,7 +14,7 @@ /turf/unsimulated/beach/water name = "Water" icon_state = "water" - turf_flags = TURF_IS_WET + turf_flags = TURF_IS_WET | TURF_IS_HOLOMAP_PATH /turf/unsimulated/beach/water/Initialize(var/ml) . = ..() diff --git a/code/game/turfs/unsimulated/floor.dm b/code/game/turfs/unsimulated/floor.dm index 76fb3a4cab1..0ef222d431c 100644 --- a/code/game/turfs/unsimulated/floor.dm +++ b/code/game/turfs/unsimulated/floor.dm @@ -2,6 +2,7 @@ name = "floor" icon = 'icons/turf/floors.dmi' icon_state = "Floor3" + turf_flags = TURF_IS_HOLOMAP_PATH /turf/unsimulated/floor/infinity //non-doomsday version for transit and wizden name = "\proper infinity" diff --git a/code/game/turfs/unsimulated/walls.dm b/code/game/turfs/unsimulated/walls.dm index 776ad29e082..35ae20c3970 100644 --- a/code/game/turfs/unsimulated/walls.dm +++ b/code/game/turfs/unsimulated/walls.dm @@ -4,6 +4,7 @@ icon_state = "riveted" opacity = 1 density = 1 + turf_flags = TURF_IS_HOLOMAP_OBSTACLE /turf/unsimulated/wall/fakeglass name = "window" diff --git a/code/modules/ZAS/Contaminants.dm b/code/modules/ZAS/Contaminants.dm index 11fde3937c7..cdd312b95ce 100644 --- a/code/modules/ZAS/Contaminants.dm +++ b/code/modules/ZAS/Contaminants.dm @@ -72,7 +72,7 @@ var/global/image/contamination_overlay = image('icons/effects/contamination.dmi' if(vsc.contaminant_control.CLOTH_CONTAMINATION) contaminate() //Anything else requires them to not be dead. - if(stat >= 2 || status_flags & GODMODE) + if((stat >= DEAD) || (status_flags & GODMODE)) return //Burn skin if exposed. diff --git a/code/modules/admin/view_variables/helpers.dm b/code/modules/admin/view_variables/helpers.dm index e66b276d3fa..3c5be6f00d8 100644 --- a/code/modules/admin/view_variables/helpers.dm +++ b/code/modules/admin/view_variables/helpers.dm @@ -87,6 +87,11 @@ "} +/obj/item/get_view_variables_options() + return ..() + {" + + "} + /turf/get_view_variables_options() return ..() + {" diff --git a/code/modules/admin/view_variables/topic.dm b/code/modules/admin/view_variables/topic.dm index c7eb1ef72a4..b903fde249c 100644 --- a/code/modules/admin/view_variables/topic.dm +++ b/code/modules/admin/view_variables/topic.dm @@ -593,6 +593,26 @@ return log_and_message_admins("removed \the [choice] to \the [L]") qdel(choice) + + else if(href_list["setmaterial"]) + if(!check_rights(R_DEBUG)) return + + var/obj/item/I = locate(href_list["setmaterial"]) + if(!istype(I)) + to_chat(usr, "This can only be done to instances of type /obj/item") + return + + var/new_material = input("Please choose a new material.","Materials",null) as null|anything in SSmaterials.materials_by_name + if(!new_material) + return + if(QDELETED(I)) + to_chat(usr, "Item doesn't exist anymore") + return + + var/decl/material/M = SSmaterials.materials_by_name[new_material] + I.set_material(M.type) + to_chat(usr, "Set material of [I] to [I.get_material()].") + if(href_list["datumrefresh"]) var/datum/DAT = locate(href_list["datumrefresh"]) if(istype(DAT, /datum) || istype(DAT, /client)) diff --git a/code/modules/admin/view_variables/vv_set_handlers.dm b/code/modules/admin/view_variables/vv_set_handlers.dm index 8aeff484bae..7c81beb725b 100644 --- a/code/modules/admin/view_variables/vv_set_handlers.dm +++ b/code/modules/admin/view_variables/vv_set_handlers.dm @@ -181,3 +181,17 @@ var/new_scale_y = variable == "icon_scale_y" ? var_value : A.icon_scale_y A.set_scale(new_scale_x, new_scale_y) + + +/decl/vv_set_handler/directional_offset_hander + handled_type = /obj + handled_vars = list("directional_offset") + +/decl/vv_set_handler/directional_offset_hander/handle_set_var(var/obj/O, variable, var_value, client) + if(!istext(var_value) && !isnull(var_value)) + to_chat(client, SPAN_WARNING("You can only enter a JSON string, or nothing in this field!")) + return + + //Set the offset and force update + O.directional_offset = var_value + O.update_directional_offset(TRUE) diff --git a/code/modules/alarm/alarm_handler.dm b/code/modules/alarm/alarm_handler.dm index 8ef2baf9753..14003e5826a 100644 --- a/code/modules/alarm/alarm_handler.dm +++ b/code/modules/alarm/alarm_handler.dm @@ -53,8 +53,8 @@ /datum/alarm_handler/proc/alarms(var/z_level) if(z_level) . = list() - for(var/z in GetConnectedZlevels(z_level)) - . += alarms_by_z["[z]"] || list() + for(var/z in SSmapping.get_connected_levels(z_level)) + . += alarms_by_z[num2text(z)] || list() else return alarms diff --git a/code/modules/atmospherics/components/unary/heat_source.dm b/code/modules/atmospherics/components/unary/heat_source.dm index 4ccf0c95cce..20b6e32cf45 100644 --- a/code/modules/atmospherics/components/unary/heat_source.dm +++ b/code/modules/atmospherics/components/unary/heat_source.dm @@ -15,6 +15,7 @@ construct_state = /decl/machine_construction/default/panel_closed uncreated_component_parts = null stat_immune = 0 + connect_types = CONNECT_TYPE_REGULAR | CONNECT_TYPE_FUEL var/max_temperature = T20C + 680 var/internal_volume = 600 //L diff --git a/code/modules/atmospherics/components/unary/vent_scrubber.dm b/code/modules/atmospherics/components/unary/vent_scrubber.dm index 0d728ecc980..9e210474b83 100644 --- a/code/modules/atmospherics/components/unary/vent_scrubber.dm +++ b/code/modules/atmospherics/components/unary/vent_scrubber.dm @@ -249,6 +249,8 @@ to_chat(user, "You are too far away to read the gauge.") if(welded) to_chat(user, "It seems welded shut.") + if(!(stat & NOPOWER) && use_power && user.skill_check(SKILL_ATMOS,SKILL_BASIC)) + to_chat(user, "It's running in [scrubbing] mode.") /obj/machinery/atmospherics/unary/vent_scrubber/refresh() ..() diff --git a/code/modules/augment/passive/nanoaura.dm b/code/modules/augment/passive/nanoaura.dm index 713805bff2d..662be61f8eb 100644 --- a/code/modules/augment/passive/nanoaura.dm +++ b/code/modules/augment/passive/nanoaura.dm @@ -78,6 +78,6 @@ /obj/aura/nanoaura/Destroy() - to_chat(user, SPAN_WARNING("\The nanites dissolve!")) + to_chat(user, SPAN_WARNING("The nanites dissolve!")) unit = null return ..() diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 2fc3dd94988..afdee2dc6bf 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -188,7 +188,7 @@ var/global/template_file_name = "all_templates.json" merge_and_register_templates() var/list/mapnames = list() - for(var/z in global.using_map.map_levels) + for(var/z in SSmapping.map_levels) mapnames += map_image_file_name(z) var/list/filenames = flist(MAP_IMAGE_PATH) diff --git a/code/modules/client/client_color_definitions.dm b/code/modules/client/client_color_definitions.dm index 86648ee16fa..bb90e887dd7 100644 --- a/code/modules/client/client_color_definitions.dm +++ b/code/modules/client/client_color_definitions.dm @@ -4,8 +4,8 @@ /datum/client_color/deuteranopia priority = 100 client_color = list( - 0.47,0.38,0.15, - 0.54,0.31,0.15, + 0.47,0.38,0.15, + 0.54,0.31,0.15, 0,0.3,0.7 ) wire_colour_substitutions = list( @@ -13,15 +13,15 @@ "darkred" = "black", "purple" = "blue", "orange" = "yellow", - "brown" = "yellow", + "brown" = "yellow", "green" = "yellow" ) /datum/client_color/protanopia priority = 100 client_color = list( - 0.51,0.4,0.12, - 0.49,0.41,0.12, + 0.51,0.4,0.12, + 0.49,0.41,0.12, 0,0.2,0.76 ) wire_colour_substitutions = list( @@ -29,22 +29,22 @@ "darkred" = "black", "purple" = "blue", "orange" = "yellow", - "brown" = "yellow", + "brown" = "yellow", "green" = "yellow" ) /datum/client_color/tritanopia priority = 100 client_color = list( - 0.95,0.07,0, - 0,0.44,0.52, + 0.95,0.07,0, + 0,0.44,0.52, 0.05,0.49,0.48 ) wire_colour_substitutions = list( - "blue" = "green", + "blue" = "green", "orange" = "pink", - "brown" = "pink", - "gold" = "pink", + "brown" = "pink", + "gold" = "pink", "yellow" = "pink", "cyan" = "green", "navy" = "green", @@ -54,18 +54,18 @@ /datum/client_color/achromatopsia priority = 100 client_color = list( - 0.33,0.33,0.33, - 0.33,0.33,0.33, + 0.33,0.33,0.33, + 0.33,0.33,0.33, 0.33,0.33,0.33 ) wire_colour_substitutions = list( - "red" = "gray", - "blue" = "black", - "green" = "gray", - "darkred" = "black", + "red" = "gray", + "blue" = "black", + "green" = "gray", + "darkred" = "black", "orange" = "gray", - "brown" = "gray", - "gold" = "gray", + "brown" = "gray", + "gold" = "gray", "cyan" = "gray", "navy" = "gray", "purple" = "black", @@ -87,13 +87,13 @@ priority = INFINITY //This effect sort of exists on its own you /have/ to be seeing RED override = TRUE //Because multiplying this will inevitably fail wire_colour_substitutions = list( - "red" = "red", - "blue" = "red", - "green" = "red", - "darkred" = "red", + "red" = "red", + "blue" = "red", + "green" = "red", + "darkred" = "red", "orange" = "red", - "brown" = "red", - "gold" = "red", + "brown" = "red", + "gold" = "red", "cyan" = "red", "navy" = "red", "purple" = "red", @@ -103,4 +103,4 @@ ) /datum/client_color/oversaturated/New() - client_color = color_saturation(40) + client_color = color_matrix_saturation(1.4) diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index 548a88fa022..04fb9537e40 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -33,7 +33,7 @@ W.write("spawnpoint", spawnpoint.name) /datum/category_item/player_setup_item/physical/basic/sanitize_character() - + var/valid_spawn = FALSE for(var/decl/spawnpoint/spawnpoint as anything in global.using_map.allowed_spawns) if(pref.spawnpoint == spawnpoint.type) diff --git a/code/modules/client/preference_setup/general/02_body.dm b/code/modules/client/preference_setup/general/02_body.dm index eb0b38a42d4..ddc0ae5b0c2 100644 --- a/code/modules/client/preference_setup/general/02_body.dm +++ b/code/modules/client/preference_setup/general/02_body.dm @@ -309,10 +309,10 @@ for(var/M in all_markings) if(M in pref.body_markings) continue - var/decl/sprite_accessory/S = all_markings[M] - if(is_type_in_list(S, disallowed_markings) || (S.species_allowed && !(mob_species.get_root_species_name() in S.species_allowed)) || (S.subspecies_allowed && !(mob_species.name in S.subspecies_allowed))) - continue - usable_markings += S + var/decl/sprite_accessory/accessory = all_markings[M] + var/decl/bodytype/mob_bodytype = mob_species.get_bodytype_by_name(pref.bodytype) + if(!is_type_in_list(accessory, disallowed_markings) && accessory.accessory_is_available(preference_mob(), mob_species, mob_bodytype.bodytype_flag, pref.gender)) + usable_markings += accessory var/decl/sprite_accessory/new_marking = input(user, "Choose a body marking:", CHARACTER_PREFERENCE_INPUT_TITLE) as null|anything in usable_markings if(new_marking && CanUseTopic(user)) diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index de20fb7916e..3a8dc7625e3 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -417,28 +417,39 @@ var/global/list/gear_datums = list() if(metadata && !islist(metadata)) PRINT_STACK_TRACE("Loadout spawn_item() proc received non-null non-list metadata: '[json_encode(metadata)]'") -/decl/loadout_option/proc/spawn_on_mob(var/mob/living/carbon/human/H, var/metadata) - var/obj/item/item = spawn_and_validate_item(H, metadata) +/decl/loadout_option/proc/spawn_on_mob(mob/living/carbon/human/wearer, metadata) + var/obj/item/item = spawn_and_validate_item(wearer, metadata) if(!item) return - if(H.equip_to_slot_if_possible(item, slot, del_on_fail = 1, force = 1)) + var/obj/item/old_item = wearer.get_equipped_item(slot) + if(wearer.equip_to_slot_if_possible(item, slot, del_on_fail = TRUE, force = TRUE, delete_old_item = FALSE)) . = item + if(!old_item) + return + wearer.u_equip(old_item) + if(old_item.type != item.type) + place_in_storage_or_drop(wearer, old_item) + else + qdel(old_item) -/decl/loadout_option/proc/spawn_in_storage_or_drop(var/mob/living/carbon/human/H, var/metadata) - var/obj/item/item = spawn_and_validate_item(H, metadata) +/decl/loadout_option/proc/spawn_in_storage_or_drop(mob/living/carbon/human/wearer, metadata) + var/obj/item/item = spawn_and_validate_item(wearer, metadata) if(!item) return - var/atom/placed_in = H.equip_to_storage(item) + place_in_storage_or_drop(wearer, item) + +/decl/loadout_option/proc/place_in_storage_or_drop(mob/living/carbon/human/wearer, obj/item/item) + var/atom/placed_in = wearer.equip_to_storage(item) if(placed_in) - to_chat(H, "Placing \the [item] in your [placed_in.name]!") - else if(H.equip_to_appropriate_slot(item)) - to_chat(H, "Placing \the [item] in your inventory!") - else if(H.put_in_hands(item)) - to_chat(H, "Placing \the [item] in your hands!") + to_chat(wearer, SPAN_NOTICE("Placing \the [item] in your [placed_in.name]!")) + else if(wearer.equip_to_appropriate_slot(item)) + to_chat(wearer, SPAN_NOTICE("Placing \the [item] in your inventory!")) + else if(wearer.put_in_hands(item)) + to_chat(wearer, SPAN_NOTICE("Placing \the [item] in your hands!")) else - to_chat(H, "Dropping \the [item] on the ground!") + to_chat(wearer, SPAN_DANGER("Dropping \the [item] on the ground!")) /decl/loadout_option/proc/spawn_and_validate_item(mob/living/carbon/human/H, metadata) PRIVATE_PROC(TRUE) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index cc49385f397..d605f0e83f6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -237,7 +237,7 @@ var/global/list/time_prefs_fixed = list() /datum/preferences/proc/update_setup_window(mob/user) send_output(user, url_encode(get_content(user)), "preferences_browser:update_content") -/datum/preferences/proc/update_character_previews(mutable_appearance/MA) +/datum/preferences/proc/update_character_previews(mob/living/mannequin) if(!client) return @@ -258,6 +258,8 @@ var/global/list/time_prefs_fixed = list() O.pref = src LAZYSET(char_render_holders, "[D]", O) client.screen |= O + mannequin.set_dir(D) // necessary to update direction-dependent over/underlays like tails. + var/mutable_appearance/MA = new /mutable_appearance(mannequin) O.appearance = MA O.dir = D O.screen_loc = preview_screen_locs["[D]"] @@ -400,8 +402,8 @@ var/global/list/time_prefs_fixed = list() var/decl/sprite_accessory/marking/mark_datum = GET_DECL(M) var/mark_color = "[body_markings[M]]" - for(var/BP in mark_datum.body_parts) - var/obj/item/organ/external/O = GET_EXTERNAL_ORGAN(character, BP) + for(var/bodypart in mark_datum.body_parts) + var/obj/item/organ/external/O = GET_EXTERNAL_ORGAN(character, bodypart) if(O) LAZYSET(O.markings, M, mark_color) diff --git a/code/modules/clothing/head/headphones.dm b/code/modules/clothing/head/headphones.dm index e0020c7d115..4d091f6befe 100644 --- a/code/modules/clothing/head/headphones.dm +++ b/code/modules/clothing/head/headphones.dm @@ -68,9 +68,10 @@ stop_music(user) /obj/item/clothing/head/headphones/proc/play_music(mob/user) + var/static/list/allowed_slots = list(slot_l_ear_str, slot_r_ear_str, slot_head_str) if(!user || !user.client) return - if(!(user.get_inventory_slot(src) in list(slot_l_ear_str, slot_r_ear_str))) + if(!(user.get_equipped_slot_for_item(src) in allowed_slots)) return if(current_track) var/decl/music_track/track = GET_DECL(global.music_tracks[current_track]) diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index d079ee11524..071d8d5091a 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -197,7 +197,7 @@ else if(##equipment_var) {\ if(!istype(H)) return if(H.incapacitated()) return - var/slot = H.get_inventory_slot(src) + var/slot = H.get_equipped_slot_for_item(src) if(slot != slot_wear_suit_str && !(slot in H.held_item_slots)) return// let them eject those tanks when they're in hand or stuff for ease of use @@ -216,7 +216,7 @@ else if(##equipment_var) {\ return ..() if(IS_SCREWDRIVER(W)) - if(user.get_inventory_slot(src) == slot_wear_suit_str)//maybe I should make this into a proc? + if(user.get_equipped_slot_for_item(src) == slot_wear_suit_str)//maybe I should make this into a proc? to_chat(user, "You cannot modify \the [src] while it is being worn.") return @@ -241,7 +241,7 @@ else if(##equipment_var) {\ to_chat(user, "\The [src] does not have anything installed.") return else if(istype(W,/obj/item/clothing/head/helmet/space)) - if(user.get_inventory_slot(src) == slot_wear_suit_str) + if(user.get_equipped_slot_for_item(src) == slot_wear_suit_str) to_chat(user, "You cannot modify \the [src] while it is being worn.") return if(helmet) @@ -254,7 +254,7 @@ else if(##equipment_var) {\ playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) return else if(istype(W,/obj/item/clothing/shoes/magboots)) - if(user.get_inventory_slot(src) == slot_wear_suit_str) + if(user.get_equipped_slot_for_item(src) == slot_wear_suit_str) to_chat(user, "You cannot modify \the [src] while it is being worn.") return if(boots) @@ -267,7 +267,7 @@ else if(##equipment_var) {\ playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1) return else if(istype(W,/obj/item/tank)) - if(user.get_inventory_slot(src) == slot_wear_suit_str) + if(user.get_equipped_slot_for_item(src) == slot_wear_suit_str) to_chat(user, "You cannot modify \the [src] while it is being worn.") return if(tank) diff --git a/code/modules/clothing/under/accessories/accessory_toggleable.dm b/code/modules/clothing/under/accessories/accessory_toggleable.dm index 1c7712c3b0a..0720696be1d 100644 --- a/code/modules/clothing/under/accessories/accessory_toggleable.dm +++ b/code/modules/clothing/under/accessories/accessory_toggleable.dm @@ -91,7 +91,7 @@ /obj/item/clothing/accessory/toggleable/hawaii/random/Initialize() . = ..() icon = pick('icons/clothing/accessories/clothing/hawaiian.dmi', 'icons/clothing/accessories/clothing/hawaiian_alt.dmi') - color = color_rotation(rand(-11,12)*15) + color = color_matrix_rotate_hue(rand(-11,12)*15) /obj/item/clothing/accessory/toggleable/zhongshan name = "zhongshan suit jacket" diff --git a/code/modules/codex/codex_atom.dm b/code/modules/codex/codex_atom.dm index 859c6a4491a..531ae62e228 100644 --- a/code/modules/codex/codex_atom.dm +++ b/code/modules/codex/codex_atom.dm @@ -1,18 +1,29 @@ +/atom + var/atom_codex_ref + +/obj + atom_codex_ref = TRUE + +/mob + atom_codex_ref = TRUE + +/turf + atom_codex_ref = TRUE + /atom/proc/get_codex_value() return src /atom/proc/get_specific_codex_entry() - if(SScodex.entries_by_path[type]) - return SScodex.entries_by_path[type] - - var/lore = get_lore_info() - var/mechanics = get_mechanics_info() - var/antag = get_antag_info() - if(!lore && !mechanics && !antag) - return FALSE - - var/datum/codex_entry/entry = new(name, list(type), _lore_text = lore, _mechanics_text = mechanics, _antag_text = antag) - return entry + if(!atom_codex_ref) + return + if(!istype(atom_codex_ref, /datum/codex_entry)) + var/lore = get_lore_info() + var/mechanics = get_mechanics_info() + var/antag = get_antag_info() + if(!lore && !mechanics && !antag) + return + atom_codex_ref = new /datum/codex_entry/temporary(name, list(type), _lore_text = lore, _mechanics_text = mechanics, _antag_text = antag) + return atom_codex_ref /atom/proc/get_mechanics_info() return diff --git a/code/modules/codex/entries/_codex_entry.dm b/code/modules/codex/entries/_codex_entry.dm index 34fe9460ace..635e296fd72 100644 --- a/code/modules/codex/entries/_codex_entry.dm +++ b/code/modules/codex/entries/_codex_entry.dm @@ -3,6 +3,7 @@ /datum/codex_entry var/name + var/store_codex_entry = TRUE var/list/associated_strings var/list/associated_paths var/lore_text @@ -11,9 +12,10 @@ var/disambiguator var/list/categories -/datum/codex_entry/New(var/_display_name, var/list/_associated_paths, var/list/_associated_strings, var/_lore_text, var/_mechanics_text, var/_antag_text) +/datum/codex_entry/temporary + store_codex_entry = FALSE - SScodex.all_entries += src +/datum/codex_entry/New(var/_display_name, var/list/_associated_paths, var/list/_associated_strings, var/_lore_text, var/_mechanics_text, var/_antag_text) if(_display_name) name = _display_name if(_associated_paths) associated_paths = _associated_paths @@ -22,7 +24,7 @@ if(_mechanics_text) mechanics_text = _mechanics_text if(_antag_text) antag_text = _antag_text - if(length(associated_paths)) + if(store_codex_entry && length(associated_paths)) for(var/tpath in associated_paths) var/atom/thing = tpath var/thing_name = codex_sanitize(initial(thing.name)) @@ -40,23 +42,37 @@ else CRASH("Attempted to instantiate unnamed codex entry with no associated strings!") - LAZYDISTINCTADD(associated_strings, codex_sanitize(name)) - for(var/associated_string in associated_strings) - var/clean_string = codex_sanitize(associated_string) - if(!clean_string) - associated_strings -= associated_string - continue - if(clean_string != associated_string) - associated_strings -= associated_string - associated_strings |= clean_string - if(SScodex.entries_by_string[clean_string]) - PRINT_STACK_TRACE("Trying to save codex entry for [name] by string [clean_string] but one already exists!") - SScodex.entries_by_string[clean_string] = src + if(store_codex_entry) + SScodex.all_entries += src + LAZYDISTINCTADD(associated_strings, codex_sanitize(name)) + for(var/associated_string in associated_strings) + var/clean_string = codex_sanitize(associated_string) + if(!clean_string) + associated_strings -= associated_string + continue + if(clean_string != associated_string) + associated_strings -= associated_string + associated_strings |= clean_string + if(SScodex.entries_by_string[clean_string]) + PRINT_STACK_TRACE("Trying to save codex entry for [name] by string [clean_string] but one already exists!") + SScodex.entries_by_string[clean_string] = src ..() /datum/codex_entry/Destroy(force) - SScodex.all_entries -= src + if(store_codex_entry) // Gating here to avoid unnecessary list checking overhead. + SScodex.all_entries -= src + for(var/associated_string in associated_strings) + SScodex.entries_by_string -= associated_string + for(var/associated_path in associated_paths) + SScodex.entries_by_path -= associated_path + for(var/thing in SScodex.index_file) + if(src == SScodex.index_file[thing]) + SScodex.index_file -= thing + for(var/thing in SScodex.search_cache) + var/list/cached = SScodex.search_cache[thing] + if(src in cached) + cached -= src . = ..() /datum/codex_entry/proc/get_codex_header(var/mob/presenting_to) @@ -67,7 +83,7 @@ if(presenting_to.client) . += "Search Codex" . += "List All Entries" - . += "
" + . += "

[name]

" /datum/codex_entry/proc/get_codex_footer(var/mob/presenting_to) . = list() diff --git a/code/modules/codex/entries/codex.dm b/code/modules/codex/entries/codex.dm index 4028038ddb1..e7f621bf40f 100644 --- a/code/modules/codex/entries/codex.dm +++ b/code/modules/codex/entries/codex.dm @@ -21,7 +21,7 @@ mechanics_text = "The place to start with The Codex
" /datum/codex_entry/nexus/get_codex_body(mob/presenting_to, include_header, include_footer) - . = list(get_codex_header(presenting_to)) + . = get_codex_header(presenting_to) . += "[mechanics_text]" . += "

Categories

" var/list/category_strings diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index 737fb25190c..fde3b27d545 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -32,7 +32,7 @@ var/global/list/carp_count = list() // a list of Z levels (string), associated w announcement = "A massive migration of unknown biological entities has been detected in the vicinity of the [location_name()]. Exercise external operations with caution." else announcement = "A large migration of unknown biological entities has been detected in the vicinity of the [location_name()]. Caution is advised." - + command_announcement.Announce(announcement, "[location_name()] Sensor Array", zlevels = affecting_z) /datum/event/carp_migration/tick() @@ -66,7 +66,7 @@ var/global/list/carp_count = list() // a list of Z levels (string), associated w I += 3 events_repository.register(/decl/observ/death, M,src,/datum/event/carp_migration/proc/reduce_carp_count) events_repository.register(/decl/observ/destroyed, M,src,/datum/event/carp_migration/proc/reduce_carp_count) - LAZYADD(global.carp_count["[Z]"], M) + LAZYADD(global.carp_count[num2text(Z)], M) spawned_carp ++ M.throw_at(get_random_edge_turf(global.reverse_dir[direction],TRANSITIONEDGE + 2, Z), 250, speed, callback = CALLBACK(src,/datum/event/carp_migration/proc/check_gib,M)) I++ @@ -93,7 +93,7 @@ var/global/list/carp_count = list() // a list of Z levels (string), associated w /datum/event/carp_migration/proc/reduce_carp_count(var/mob/M) for(var/Z in affecting_z) - var/list/L = global.carp_count["[Z]"] + var/list/L = global.carp_count[num2text(Z)] if(M in L) LAZYREMOVE(L,M) break diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 391550545ca..33914e601f4 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -53,7 +53,7 @@ return for(var/i in affecting_z) - var/obj/effect/overmap/visitable/sector = global.overmap_sectors["[i]"] + var/obj/effect/overmap/visitable/sector = global.overmap_sectors[num2text(i)] if(istype(sector)) overmap_sectors |= sector else diff --git a/code/modules/events/event.dm b/code/modules/events/event.dm index cd4a4bb2e16..4a41dbf3d31 100644 --- a/code/modules/events/event.dm +++ b/code/modules/events/event.dm @@ -157,7 +157,7 @@ startedAt = world.time if(!affecting_z) - affecting_z = global.using_map.station_levels + affecting_z = SSmapping.station_levels setup() ..() @@ -165,5 +165,5 @@ /datum/event/proc/location_name() if(!length(global.using_map.overmap_ids)) return station_name() - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[pick(affecting_z)]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(pick(affecting_z))] return O?.name || "Unknown Location" diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index c76ac682af5..e414cd6f8a8 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -8,7 +8,7 @@ /datum/event/ionstorm/get_skybox_image() if(!cloud_hueshift) - cloud_hueshift = color_rotation(rand(-3,3)*15) + cloud_hueshift = color_matrix_rotate_hue(rand(-3,3)*15) var/image/res = overlay_image('icons/skybox/ionbox.dmi', "ions", cloud_hueshift, RESET_COLOR) res.blend_mode = BLEND_ADD return res diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm index 6f2ad353c22..aa4733b207e 100644 --- a/code/modules/events/rogue_drones.dm +++ b/code/modules/events/rogue_drones.dm @@ -38,7 +38,7 @@ var/num_recovered = 0 for(var/mob/living/simple_animal/hostile/retaliate/malf_drone/D in drones_list) spark_at(D.loc) - D.z = global.using_map.admin_levels[1] + D.z = SSmapping.admin_levels[1] D.has_loot = 0 qdel(D) diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 6929daeefb1..9417b19dfdf 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -7,7 +7,7 @@ var/shift_frequency = 3 var/number_of_wormholes = 400 -/datum/event/wormholes/setup(affected_z_levels = global.using_map.player_levels) +/datum/event/wormholes/setup(affected_z_levels = SSmapping.player_levels) if(affected_z_levels) affecting_z = affected_z_levels announceWhen = rand(0, 20) diff --git a/code/modules/fabrication/designs/imprinter/designs_misc_circuits.dm b/code/modules/fabrication/designs/imprinter/designs_misc_circuits.dm index 41be4780345..eb02821ccad 100644 --- a/code/modules/fabrication/designs/imprinter/designs_misc_circuits.dm +++ b/code/modules/fabrication/designs/imprinter/designs_misc_circuits.dm @@ -269,6 +269,9 @@ /datum/fabricator_recipe/imprinter/circuit/design_console path = /obj/item/stock_parts/circuitboard/design_console +/datum/fabricator_recipe/imprinter/circuit/design_database + path = /obj/item/stock_parts/circuitboard/design_database + /datum/fabricator_recipe/imprinter/circuit/sensors path = /obj/item/stock_parts/circuitboard/sensors @@ -446,6 +449,9 @@ /datum/fabricator_recipe/imprinter/circuit/merchant_pad path = /obj/item/stock_parts/circuitboard/merchant_pad +/datum/fabricator_recipe/imprinter/circuit/radiocarbon_spectrometer + path = /obj/item/stock_parts/circuitboard/radiocarbon_spectrometer + /datum/fabricator_recipe/imprinter/circuit/jukebox path = /obj/item/stock_parts/circuitboard/jukebox @@ -473,6 +479,9 @@ /datum/fabricator_recipe/imprinter/circuit/router_wall_mounted path = /obj/item/stock_parts/circuitboard/router/wall_mounted +/datum/fabricator_recipe/imprinter/circuit/modem + path = /obj/item/stock_parts/circuitboard/modem + /datum/fabricator_recipe/imprinter/circuit/relay path = /obj/item/stock_parts/circuitboard/relay @@ -493,3 +502,6 @@ /datum/fabricator_recipe/imprinter/circuit/photocopier path = /obj/item/stock_parts/circuitboard/photocopier + +/datum/fabricator_recipe/imprinter/circuit/holomap + path = /obj/item/stock_parts/circuitboard/holomap diff --git a/code/modules/fabrication/designs/industrial/designs_exosuit_components.dm b/code/modules/fabrication/designs/industrial/designs_exosuit_components.dm index 04fac032ffa..1c4f1849691 100644 --- a/code/modules/fabrication/designs/industrial/designs_exosuit_components.dm +++ b/code/modules/fabrication/designs/industrial/designs_exosuit_components.dm @@ -84,29 +84,56 @@ /datum/fabricator_recipe/industrial/exosuit_gear/drill path = /obj/item/mech_equipment/drill -/datum/fabricator_recipe/industrial/exosuit_gear/taser +/datum/fabricator_recipe/industrial/exosuit_gear/mounted path = /obj/item/mech_equipment/mounted_system/taser -/datum/fabricator_recipe/industrial/exosuit_gear/plasma +// Add the resources from whatever is mounted on the system +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/get_resources() + . = ..() + if(!ispath(path, /obj/item/mech_equipment/mounted_system)) + return + var/obj/item/mech_equipment/mounted_system/system = path + + var/mounted_type = initial(system.holding_type) + if(!mounted_type) + return + var/list/mounted_cost = atom_info_repository.get_matter_for(mounted_type) + for(var/mat in mounted_cost) + resources[mat] += mounted_cost[mat] * FABRICATOR_EXTRA_COST_FACTOR + +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/plasma path = /obj/item/mech_equipment/mounted_system/taser/plasma -/datum/fabricator_recipe/industrial/exosuit_gear/ion +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/ion path = /obj/item/mech_equipment/mounted_system/taser/ion -/datum/fabricator_recipe/industrial/exosuit_gear/laser +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/laser path = /obj/item/mech_equipment/mounted_system/taser/laser -/datum/fabricator_recipe/industrial/exosuit_gear/rcd +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/smg + path = /obj/item/mech_equipment/mounted_system/projectile + +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/rifle + path = /obj/item/mech_equipment/mounted_system/projectile/assault_rifle + +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/rcd path = /obj/item/mech_equipment/mounted_system/rcd -/datum/fabricator_recipe/industrial/exosuit_gear/floodlight +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/floodlight path = /obj/item/mech_equipment/light -/datum/fabricator_recipe/industrial/exosuit_gear/sleeper +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/sleeper path = /obj/item/mech_equipment/sleeper -/datum/fabricator_recipe/industrial/exosuit_gear/extinguisher +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/extinguisher path = /obj/item/mech_equipment/mounted_system/extinguisher -/datum/fabricator_recipe/industrial/exosuit_gear/mechshields +/datum/fabricator_recipe/industrial/exosuit_gear/mounted/mechshields path = /obj/item/mech_equipment/shields + +/datum/fabricator_recipe/industrial/exosuit_ammo + category = "Exosuit Ammunition" + path = /obj/item/ammo_magazine/mech/smg_top + +/datum/fabricator_recipe/industrial/exosuit_ammo + path = /obj/item/ammo_magazine/mech/rifle \ No newline at end of file diff --git a/code/modules/fabrication/designs/protolathe/designs_tools.dm b/code/modules/fabrication/designs/protolathe/designs_tools.dm index 72fcbb248f0..a70e4be60fe 100644 --- a/code/modules/fabrication/designs/protolathe/designs_tools.dm +++ b/code/modules/fabrication/designs/protolathe/designs_tools.dm @@ -65,6 +65,12 @@ /datum/fabricator_recipe/protolathe/tool/adv_reagent_scanner path = /obj/item/scanner/reagent/adv +/datum/fabricator_recipe/protolathe/tool/health_scanner + path = /obj/item/scanner/health + +/datum/fabricator_recipe/protolathe/tool/breath_scanner + path = /obj/item/scanner/breath + /datum/fabricator_recipe/protolathe/tool/nanopaste path = /obj/item/stack/nanopaste diff --git a/code/modules/holomap/holomap.dm b/code/modules/holomap/holomap.dm new file mode 100644 index 00000000000..1b2968516a2 --- /dev/null +++ b/code/modules/holomap/holomap.dm @@ -0,0 +1,417 @@ +/obj/machinery/holomap + name = "holomap" + desc = "A screen that projects a map of the surrounding structure." + icon = 'icons/obj/machines/stationmap.dmi' + icon_state = "station_map" + anchored = TRUE + density = FALSE + use_power = POWER_USE_IDLE + idle_power_usage = 10 + active_power_usage = 500 + light_color = "#64c864" + uncreated_component_parts = null + construct_state = /decl/machine_construction/default/panel_closed + base_type = /obj/machinery/holomap + layer = ABOVE_WINDOW_LAYER // Above windows. + directional_offset = "{'NORTH':{'y':-32}, 'SOUTH':{'y':32}, 'EAST':{'x':-32}, 'WEST':{'x':32}}" + + var/light_power_on = 1 + var/light_range_on = 2 + var/mob/watching_mob + var/image/small_station_map + var/image/floor_markings + var/image/panel + /// z-level on which the station map was initialized. + var/original_zLevel = 1 + /// set to FALSE when you initialize the station map on a zLevel that has its own icon formatted for use by station holomaps. + var/bogus = TRUE + var/datum/station_holomap/holomap_datum + +/obj/machinery/holomap/Destroy() + SSminimap.station_holomaps -= src + stopWatching() + QDEL_NULL(holomap_datum) + return ..() + +/obj/machinery/holomap/Initialize() + holomap_datum = new() + original_zLevel = loc.z + bogus = FALSE + . = ..() + SSminimap.station_holomaps += src + if(SSminimap.initialized) + update_map_data() + floor_markings = image('icons/obj/machines/stationmap.dmi', "decal_station_map") + floor_markings.dir = src.dir + update_icon() + +/obj/machinery/holomap/proc/update_map_data() + if(!SSminimap.holomaps[original_zLevel]) + bogus = TRUE + holomap_datum.initialize_holomap_bogus() + update_icon() + return + + holomap_datum.initialize_holomap(get_turf(src), reinit = TRUE) + + small_station_map = image(icon = SSminimap.holomaps[original_zLevel].holomap_small) + small_station_map.plane = ABOVE_LIGHTING_PLANE + small_station_map.layer = ABOVE_LIGHTING_LAYER + small_station_map.pixel_x = 10 + small_station_map.pixel_y = 10 + + update_icon() + +/obj/machinery/holomap/attack_hand(var/mob/user) + if(watching_mob && (watching_mob != user)) + to_chat(user, SPAN_WARNING("Someone else is currently watching the holomap.")) + return + if(user.loc != loc) + to_chat(user, SPAN_WARNING("You need to stand in front of \the [src].")) + return + startWatching(user) + +// Let people bump up against it to watch +/obj/machinery/holomap/Bumped(var/atom/movable/AM) + if(!watching_mob && isliving(AM) && AM.loc == loc) + startWatching(AM) + +// In order to actually get Bumped() we need to block movement. We're (visually) on a wall, so people +// couldn't really walk into us anyway. But in reality we are on the turf in front of the wall, so bumping +// against where we seem is actually trying to *exit* our real loc +/obj/machinery/holomap/CheckExit(atom/movable/mover as mob|obj, turf/target as turf) + if(get_dir(target, loc) == dir) // Opposite of "normal" since we are visually in the next turf over + return FALSE + else + return TRUE + +/obj/machinery/holomap/proc/startWatching(var/mob/user) + if(!isliving(user) || !anchored || !operable() || !user.client) + return FALSE + + var/datum/global_hud/global_hud = get_global_hud() + holomap_datum.station_map.loc = global_hud.holomap // Put the image on the holomap hud + holomap_datum.station_map.alpha = 0 // Set to transparent so we can fade in + animate(holomap_datum.station_map, alpha = 255, time = 5, easing = LINEAR_EASING) + flick("station_map_activate", src) + user.client.screen |= global_hud.holomap + user.client.images |= holomap_datum.station_map + + watching_mob = user + events_repository.register(/decl/observ/moved, watching_mob, src, /obj/machinery/holomap/proc/checkPosition) + events_repository.register(/decl/observ/destroyed, watching_mob, src, /obj/machinery/holomap/proc/stopWatching) + update_use_power(POWER_USE_ACTIVE) + + if(bogus) + to_chat(user, SPAN_WARNING("The holomap failed to initialize. This area of space cannot be mapped.")) + else + to_chat(user, SPAN_NOTICE("A hologram of your current location appears before your eyes.")) + + START_PROCESSING_MACHINE(src, MACHINERY_PROCESS_SELF) + +/obj/machinery/holomap/Process() + if(!operable()) + stopWatching() + return PROCESS_KILL + +/obj/machinery/holomap/proc/checkPosition() + if(!watching_mob || (watching_mob.loc != loc) || (dir != watching_mob.dir)) + stopWatching() + +/obj/machinery/holomap/proc/stopWatching() + if(watching_mob) + if(watching_mob.client) + animate(holomap_datum.station_map, alpha = 0, time = 5, easing = LINEAR_EASING) + var/mob/M = watching_mob + addtimer(CALLBACK(src, .proc/clear_image, M, holomap_datum.station_map), 5, TIMER_CLIENT_TIME)//we give it time to fade out + events_repository.unregister(/decl/observ/moved, watching_mob, src) + events_repository.unregister(/decl/observ/destroyed, watching_mob, src) + watching_mob = null + update_use_power(POWER_USE_IDLE) + if(holomap_datum) + holomap_datum.legend_deselect() + +/obj/machinery/holomap/proc/clear_image(mob/M, image/I) + if (M.client) + M.client.images -= I + +/obj/machinery/holomap/on_update_icon() + . = ..() + cut_overlays() + if(stat & BROKEN) + icon_state = "station_mapb" + set_light(0) + else if((stat & NOPOWER) || !anchored) + icon_state = "station_map0" + set_light(0) + else + icon_state = "station_map" + set_light(0.8, 0.1, 2, 2, "#1dbe17") + // Put the little "map" overlay down where it looks nice + if(small_station_map) + add_overlay(small_station_map) + if(floor_markings) + floor_markings.dir = src.dir + floor_markings.pixel_x = -src.pixel_x + floor_markings.pixel_y = -src.pixel_y + add_overlay(floor_markings) + if(panel_open) + add_overlay("station_map-panel") + +/obj/machinery/holomap/explosion_act(severity) + . = ..() + if(!QDELETED(src)) + switch(severity) + if(1) + qdel(src) + if(2) + if(prob(50)) + qdel(src) + else + set_broken() + if(3) + if(prob(25)) + set_broken() + +/obj/screen/levelselect + icon = 'icons/misc/mark.dmi' + layer = HUD_ITEM_LAYER + var/active = TRUE + var/datum/station_holomap/owner = null + +/obj/screen/levelselect/Initialize(mapload, datum/station_holomap/_owner) + . = ..() + owner = _owner + +/obj/screen/levelselect/Click() + return (!usr.incapacitated() && !isghost(usr)) +/obj/screen/levelselect/up + icon_state = "fup" + +/obj/screen/levelselect/up/Click() + if(..()) + if(owner) + owner.set_level(owner.displayed_level - 1) + +/obj/screen/levelselect/down + icon_state = "fdn" + +/obj/screen/levelselect/down/Click() + if(..()) + if(owner) + owner.set_level(owner.displayed_level + 1) + +/obj/screen/legend + icon = null + maptext_height = 128 + maptext_width = 128 + layer = HUD_ITEM_LAYER + pixel_x = HOLOMAP_LEGEND_X + appearance_flags = PIXEL_SCALE | RESET_COLOR + var/saved_color + var/datum/station_holomap/owner = null + var/has_areas = FALSE + +/obj/screen/legend/cursor + icon = 'icons/misc/holomap_markers.dmi' + icon_state = "you" + maptext_x = 11 + pixel_x = HOLOMAP_LEGEND_X - 3 + has_areas = TRUE + +/obj/screen/legend/Initialize(mapload, map_color, text) + . = ..() + saved_color = map_color + maptext = "[text]" + alpha = 255 + +/obj/screen/legend/Click(location, control, params) + if(!usr.incapacitated() && !isghost(usr)) + if(istype(owner)) + owner.legend_select(src) + +/obj/screen/legend/proc/Setup(z_level) + has_areas = FALSE + //Get the areas for this z level and mark if we're empty + overlays.Cut() + for(var/area/A in SSminimap.holomaps[z_level].holomap_areas) + if(A.holomap_color == saved_color) + var/image/area = image(SSminimap.holomaps[z_level].holomap_areas[A]) + area.pixel_x = ((HOLOMAP_ICON_SIZE / 2) - world.maxx / 2) - pixel_x + area.pixel_y = ((HOLOMAP_ICON_SIZE / 2) - world.maxy / 2) - pixel_y + overlays += area + has_areas = TRUE + +//What happens when we are clicked on / when another is clicked on +/obj/screen/legend/proc/Select() + //Start blinking + animate(src, alpha = 0, time = 2, loop = -1, easing = JUMP_EASING | EASE_IN | EASE_OUT) + animate(alpha = 254, time = 2, loop = -1, easing = JUMP_EASING | EASE_IN | EASE_OUT) + +/obj/screen/legend/proc/Deselect() + //Stop blinking + animate(src, flags = ANIMATION_END_NOW) + +//Cursor doesnt do anything specific. +/obj/screen/legend/cursor/Setup() + +/obj/screen/legend/cursor/Select() + +/obj/screen/legend/cursor/Deselect() + +// Simple datum to keep track of a running holomap. Each machine capable of displaying the holomap will have one. +/datum/station_holomap + var/image/station_map + var/image/cursor + var/list/obj/screen/legend/legend + var/list/obj/screen/maptexts + var/list/obj/screen/levelselect/lbuttons + var/list/image/levels + var/list/z_levels + var/z = -1 + var/displayed_level = 1 //Index of level to display + +/datum/station_holomap/Destroy(force) + QDEL_NULL(station_map) + QDEL_NULL(cursor) + QDEL_NULL_LIST(legend) + QDEL_NULL_LIST(levels) + QDEL_NULL_LIST(lbuttons) + QDEL_NULL_LIST(maptexts) + QDEL_NULL_LIST(z_levels) + . = ..() + +/datum/station_holomap/proc/initialize_holomap(turf/T, isAI = null, mob/user = null, reinit = FALSE) + z = T.z + if(!station_map || reinit) + station_map = image(SSminimap.holomaps[z].holomap_combined) + if(!cursor || reinit) + cursor = image('icons/misc/holomap_markers.dmi', "you") + cursor.layer = HUD_ABOVE_ITEM_LAYER + + if(!LAZYLEN(legend) || reinit) + QDEL_NULL_LIST(legend) + legend = list( + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_COMMAND, "■ Command"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_SECURITY, "■ Security"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_MEDICAL, "■ Medical"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_SCIENCE, "■ Research"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_EXPLORATION, "■ Exploration"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_ENGINEERING, "■ Engineering"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_CARGO, "■ Supply"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_AIRLOCK, "■ Airlock"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_ESCAPE, "■ Escape"), + new /obj/screen/legend(null, HOLOMAP_AREACOLOR_CREW, "■ Crew"), + new /obj/screen/legend/cursor(null, HOLOMAP_AREACOLOR_BASE, "You are here") + ) + if(reinit) + QDEL_NULL_LIST(maptexts) + QDEL_NULL_LIST(levels) + QDEL_NULL_LIST(z_levels) + QDEL_NULL_LIST(lbuttons) + + station_map = image(icon(HOLOMAP_ICON, "stationmap")) + station_map.layer = UNDER_HUD_LAYER + + //This is where the fun begins + if(length(global.using_map.overmap_ids)) + var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] + + var/current_z_offset_x = (HOLOMAP_ICON_SIZE / 2) - world.maxx / 2 + var/current_z_offset_y = (HOLOMAP_ICON_SIZE / 2) - world.maxy / 2 + + //For the given z level fetch the related map sector and build the list + if(istype(O)) + var/z_count = length(O.map_z) + var/current_z_index = 1 + z_levels = O.map_z.Copy() + + if(z_count > 1) + if(!LAZYLEN(lbuttons)) + //Add the buttons for switching levels + LAZYADD(lbuttons, new /obj/screen/levelselect/up(null, src)) + LAZYADD(lbuttons, new /obj/screen/levelselect/down(null, src)) + lbuttons[1].pixel_y = HOLOMAP_MARGIN - 22 + lbuttons[2].pixel_y = HOLOMAP_MARGIN + 5 + lbuttons[1].pixel_x = 254 + lbuttons[2].pixel_x = 196 + + //Each level now has to be built and offset properly. Then stored to be showed later + for(var/level = 1; level <= z_count; level++) + if (z == O.map_z[level]) + current_z_index = level + + //Turfs and walls + var/image/map_image = image(SSminimap.holomaps[O.map_z[level]].holomap_base) + + map_image.color = COLOR_HOLOMAP_HOLOFIER + map_image.layer = HUD_BASE_LAYER + + map_image.pixel_x = (HOLOMAP_ICON_SIZE / 2) - world.maxx / 2 + map_image.pixel_y = (HOLOMAP_ICON_SIZE / 2) - world.maxy / 2 + + //Store the image for future use + //LAZYADD(levels, map_image) + LAZYSET(levels, "[O.map_z[level]]", map_image) + + var/obj/screen/maptext_overlay = new(null) + maptext_overlay.icon = null + maptext_overlay.layer = HUD_ITEM_LAYER + maptext_overlay.appearance_flags |= RESET_COLOR | PIXEL_SCALE + maptext_overlay.maptext = STYLE_SMALLFONTS_OUTLINE("
LEVEL [level-1]
", 7, COLOR_WHITE, COLOR_BLACK) + maptext_overlay.maptext_width = 96 + maptext_overlay.pixel_x = (HOLOMAP_ICON_SIZE / 2) - (maptext_overlay.maptext_width / 2) + maptext_overlay.pixel_y = HOLOMAP_MARGIN + + LAZYSET(maptexts, "[O.map_z[level]]", maptext_overlay) + + //Reset to starting zlevel + set_level(current_z_index) + if(isAI) + T = get_turf(user.client.eye) + cursor.pixel_x = (T.x - 6 + current_z_offset_x) * PIXEL_MULTIPLIER + cursor.pixel_y = (T.y - 6 + current_z_offset_y) * PIXEL_MULTIPLIER + + +/datum/station_holomap/proc/set_level(level) + if(level > z_levels.len) + return + + displayed_level = level + + station_map.overlays.Cut() + station_map.vis_contents.Cut() + + if(z == z_levels[displayed_level]) + station_map.overlays += cursor + + station_map.overlays += levels["[z_levels[displayed_level]]"] + station_map.vis_contents += maptexts["[z_levels[displayed_level]]"] + + //Fix legend position + var/pixel_y = HOLOMAP_LEGEND_Y + for(var/obj/screen/legend/element in legend) + element.owner = src + element.pixel_y = pixel_y //Set adjusted pixel y as it will be needed for area placement + element.Setup(z_levels[displayed_level]) + if(element.has_areas) + pixel_y -= 10 + station_map.vis_contents += element + + if(displayed_level > 1) + station_map.vis_contents += lbuttons[1] + + if(displayed_level < z_levels.len) + station_map.vis_contents += lbuttons[2] + +/datum/station_holomap/proc/legend_select(obj/screen/legend/L) + legend_deselect() + L.Select() + +/datum/station_holomap/proc/legend_deselect() + for(var/obj/screen/legend/entry in legend) + entry.Deselect() + +/datum/station_holomap/proc/initialize_holomap_bogus() + station_map = image('icons/480x480.dmi', "stationmap") + station_map.overlays |= image('icons/effects/64x64.dmi', "notfound", pixel_x = 7 * WORLD_ICON_SIZE, pixel_y = 7 * WORLD_ICON_SIZE) diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 989c812bf3c..405ac4b45b9 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -28,8 +28,10 @@ var/global/list/plant_seed_sprites = list() /obj/item/seeds/proc/update_seed() if(!seed && seed_type && !isnull(SSplants.seeds) && SSplants.seeds[seed_type]) seed = SSplants.seeds[seed_type] - if(seed.scannable_result) + if(seed?.scannable_result) set_extension(src, /datum/extension/scannable, seed.scannable_result) + else if(has_extension(src, /datum/extension/scannable)) + remove_extension(src, /datum/extension/scannable) update_appearance() //Updates strings and icon appropriately based on seed datum. diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 29348bbea07..22b84d1ec2a 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -120,16 +120,14 @@ ) /obj/machinery/portable_atmospherics/hydroponics/proc/set_seed(var/new_seed) - if(seed) - clear_seed() + if(seed == new_seed) + return seed = new_seed - if(seed.scannable_result) + if(seed?.scannable_result) set_extension(src, /datum/extension/scannable, seed.scannable_result) - -/obj/machinery/portable_atmospherics/hydroponics/proc/clear_seed() - seed = null - if(has_extension(src, /datum/extension/scannable)) + else if(has_extension(src, /datum/extension/scannable)) remove_extension(src, /datum/extension/scannable) + update_icon() /obj/machinery/portable_atmospherics/hydroponics/attack_ghost(var/mob/observer/ghost/user) if(!(harvest && seed && ispath(seed.product_type, /mob))) @@ -280,7 +278,7 @@ if(!seed.get_trait(TRAIT_HARVEST_REPEAT)) yield_mod = 0 - clear_seed() + set_seed(null) dead = 0 age = 0 sampled = 0 @@ -301,7 +299,7 @@ if(!silent) to_chat(user, SPAN_NOTICE("You remove the dead [seed.display_name].")) - clear_seed() + set_seed(null) dead = 0 sampled = 0 @@ -315,9 +313,6 @@ // If a weed growth is sufficient, this proc is called. /obj/machinery/portable_atmospherics/hydroponics/proc/weed_invasion() - //Remove the seed if something is already planted. - if(seed) - clear_seed() set_seed(SSplants.seeds[pick(list("reishi", "nettles", "amanita", "mushrooms", "plumphelmet", "towercap", "harebells", "weeds"))]) if(!seed) diff --git a/code/modules/hydroponics/trays/tray_soil.dm b/code/modules/hydroponics/trays/tray_soil.dm index 8bc7e4ad0da..de21cae2c7f 100644 --- a/code/modules/hydroponics/trays/tray_soil.dm +++ b/code/modules/hydroponics/trays/tray_soil.dm @@ -48,7 +48,7 @@ if(seed) name = seed.display_name check_plant_health() - connected_zlevels = GetConnectedZlevels(z) + connected_zlevels = SSmapping.get_connected_levels(z) /obj/machinery/portable_atmospherics/hydroponics/soil/invisible/Process() if(!seed) diff --git a/code/modules/integrated_electronics/passive/power.dm b/code/modules/integrated_electronics/passive/power.dm index 442c9997854..752d155d340 100644 --- a/code/modules/integrated_electronics/passive/power.dm +++ b/code/modules/integrated_electronics/passive/power.dm @@ -126,9 +126,9 @@ /obj/item/integrated_circuit/passive/power/chemical_cell/make_energy() if(assembly) if(assembly.battery) - var/bp = 5000 - if((assembly.battery.maxcharge-assembly.battery.charge) / CELLRATE > bp && reagents.remove_reagent(/decl/material/liquid/blood, 1)) //only blood is powerful enough to power the station(c) - assembly.give_power(bp) + var/battery_charge = 5000 + if((assembly.battery.maxcharge-assembly.battery.charge) / CELLRATE > battery_charge && reagents.remove_reagent(/decl/material/liquid/blood, 1)) //only blood is powerful enough to power the station(c) + assembly.give_power(battery_charge) for(var/I in fuel) if((assembly.battery.maxcharge-assembly.battery.charge) / CELLRATE > fuel[I]) if(reagents.remove_reagent(I, 1)) diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index eb7a677750f..c1a3e2e2787 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -768,7 +768,7 @@ . += "Please select a teleporter to lock in on:" for(var/obj/machinery/teleport/hub/R in SSmachines.machinery) var/obj/machinery/computer/teleporter/com = R.com - if (istype(com, /obj/machinery/computer/teleporter) && com.locked && !com.one_time_use && com.operable() && ARE_Z_CONNECTED(get_z(src), get_z(com))) + if (istype(com, /obj/machinery/computer/teleporter) && com.locked && !com.one_time_use && com.operable() && LEVELS_ARE_Z_CONNECTED(get_z(src), get_z(com))) .["[com.id] ([R.icon_state == "tele1" ? "Active" : "Inactive"])"] = "tport=[any2ref(com)]" .["None (Dangerous)"] = "tport=random" diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index c6b60c9f0bc..19229528221 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -569,7 +569,7 @@ var/obj/machinery/computer/teleporter/tporter = get_pin_data_as_type(IC_INPUT, 1, /obj/machinery/computer/teleporter) var/step_dir = get_pin_data(IC_INPUT, 2) - if(!ARE_Z_CONNECTED(get_z(src), get_z(tporter))) + if(!LEVELS_ARE_Z_CONNECTED(get_z(src), get_z(tporter))) tporter = null var/turf/rift_location = get_turf(src) diff --git a/code/modules/lighting/lighting_overlay.dm b/code/modules/lighting/lighting_overlay.dm index abfad9d6ea1..fc3492008c5 100644 --- a/code/modules/lighting/lighting_overlay.dm +++ b/code/modules/lighting/lighting_overlay.dm @@ -9,7 +9,7 @@ plane = LIGHTING_PLANE invisibility = INVISIBILITY_LIGHTING simulated = FALSE - blend_mode = BLEND_MULTIPLY + blend_mode = BLEND_OVERLAY var/needs_update = FALSE diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index b1a919d3935..912a673d3ad 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -71,8 +71,14 @@ // else // return - // inefficient :( - if (!corners) + // still inefficient :( + if(!corners || !lighting_corners_initialised) + /* Commented out pending working out why this doesn't work properly on Neb. + if(TURF_IS_DYNAMICALLY_LIT_UNSAFE(src)) + generate_missing_corners() + else + return + */ generate_missing_corners() // This list can contain nulls on things like space turfs -- they only have their neighbors' corners. diff --git a/code/modules/maps/dmm_suite.dm b/code/modules/maps/__dmm_suite_docs.dm similarity index 79% rename from code/modules/maps/dmm_suite.dm rename to code/modules/maps/__dmm_suite_docs.dm index a7a7c071560..dd554aa01fd 100644 --- a/code/modules/maps/dmm_suite.dm +++ b/code/modules/maps/__dmm_suite_docs.dm @@ -1,5 +1,3 @@ -var/global/dmm_suite/maploader = new - /* dmm_suite version 1.0 @@ -53,10 +51,3 @@ var/global/dmm_suite/maploader = new .dmm files. Errors in the .dmm format will cause runtime errors. */ - -// dmm_files: A list of .dmm files to load (Required). -// z_offset: A number representing the z-level on which to start loading the map (Optional). -// cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional). -// measureOnly: When true, no changes will be made to the world (Optional). -// no_changeturf: When true, turf/AfterChange won't be called on loaded turfs -/dmm_suite/proc/load_map(var/list/dmm_files, var/x_offset, var/y_offset, var/z_offset, var/cropMap, var/measureOnly, var/no_changeturf) diff --git a/code/modules/maps/_map_template.dm b/code/modules/maps/_map_template.dm index 9dc4446a614..cb5ffa982f1 100644 --- a/code/modules/maps/_map_template.dm +++ b/code/modules/maps/_map_template.dm @@ -7,12 +7,12 @@ var/loaded = 0 // Times loaded this round var/list/shuttles_to_initialise = list() var/list/subtemplates_to_spawn - var/base_turf_for_zs = null var/accessibility_weight = 0 var/template_flags = TEMPLATE_FLAG_ALLOW_DUPLICATES var/modify_tag_vars = TRUE // Will modify tag vars so that duplicate templates are handled properly. May have compatibility issues with legacy maps (esp. with ferry shuttles). var/list/template_categories // List of strings to store the templates under for mass retrieval. var/template_parent_type = /datum/map_template // If this is equal to current type, the datum is abstract and should not be created. + var/level_data_type /datum/map_template/New(var/created_ad_hoc) if(created_ad_hoc != SSmapping.type) @@ -36,7 +36,7 @@ var/list/bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) var/z_offset = 1 // needed to calculate z-bounds correctly for (var/mappath in mappaths) - var/datum/map_load_metadata/M = maploader.load_map(file(mappath), 1, 1, z_offset, cropMap=FALSE, measureOnly=TRUE, no_changeturf=TRUE, clear_contents= template_flags & TEMPLATE_FLAG_CLEAR_CONTENTS) + var/datum/map_load_metadata/M = maploader.load_map(file(mappath), 1, 1, z_offset, cropMap=FALSE, measureOnly=TRUE, no_changeturf=TRUE, clear_contents=(template_flags & TEMPLATE_FLAG_CLEAR_CONTENTS), level_data_type=src.level_data_type) if(M) bounds = extend_bounds_if_needed(bounds, M.bounds) z_offset++ @@ -104,14 +104,12 @@ SSshuttle.block_queue = pre_init_state SSshuttle.clear_init_queue() // We will flush the queue unless there were other blockers, in which case they will do it. -/datum/map_template/proc/load_new_z(no_changeturf = TRUE) - - var/x = round((world.maxx - width)/2) - var/y = round((world.maxy - height)/2) - var/initial_z = world.maxz + 1 - - if (x < 1) x = 1 - if (y < 1) y = 1 +/datum/map_template/proc/load_new_z(no_changeturf = TRUE, centered=TRUE) + var/x = max(round((world.maxx - width)/2), 1) + var/y = max(round((world.maxy - height)/2), 1) + if(!centered) + x = 1 + y = 1 var/list/bounds = list(1.#INF, 1.#INF, 1.#INF, -1.#INF, -1.#INF, -1.#INF) var/list/atoms_to_initialise = list() @@ -123,7 +121,7 @@ var/initialized_areas_by_type = list() for (var/mappath in mappaths) - var/datum/map_load_metadata/M = maploader.load_map(file(mappath), x, y, no_changeturf = no_changeturf, initialized_areas_by_type = initialized_areas_by_type) + var/datum/map_load_metadata/M = maploader.load_map(file(mappath), x, y, no_changeturf = no_changeturf, initialized_areas_by_type = initialized_areas_by_type, level_data_type = src.level_data_type) if (M) bounds = extend_bounds_if_needed(bounds, M.bounds) atoms_to_initialise += M.atoms_to_initialise @@ -132,20 +130,15 @@ global._preloader.current_map_hash = null - for (var/z_index = bounds[MAP_MINZ]; z_index <= bounds[MAP_MAXZ]; z_index++) - if (accessibility_weight) - global.using_map.accessible_z_levels[num2text(z_index)] = accessibility_weight - if (base_turf_for_zs) - global.using_map.base_turf_by_z[num2text(z_index)] = base_turf_for_zs - global.using_map.player_levels |= z_index // TODO: make maps handle this with /obj/abstract/level_data - //initialize things that are normally initialized after map load init_atoms(atoms_to_initialise) init_shuttles(shuttle_state, map_hash, initialized_areas_by_type) - after_load(initial_z) - if (SSlighting.initialized) - for(var/light_z = initial_z to world.maxz) - SSlighting.InitializeZlev(light_z) + after_load() + for(var/z_index = bounds[MAP_MINZ] to bounds[MAP_MAXZ]) + var/obj/abstract/level_data/level = SSmapping.levels_by_z[z_index] + level.post_template_load(src) + if(SSlighting.initialized) + SSlighting.InitializeZlev(z_index) log_game("Z-level [name] loaded at [x],[y],[world.maxz]") loaded++ @@ -170,7 +163,7 @@ var/initialized_areas_by_type = list() for (var/mappath in mappaths) - var/datum/map_load_metadata/M = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, clear_contents=(template_flags & TEMPLATE_FLAG_CLEAR_CONTENTS), initialized_areas_by_type = initialized_areas_by_type) + var/datum/map_load_metadata/M = maploader.load_map(file(mappath), T.x, T.y, T.z, cropMap=TRUE, clear_contents=(template_flags & TEMPLATE_FLAG_CLEAR_CONTENTS), initialized_areas_by_type = initialized_areas_by_type, level_data_type = src.level_data_type) if (M) atoms_to_initialise += M.atoms_to_initialise else @@ -181,7 +174,7 @@ //initialize things that are normally initialized after map load init_atoms(atoms_to_initialise) init_shuttles(shuttle_state, map_hash, initialized_areas_by_type) - after_load(T.z) + after_load() if (SSlighting.initialized) SSlighting.InitializeTurfs(atoms_to_initialise) // Hopefully no turfs get placed on new coords by SSatoms. @@ -190,7 +183,7 @@ return TRUE -/datum/map_template/proc/after_load(z) +/datum/map_template/proc/after_load() for(var/obj/abstract/landmark/map_load_mark/mark as anything in subtemplates_to_spawn) subtemplates_to_spawn -= mark mark.load_subtemplate() diff --git a/code/modules/maps/helper_landmarks.dm b/code/modules/maps/helper_landmarks.dm index a42fddfb775..ec94884371c 100644 --- a/code/modules/maps/helper_landmarks.dm +++ b/code/modules/maps/helper_landmarks.dm @@ -42,11 +42,15 @@ return INITIALIZE_HINT_LATELOAD /obj/abstract/landmark/carnage_mark/LateInitialize() - var/area/A = get_area(src) - for(var/atom/movable/AM in A) - if(AM && !AM.anchored && AM.simulated && prob(movement_prob)) - spawn() - AM.throw_at_random(FALSE, movement_range, 1) + do_throw() + +/obj/abstract/landmark/carnage_mark/proc/do_throw() + set waitfor = FALSE + sleep(0) + var/area/our_area = get_area(src) + for(var/atom/movable/throw_candidate in our_area) + if(!QDELETED(throw_candidate) && !throw_candidate.anchored && throw_candidate.simulated && prob(movement_prob)) + throw_candidate.throw_at_random(FALSE, movement_range, 1) qdel(src) //Clears walls @@ -98,4 +102,45 @@ events_repository.unregister_global(/decl/observ/shuttle_added, src, .proc/check_shuttle) if(shuttle_datum) events_repository.unregister(/decl/observ/shuttle_moved, shuttle_datum, src, .proc/delete_everything) - . = ..() \ No newline at end of file + . = ..() + +// Has a percent chance on spawn to set the specified variable on the specified type to the specified value. + +/obj/abstract/landmark/variable_setter + is_spawnable_type = FALSE + var/type_to_find + var/variable_to_set + var/value_to_set + var/probability = 100 + +/obj/abstract/landmark/variable_setter/Initialize() + . = ..() + if(!prob(probability)) + return // Do nothing. + for(var/atom/candidate_atom in get_turf(src)) + if(!istype(candidate_atom, type_to_find)) + continue + if(try_set_variable(candidate_atom)) + break + return INITIALIZE_HINT_QDEL + +/obj/abstract/landmark/variable_setter/proc/try_set_variable(atom/atom_to_modify) + // We don't have that variable! Give our own runtime to be more informative than the default one. + if(!(variable_to_set in atom_to_modify.vars)) + CRASH("Unable to find variable [variable_to_set] to modify on type [atom_to_modify.type].") + // Already modified, if we're stacked we shouldn't modify the same one twice. + if(atom_to_modify.vars[variable_to_set] == value_to_set) + return FALSE + atom_to_modify.vars[variable_to_set] = value_to_set + return TRUE + +/obj/abstract/landmark/variable_setter/closet_opener + type_to_find = /obj/structure/closet + variable_to_set = "opened" + value_to_set = TRUE + +/// Used to tell pipe leak unit tests that a leak is intentional. Placed over the pipe that leaks, not the tile missing a pipe. +/obj/abstract/landmark/allowed_leak +#ifndef UNIT_TEST + delete_me = TRUE +#endif diff --git a/code/modules/maps/reader.dm b/code/modules/maps/reader.dm index 221c81a40b9..66640af2f4c 100644 --- a/code/modules/maps/reader.dm +++ b/code/modules/maps/reader.dm @@ -4,6 +4,7 @@ //global datum that will preload variables on atoms instanciation var/global/use_preloader = FALSE +var/global/dmm_suite/maploader = new var/global/dmm_suite/preloader/_preloader = new /datum/map_load_metadata @@ -33,7 +34,13 @@ var/global/dmm_suite/preloader/_preloader = new * 2) Read the map line by line, parsing the result (using parse_grid) * */ -/dmm_suite/load_map(var/dmm_file, var/x_offset, var/y_offset, var/z_offset, var/cropMap, var/measureOnly, var/no_changeturf, var/clear_contents, var/lower_crop_x, var/lower_crop_y, var/upper_crop_x, var/upper_crop_y, var/initialized_areas_by_type) + +// dmm_files: A list of .dmm files to load (Required). +// z_offset: A number representing the z-level on which to start loading the map (Optional). +// cropMap: When true, the map will be cropped to fit the existing world dimensions (Optional). +// measureOnly: When true, no changes will be made to the world (Optional). +// no_changeturf: When true, turf/AfterChange won't be called on loaded turfs +/dmm_suite/proc/load_map(var/dmm_file, var/x_offset, var/y_offset, var/z_offset, var/cropMap, var/measureOnly, var/no_changeturf, var/clear_contents, var/lower_crop_x, var/lower_crop_y, var/upper_crop_x, var/upper_crop_y, var/initialized_areas_by_type, var/level_data_type) //How I wish for RAII Master.StartLoadingMap() space_key = null @@ -43,14 +50,14 @@ var/global/dmm_suite/preloader/_preloader = new initialized_areas_by_type = initialized_areas_by_type || list() if(!(world.area in initialized_areas_by_type)) initialized_areas_by_type[world.area] = locate(world.area) - . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, lower_crop_x, upper_crop_x, lower_crop_y, upper_crop_y, initialized_areas_by_type) + . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, lower_crop_x, upper_crop_x, lower_crop_y, upper_crop_y, initialized_areas_by_type, level_data_type) #ifdef TESTING if(turfsSkipped) testing("Skipped loading [turfsSkipped] default turfs") #endif Master.StopLoadingMap() -/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, initialized_areas_by_type) +/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, clear_contents, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY, initialized_areas_by_type, level_data_type = /obj/abstract/level_data/space) var/tfile = dmm_file//the map file we're creating if(isfile(tfile)) tfile = safe_file2text(tfile, FALSE) @@ -103,19 +110,15 @@ var/global/dmm_suite/preloader/_preloader = new var/ycrd = text2num(dmmRegex.group[4]) + y_offset - 1 var/zcrd = text2num(dmmRegex.group[5]) + z_offset - 1 - var/is_connected_to_lower_levels = ARE_Z_CONNECTED(zcrd, z_offset) - var/is_on_an_existing_zlevel = zcrd <= world.maxz - - if (is_on_an_existing_zlevel && !is_connected_to_lower_levels) + var/zexpansion = zcrd > world.maxz + if(!zexpansion && !LEVELS_ARE_Z_CONNECTED(zcrd, z_offset)) continue - var/zexpansion = zcrd > world.maxz if(zexpansion && !measureOnly) // don't actually expand the world if we're only measuring bounds if(cropMap) continue - else - world.maxz = zcrd //create a new z_level if needed - + while(world.maxz < zcrd) //create new z_levels if needed. + SSmapping.increment_world_z_size(level_data_type) bounds[MAP_MINX] = min(bounds[MAP_MINX], clamp(xcrdStart, x_lower, x_upper)) bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) @@ -191,15 +194,15 @@ var/global/dmm_suite/preloader/_preloader = new if(bounds[1] == 1.#INF) // Shouldn't need to check every item return null - else - if(!measureOnly) - if(clear_contents) - for(var/atom/to_delete in atoms_to_delete) - qdel(to_delete) - var/datum/map_load_metadata/M = new - M.bounds = bounds - M.atoms_to_initialise = atoms_to_initialise - return M + + if(!measureOnly) + if(clear_contents) + for(var/atom/to_delete in atoms_to_delete) + qdel(to_delete) + var/datum/map_load_metadata/M = new + M.bounds = bounds + M.atoms_to_initialise = atoms_to_initialise + return M /** * Fill a given tile with its area/turf/objects/mobs diff --git a/code/modules/maps/template_types/away_site.dm b/code/modules/maps/template_types/away_site.dm index 16520e795dd..b9adb30914b 100644 --- a/code/modules/maps/template_types/away_site.dm +++ b/code/modules/maps/template_types/away_site.dm @@ -3,19 +3,6 @@ template_categories = list(MAP_TEMPLATE_CATEGORY_AWAYSITE) template_parent_type = /datum/map_template/ruin/away_site var/spawn_weight = 1 - var/list/generate_mining_by_z /datum/map_template/ruin/away_site/get_spawn_weight() return spawn_weight - -/datum/map_template/ruin/away_site/after_load(z) - if(islist(generate_mining_by_z)) - for(var/i in generate_mining_by_z) - var/current_z = z + i - 1 - new /datum/random_map/automata/cave_system(1, 1, current_z, world.maxx, world.maxy) - new /datum/random_map/noise/ore(1, 1, current_z, world.maxx, world.maxy) - global.using_map.refresh_mining_turfs(current_z) - else if (isnum(generate_mining_by_z)) - new /datum/random_map/automata/cave_system(1, 1, z + generate_mining_by_z - 1, world.maxx, world.maxy) - new /datum/random_map/noise/ore(1, 1, z + generate_mining_by_z - 1, world.maxx, world.maxy) - global.using_map.refresh_mining_turfs(z + generate_mining_by_z - 1) diff --git a/code/modules/materials/_materials.dm b/code/modules/materials/_materials.dm index e66abdabcb4..50163968143 100644 --- a/code/modules/materials/_materials.dm +++ b/code/modules/materials/_materials.dm @@ -447,8 +447,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/gas_overlay) hidden_from_codex = TRUE exoplanet_rarity = MAT_RARITY_NOWHERE -// Generic material product (sheets, bricks, etc). Used ALL THE TIME. -// May return an instance list, a single instance, or nothing if there is no instance produced. +/// Generic material product (sheets, bricks, etc). Used ALL THE TIME. +/// May return an instance list, a single instance, or nothing if there is no instance produced. /decl/material/proc/create_object(var/atom/target, var/amount = 1, var/object_type, var/reinf_type) if(!object_type) @@ -523,7 +523,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/gas_overlay) /decl/material/proc/get_wall_texture() return -/decl/material/proc/on_leaving_metabolism(var/atom/parent, var/metabolism_class) +/decl/material/proc/on_leaving_metabolism(datum/reagents/metabolism/holder) return #define ACID_MELT_DOSE 10 diff --git a/code/modules/materials/definitions/liquids/materials_liquid_toxins.dm b/code/modules/materials/definitions/liquids/materials_liquid_toxins.dm index 06399f18778..53db49eba28 100644 --- a/code/modules/materials/definitions/liquids/materials_liquid_toxins.dm +++ b/code/modules/materials/definitions/liquids/materials_liquid_toxins.dm @@ -149,8 +149,8 @@ M.timeofdeath = world.time M.add_chemical_effect(CE_NOPULSE, 1) -/decl/material/liquid/zombiepowder/on_leaving_metabolism(atom/parent, metabolism_class) - var/mob/M = parent +/decl/material/liquid/zombiepowder/on_leaving_metabolism(datum/reagents/metabolism/holder) + var/mob/M = holder?.my_atom if(istype(M)) M.status_flags &= ~FAKEDEATH . = ..() diff --git a/code/modules/materials/definitions/solids/materials_solid_metal.dm b/code/modules/materials/definitions/solids/materials_solid_metal.dm index 94a2e987d1c..957975efe8a 100644 --- a/code/modules/materials/definitions/solids/materials_solid_metal.dm +++ b/code/modules/materials/definitions/solids/materials_solid_metal.dm @@ -172,6 +172,7 @@ lore_text = "A strong, flexible alloy of iron and carbon. Probably the single most fundamentally useful and ubiquitous substance in human space." weight = MAT_VALUE_NORMAL wall_support_value = MAT_VALUE_VERY_HEAVY // Ideal construction material. + hardness = MAT_VALUE_HARD integrity = 150 brute_armor = 5 icon_base = 'icons/turf/walls/solid.dmi' diff --git a/code/modules/materials/geology/_strata.dm b/code/modules/materials/geology/_strata.dm index 001c48e2cc8..80c930392e4 100644 --- a/code/modules/materials/geology/_strata.dm +++ b/code/modules/materials/geology/_strata.dm @@ -7,7 +7,8 @@ var/maximum_temperature = INFINITY /decl/strata/proc/is_valid_exoplanet_strata(var/obj/effect/overmap/visitable/sector/exoplanet/planet) - var/check_temp = planet?.atmosphere?.temperature || 0 + var/obj/abstract/level_data/level_data = planet?.zlevels[1] + var/check_temp = level_data?.exterior_atmosphere?.temperature || 0 . = check_temp <= maximum_temperature /decl/strata/Initialize() @@ -28,6 +29,6 @@ else if(isnull(ores_rich) && islist(ores_sparse)) ores_rich = ores_sparse.Copy() - for(var/mat_type in (ores_sparse|ores_rich)) + for(var/mat_type in (base_materials|ores_sparse|ores_rich)) var/decl/material/mat = GET_DECL(mat_type) maximum_temperature = min((mat.melting_point-1), maximum_temperature) diff --git a/code/modules/materials/geology/strata_permafrost.dm b/code/modules/materials/geology/strata_permafrost.dm index 2a2b0ae8628..ee157faa20d 100644 --- a/code/modules/materials/geology/strata_permafrost.dm +++ b/code/modules/materials/geology/strata_permafrost.dm @@ -18,3 +18,4 @@ /decl/material/solid/ice/hydrate/krypton, /decl/material/solid/ice/hydrate/xenon, ) + maximum_temperature = T0C diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 8b4716d513d..d4e4639942b 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -60,7 +60,6 @@ . += new/datum/stack_recipe/key(src) . += new/datum/stack_recipe/rod(src) - if(hardness > MAT_VALUE_RIGID + 10) . += new/datum/stack_recipe/fork(src) . += new/datum/stack_recipe/knife(src) . += new/datum/stack_recipe/bell(src) diff --git a/code/modules/materials/materials_ore.dm b/code/modules/materials/materials_ore.dm index 0a19d1ccd1a..8ee38f987b0 100644 --- a/code/modules/materials/materials_ore.dm +++ b/code/modules/materials/materials_ore.dm @@ -87,7 +87,7 @@ /obj/item/stack/material/ore/update_strings() . = ..() - SetName("[(material.ore_name ? material.ore_name : "[material.name] chunk")] [(amount > 1? "pile" : "")]") + SetName("[(material.ore_name ? material.ore_name : "[material.name] chunk")][(amount > 1? " pile" : "")]") desc = material.ore_desc ? material.ore_desc : "A lump of ore." /obj/item/stack/material/ore/get_recipes() diff --git a/code/modules/mechs/equipment/_equipment.dm b/code/modules/mechs/equipment/_equipment.dm index a730743041e..0822da56c1c 100644 --- a/code/modules/mechs/equipment/_equipment.dm +++ b/code/modules/mechs/equipment/_equipment.dm @@ -81,6 +81,12 @@ /obj/item/mech_equipment/proc/MouseDragInteraction() return 0 +/obj/item/mech_equipment/proc/MouseDownInteraction() + return 0 + +/obj/item/mech_equipment/proc/MouseUpInteraction() + return 0 + /obj/item/mech_equipment/mob_can_unequip(mob/M, slot, disable_warning) . = ..() if(. && owner) diff --git a/code/modules/mechs/equipment/combat_projectile.dm b/code/modules/mechs/equipment/combat_projectile.dm new file mode 100644 index 00000000000..f3748b03f90 --- /dev/null +++ b/code/modules/mechs/equipment/combat_projectile.dm @@ -0,0 +1,168 @@ +/obj/item/mech_equipment/mounted_system/projectile/attackby(var/obj/item/O, var/mob/user) + var/obj/item/gun/projectile/automatic/A = holding + if(!istype(A)) + return + if(istype(O, /obj/item/crowbar)) + A.unload_ammo(user) + to_chat(user, SPAN_NOTICE("You remove the ammo magazine from the [src].")) + else if(istype(O, A.magazine_type)) + A.load_ammo(O, user) + to_chat(user, SPAN_NOTICE("You load the ammo magazine into the [src].")) + +/obj/item/mech_equipment/mounted_system/projectile/attack_self(var/mob/user) + . = ..() + if(. && holding) + var/obj/item/gun/M = holding + return M.switch_firemodes(user) + +/obj/item/gun/projectile/automatic/get_hardpoint_status_value() + if(!isnull(ammo_magazine)) + return ammo_magazine.stored_ammo.len + +/obj/item/gun/projectile/automatic/get_hardpoint_maptext() + if(!isnull(ammo_magazine)) + return "[ammo_magazine.stored_ammo.len]/[ammo_magazine.max_ammo]" + return 0 + +//Weapons below this. +/obj/item/mech_equipment/mounted_system/projectile + name = "mounted submachine gun" + icon_state = "mech_ballistic" + holding_type = /obj/item/gun/projectile/automatic/smg/mech + restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND) + restricted_software = list(MECH_SOFTWARE_WEAPONS) + origin_tech = "{'programming':4,'combat':6,'engineering':5}" + +/obj/item/gun/projectile/automatic/smg/mech + magazine_type = /obj/item/ammo_magazine/mech/smg_top + allowed_magazines = /obj/item/ammo_magazine/mech/smg_top + one_hand_penalty = 0 + has_safety = FALSE + manual_unload = FALSE + firemodes = list( + list(mode_name="semi auto", burst=1, fire_delay=null, one_hand_penalty=0, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, one_hand_penalty=0, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 1.6, 2.4, 2.4), autofire_enabled=0), + list(mode_name="short bursts", burst=5, fire_delay=null, one_hand_penalty=0, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(1.6, 1.6, 2.0, 2.0, 2.4), autofire_enabled=0), + list(mode_name="full auto", burst=1, fire_delay=null, burst_delay=1, one_hand_penalty=0, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(1.6, 1.6, 2.0, 2.0, 2.4), autofire_enabled=1) + ) + +/obj/item/mech_equipment/mounted_system/projectile/assault_rifle + name = "mounted assault rifle" + icon_state = "mech_ballistic2" + holding_type = /obj/item/gun/projectile/automatic/assault_rifle/mech + restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND) + restricted_software = list(MECH_SOFTWARE_WEAPONS) + origin_tech = "{'programming':4,'combat':8,'engineering':6}" + +/obj/item/gun/projectile/automatic/assault_rifle/mech + magazine_type = /obj/item/ammo_magazine/mech/rifle + allowed_magazines = /obj/item/ammo_magazine/mech/rifle + one_hand_penalty = 0 + has_safety = FALSE + manual_unload = FALSE + firemodes = list( + list(mode_name="semi auto", burst=1, fire_delay=null, one_hand_penalty=0, burst_accuracy=null, dispersion=null, autofire_enabled=0), + list(mode_name="3-round bursts", burst=3, fire_delay=null, one_hand_penalty=0, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0), autofire_enabled=0), + list(mode_name="full auto", burst=1, fire_delay=null, burst_delay=1, one_hand_penalty=0, burst_accuracy = list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0), autofire_enabled=1) + ) + +/obj/item/mech_equipment/mounted_system/projectile/machine + name = "mounted machine gun" + icon_state = "mech_machine_gun" + holding_type = /obj/item/gun/projectile/automatic/machine/mech + restricted_hardpoints = list(HARDPOINT_LEFT_HAND, HARDPOINT_RIGHT_HAND) + restricted_software = list(MECH_SOFTWARE_WEAPONS) + +/obj/item/gun/projectile/automatic/machine/mech + magazine_type = /obj/item/ammo_magazine/mech/rifle/drum + allowed_magazines = /obj/item/ammo_magazine/mech/rifle/drum + one_hand_penalty = 0 + has_safety = FALSE + manual_unload = FALSE + +// Magazines below this. + +/obj/item/ammo_magazine/mech/attack_self(mob/user) + to_chat(user, SPAN_WARNING("It's pretty hard to extract ammo from a magazine that fits on a mech. You'll have to do it one round at a time.")) + return + +/obj/item/ammo_magazine/mech/smg_top + name = "large 7mm magazine" + desc = "A large magazine for a mech's gun. Looks way too big for a normal gun." + icon_state = "smg_top" + mag_type = MAGAZINE + ammo_type = /obj/item/ammo_casing/pistol/small + material = /decl/material/solid/metal/steel + caliber = CALIBER_PISTOL_SMALL + max_ammo = 90 + +/obj/item/ammo_magazine/mech/rifle + name = "large assault rifle magazine" + icon_state = "assault_rifle" + mag_type = MAGAZINE + caliber = CALIBER_RIFLE + material = /decl/material/solid/metal/steel + ammo_type = /obj/item/ammo_casing/rifle + max_ammo = 100 + +/obj/item/ammo_magazine/mech/rifle/drum + name = "large machine gun magazine" + icon_state = "drum" + mag_type = MAGAZINE + caliber = CALIBER_RIFLE + material = /decl/material/solid/metal/steel + ammo_type = /obj/item/ammo_casing/rifle + max_ammo = 300 + +// Handling for auto-fire mechanic +/mob/living/exosuit/can_autofire(obj/item/gun/autofiring, atom/autofiring_at) + if(autofiring.autofiring_by != src) + return FALSE + var/client/C = current_user ? current_user.client : client + + if(!C || !C.mob || C.mob.incapacitated()) + return FALSE + + if(!(autofiring_at in view(C.view, src))) + return FALSE + if(!(get_dir(src, autofiring_at) & dir)) + return FALSE + if(!(autofiring in selected_system)) // Make sure the gun is still selected. + return FALSE + return TRUE + +/obj/item/mech_equipment/mounted_system/projectile/MouseDownInteraction(atom/object, location, control, params, mob/user) + var/obj/item/gun/gun = holding + if(istype(object) && (isturf(object) || isturf(object.loc)) && istype(gun)) + if(user != src) + if(!user.incapacitated()) + gun.set_autofire(object, owner, FALSE) // Passed gun-firer is still the exosuit since all checks need to be done on the suit. + owner.current_user = user + else + if(!owner.incapacitated()) + gun.set_autofire(object, owner, FALSE) + owner.current_user = null + +/obj/item/mech_equipment/mounted_system/projectile/MouseUpInteraction(atom/object, location, control, params, mob/user) + var/obj/item/gun/gun = holding + if(istype(gun)) + gun.clear_autofire() + if(owner) // In case the owning exosuit has been gibbed etc. + owner.current_user = null + +/obj/item/mech_equipment/mounted_system/projectile/MouseDragInteraction(atom/src_object, atom/over_object, src_location, over_location, src_control, over_control, params, mob/user) + var/obj/item/gun/gun = holding + if(!owner) + gun?.clear_autofire() + return + if(!istype(gun)) + owner?.current_user = null + return + if(istype(over_object) && (isturf(over_object) || isturf(over_object.loc))) + if(user.incapacitated() || (user != owner && user != owner.current_user)) + gun.clear_autofire() + return + gun.set_autofire(over_object, owner, FALSE) + return + + gun.clear_autofire() \ No newline at end of file diff --git a/code/modules/mechs/mech.dm b/code/modules/mechs/mech.dm index 96e47b99775..2dccac4ee91 100644 --- a/code/modules/mechs/mech.dm +++ b/code/modules/mechs/mech.dm @@ -184,7 +184,7 @@ . = ..() -/mob/living/exosuit/examine(mob/user) +/mob/living/exosuit/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() if(LAZYLEN(pilots) && (!hatch_closed || body.pilot_coverage < 100 || body.transparent_cabin)) to_chat(user, "It is being piloted by [english_list(pilots, nothing_text = "nobody")].") @@ -201,10 +201,8 @@ for(var/obj/item/mech_component/thing in list(arms, legs, head, body)) if(!thing) continue - var/damage_string = thing.get_damage_string() to_chat(user, "Its [thing.name] [thing.gender == PLURAL ? "are" : "is"] [damage_string].") - to_chat(user, "It menaces with reinforcements of [material].") /mob/living/exosuit/return_air() diff --git a/code/modules/mechs/mech_interaction.dm b/code/modules/mechs/mech_interaction.dm index 5734a5088a9..65b5b1e1297 100644 --- a/code/modules/mechs/mech_interaction.dm +++ b/code/modules/mechs/mech_interaction.dm @@ -9,12 +9,12 @@ return TRUE . = ..() -/mob/living/exosuit/RelayMouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params, var/mob/user) +/mob/living/exosuit/RelayMouseDrag(atom/src_object, atom/over_object, src_location, over_location, src_control, over_control, params, mob/user) if(user && (user in pilots) && user.loc == src) return OnMouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params, user) return ..() -/mob/living/exosuit/OnMouseDrag(src_object, over_object, src_location, over_location, src_control, over_control, params, var/mob/user) +/mob/living/exosuit/OnMouseDrag(atom/src_object, atom/over_object, src_location, over_location, src_control, over_control, params, mob/user) if(!user || incapacitated() || user.incapacitated()) return FALSE @@ -25,6 +25,36 @@ if(selected_system) return selected_system.MouseDragInteraction(src_object, over_object, src_location, over_location, src_control, over_control, params, user) +/mob/living/exosuit/RelayMouseDown(atom/object, location, control, params, mob/user) + if(user && (user in pilots) && user.loc == src) + return OnMouseDown(object, location, control, params, user) + return ..() + +/mob/living/exosuit/OnMouseDown(atom/object, location, control, params, mob/user) + if(!user || incapacitated() || user.incapacitated()) + return FALSE + + if(!(user in pilots) && user != src) + return FALSE + + if(selected_system) + return selected_system.MouseDownInteraction(object, location, control, params, user) + +/mob/living/exosuit/RelayMouseUp(atom/object, location, control, params, mob/user) + if(user && (user in pilots) && user.loc == src) + return OnMouseUp(object, location, control, params, user) + return ..() + +/mob/living/exosuit/OnMouseUp(atom/object, location, control, params, mob/user) + if(!user || incapacitated() || user.incapacitated()) + return FALSE + + if(!(user in pilots) && user != src) + return FALSE + + if(selected_system) + return selected_system.MouseUpInteraction(object, location, control, params, user) + /datum/click_handler/default/mech/OnClick(var/atom/A, var/params) var/mob/living/exosuit/E = user.loc if(!istype(E)) @@ -490,7 +520,7 @@ SetName(new_name) to_chat(user, SPAN_NOTICE("You have redesignated this exosuit as \the [name].")) -/mob/living/exosuit/get_inventory_slot(obj/item/I) +/mob/living/exosuit/get_equipped_slot_for_item(obj/item/I) for(var/h in hardpoints) if(hardpoints[h] == I) return h diff --git a/code/modules/mechs/mech_movement.dm b/code/modules/mechs/mech_movement.dm index 4347de5d8f6..408c5931744 100644 --- a/code/modules/mechs/mech_movement.dm +++ b/code/modules/mechs/mech_movement.dm @@ -155,7 +155,9 @@ anchored = 0 return FALSE -/mob/living/exosuit/check_space_footing()//mechs can't push off things to move around in space, they stick to hull or float away +/mob/living/exosuit/check_space_footing() //mechs can't push off things to move around in space, they stick to hull or float away + if(has_gravity()) + return TRUE for(var/thing in RANGE_TURFS(src, 1)) var/turf/T = thing if(T.density || T.is_wall() || T.is_floor()) diff --git a/code/modules/mechs/premade/combat.dm b/code/modules/mechs/premade/combat.dm index e9dc09437f6..ec7bc6b2688 100644 --- a/code/modules/mechs/premade/combat.dm +++ b/code/modules/mechs/premade/combat.dm @@ -17,7 +17,7 @@ /mob/living/exosuit/premade/combat/spawn_mech_equipment() ..() install_system(new /obj/item/mech_equipment/mounted_system/taser(src), HARDPOINT_LEFT_HAND) - install_system(new /obj/item/mech_equipment/mounted_system/taser/ion(src), HARDPOINT_RIGHT_HAND) + install_system(new /obj/item/mech_equipment/mounted_system/projectile/assault_rifle(src), HARDPOINT_RIGHT_HAND) install_system(new /obj/item/mech_equipment/flash(src), HARDPOINT_LEFT_SHOULDER) install_system(new /obj/item/mech_equipment/light(src), HARDPOINT_RIGHT_SHOULDER) diff --git a/code/modules/mining/machinery/_material_processing.dm b/code/modules/mining/machinery/_material_processing.dm index de39207ba8c..0d20dfaf71b 100644 --- a/code/modules/mining/machinery/_material_processing.dm +++ b/code/modules/mining/machinery/_material_processing.dm @@ -27,13 +27,13 @@ /obj/machinery/material_processing/on_update_icon() cut_overlays() - + icon_state = initial(icon_state) if(panel_open) add_overlay("[icon_state]-open") if(!use_power || (stat & (BROKEN|NOPOWER))) icon_state = "[icon_state]-off" - + var/overlay_dir = 0 if(input_turf) overlay_dir = get_dir(src, input_turf) @@ -90,6 +90,7 @@ /obj/machinery/material_processing/Destroy() input_turf = null output_turf = null + events_repository.unregister(/decl/observ/moved, src, src, .proc/on_moved) . = ..() /obj/machinery/material_processing/Initialize() @@ -98,6 +99,13 @@ SET_OUTPUT(output_turf) . = ..() queue_icon_update() + events_repository.register(/decl/observ/moved, src, src, .proc/on_moved) + +/obj/machinery/material_processing/proc/on_moved(atom/moving, atom/old_loc, atom/new_loc) + if(istype(input_turf, /turf)) + input_turf = get_step(get_turf(src), get_dir(get_turf(old_loc), input_turf)) + if(istype(output_turf, /turf)) + output_turf = get_step(get_turf(src), get_dir(get_turf(old_loc), output_turf)) /obj/machinery/material_processing/OnTopic(var/user, var/list/href_list) if(href_list["toggle_power"]) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index d5e65ff9921..6f5f80de575 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -5,8 +5,8 @@ blocks_air = 1 density = 1 opacity = 1 + turf_flags = TURF_IS_HOLOMAP_OBSTACLE -var/global/list/mining_floors = list() /**********************Asteroid**************************/ // Setting icon/icon_state initially will use these values when the turf is built on/replaced. // This means you can put grass on the asteroid etc. @@ -22,22 +22,23 @@ var/global/list/mining_floors = list() initial_flooring = null initial_gas = null temperature = TCMB - turf_flags = TURF_FLAG_BACKGROUND + turf_flags = TURF_FLAG_BACKGROUND | TURF_IS_HOLOMAP_PATH var/dug = 0 //0 = has not yet been dug, 1 = has already been dug var/overlay_detail /turf/simulated/floor/asteroid/Initialize() - . = ..() - if (!mining_floors["[src.z]"]) - mining_floors["[src.z]"] = list() - mining_floors["[src.z]"] += src if(prob(20)) overlay_detail = "asteroid[rand(0,9)]" + . = ..() + var/obj/abstract/level_data/mining_level/level = SSmapping.levels_by_z[z] + if(istype(level)) + LAZYADD(level.mining_turfs, src) /turf/simulated/floor/asteroid/Destroy() - if (mining_floors["[src.z]"]) - mining_floors["[src.z]"] -= src + var/obj/abstract/level_data/mining_level/level = SSmapping.levels_by_z[z] + if(istype(level)) + LAZYREMOVE(level.mining_turfs, src) return ..() /turf/simulated/floor/asteroid/explosion_act(severity) diff --git a/code/modules/mob/examine.dm b/code/modules/mob/examine.dm new file mode 100644 index 00000000000..8e2d2ad4ea7 --- /dev/null +++ b/code/modules/mob/examine.dm @@ -0,0 +1,161 @@ +/mob/proc/get_visible_pronouns(hideflags) + //suits/masks/helmets make it hard to tell their gender + if((hideflags & HIDEJUMPSUIT) && (hideflags & HIDEFACE)) + return GET_DECL(/decl/pronouns) + return get_pronouns() + +/mob/proc/get_equipment_visibility() + . = 0 + for(var/obj/item/thing in get_equipped_items(include_carried = FALSE)) + . |= thing.flags_inv + return . & EQUIPMENT_VISIBILITY_FLAGS + +/mob/proc/show_examined_short_description(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) + to_chat(user, "[html_icon(src)] That's \a [src][infix]. [suffix]") + to_chat(user, desc) + +/datum/inventory_slot/proc/get_examined_string() + return + +/mob/proc/show_examined_worn_held_items(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) + + . = list() + + // This block currently does nothing due to inventory slots being unimplemented. + // On full implementation it will replace the entire chunk of human inv code below. + /* + var/slot_datums = get_inventory_slots() + if(length(slot_datums)) + for(var/slot in slot_datums) // TODO: consider sorting inventory_slots instead of relying on this list order. + var/datum/inventory_slot/inv_slot = slot_datums[slot] + var/slot_desc = inv_slot?.get_examined_string(src, user, distance, hideflags, pronouns) + if(slot_desc) + . += slot_desc + */ + + /* + * Begin giant horrible lump of inventory text migrated down here from human/examine() + * Kill this entire chunk when inventory slots are properly implemented and the above + * block handles this properly. + */ + + //uniform + var/obj/item/uniform = get_equipped_item(slot_w_uniform_str) + if(uniform && !(hideflags & HIDEJUMPSUIT)) + . += "[pronouns.He] [pronouns.is] wearing [uniform.get_examine_line()]." + //head + var/obj/item/head = get_equipped_item(slot_head_str) + if(head) + . += "[pronouns.He] [pronouns.is] wearing [head.get_examine_line()] on [pronouns.his] head." + //suit/armour + var/obj/item/suit = get_equipped_item(slot_wear_suit_str) + if(suit) + . += "[pronouns.He] [pronouns.is] wearing [suit.get_examine_line()]." + //suit/armour storage + if(!(hideflags & HIDESUITSTORAGE)) + var/obj/item/stored = get_equipped_item(slot_s_store_str) + if(stored) + . += "[pronouns.He] [pronouns.is] carrying [stored.get_examine_line()] on [pronouns.his] [suit.name]." + //back + var/obj/item/back = get_equipped_item(slot_back_str) + if(back) + . += "[pronouns.He] [pronouns.has] [back.get_examine_line()] on [pronouns.his] back." + //held items + var/list/held_slots = get_held_item_slots() + for(var/hand_slot in held_slots) + var/datum/inventory_slot/inv_slot = LAZYACCESS(held_slots, hand_slot) + if(inv_slot?.holding) + var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, hand_slot) + if(E) + . += "[pronouns.He] [pronouns.is] holding [inv_slot.holding.get_examine_line()] in [pronouns.his] [E.name]." + //gloves + var/obj/item/gloves = get_equipped_item(slot_gloves_str) + if(gloves && !(hideflags & HIDEGLOVES)) + . += "[pronouns.He] [pronouns.has] [gloves.get_examine_line()] on [pronouns.his] hands." + else + var/datum/reagents/coating + for(var/obj/item/organ/external/E in get_hands_organs()) + if(E.coating) + coating = E.coating + break + if(coating) + . += "There's something on [pronouns.his] hands!" + //belt + var/obj/item/belt = get_equipped_item(slot_belt_str) + if(belt) + . += "[pronouns.He] [pronouns.has] [belt.get_examine_line()] about [pronouns.his] waist." + //shoes + var/obj/item/shoes = get_equipped_item(slot_shoes_str) + if(shoes && !(hideflags & HIDESHOES)) + . += "[pronouns.He] [pronouns.is] wearing [shoes.get_examine_line()] on [pronouns.his] feet." + else + var/datum/reagents/coating + for(var/foot_tag in list(BP_L_FOOT, BP_R_FOOT)) + var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, foot_tag) + if(E && E.coating) + coating = E.coating + break + if(coating) + . += "There's something on [pronouns.his] feet!" + //mask + var/obj/item/mask = get_equipped_item(slot_wear_mask_str) + if(mask && !(hideflags & HIDEMASK)) + . += "[pronouns.He] [pronouns.has] [mask.get_examine_line()] on [pronouns.his] face." + //eyes + if(!(hideflags & HIDEEYES)) + var/obj/item/glasses = get_equipped_item(slot_glasses_str) + if(glasses) + . += "[pronouns.He] [pronouns.has] [glasses.get_examine_line()] covering [pronouns.his] eyes." + if(!(hideflags & HIDEEARS)) + var/obj/item/ear = get_equipped_item(slot_l_ear_str) + if(ear) + . += "[pronouns.He] [pronouns.has] [ear.get_examine_line()] on [pronouns.his] left ear." + ear = get_equipped_item(slot_r_ear_str) + if(ear) + . += "[pronouns.He] [pronouns.has] [ear.get_examine_line()] on [pronouns.his] right ear." + //ID + var/obj/item/id = get_equipped_item(slot_wear_id_str) + if(id) + . += "[pronouns.He] [pronouns.is] wearing [id.get_examine_line()]." + //handcuffs? + var/obj/item/cuffs = get_equipped_item(slot_handcuffed_str) + if(cuffs) + . += "[pronouns.He] [pronouns.is] [html_icon(cuffs)] restrained with \the [cuffs]!" + /* + * End giant horrible block of human inventory shit. + */ + + if(buckled) + . += SPAN_WARNING("[pronouns.He] [pronouns.is] [html_icon(buckled)] buckled to [buckled]!") + if(length(.)) + to_chat(user, jointext(., "\n")) + +/mob/proc/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) + return + +/mob/examine(mob/user, distance, infix, suffix) + + SHOULD_CALL_PARENT(FALSE) + . = TRUE + + // Collect equipment visibility flags. + var/hideflags = get_equipment_visibility() + //no accuately spotting headsets from across the room. + if(distance > 3) + hideflags |= HIDEEARS + + // Show our equipment, held items, desc, etc. + var/decl/pronouns/pronouns = get_visible_pronouns(hideflags) + to_chat(user, "") + show_examined_short_description(user, distance, infix, suffix, hideflags, pronouns) + show_examined_worn_held_items(user, distance, infix, suffix, hideflags, pronouns) + show_other_examine_strings(user, distance, infix, suffix, hideflags, pronouns) + to_chat(user, "") + + // Update our target dolly. + if(user.zone_sel) + var/decl/species/target_species = get_species() + if(target_species && (BP_TAIL in target_species.has_limbs)) + user.zone_sel.icon_state = "zone_sel_tail" + else + user.zone_sel.icon_state = "zone_sel" diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 36969dd90eb..bb89d5d80c9 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -15,7 +15,7 @@ //set disable_warning to disable the 'you are unable to equip that' warning. //unset redraw_mob to prevent the mob from being redrawn at the end. //set force to replace items in the slot and ignore blocking overwear -/mob/proc/equip_to_slot_if_possible(obj/item/W, slot, del_on_fail = 0, disable_warning = 0, redraw_mob = 1, force = 0) +/mob/proc/equip_to_slot_if_possible(obj/item/W, slot, del_on_fail = 0, disable_warning = 0, redraw_mob = 1, force = FALSE, delete_old_item = TRUE) if(!istype(W) || !slot) return FALSE @@ -27,12 +27,12 @@ return FALSE if(canUnEquip(W)) - equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail. + equip_to_slot(W, slot, redraw_mob, delete_old_item = delete_old_item) //This proc should not ever fail. return TRUE //This is an UNSAFE proc. It merely handles the actual job of equipping. All the checks on whether you can or can't eqip need to be done before! Use mob_can_equip() for that task. //In most cases you will want to use equip_to_slot_if_possible() -/mob/proc/equip_to_slot(obj/item/W, slot) +/mob/proc/equip_to_slot(obj/item/W, slot, delete_old_item = TRUE) SHOULD_CALL_PARENT(TRUE) return istype(W) && !isnull(slot) @@ -46,26 +46,6 @@ return equip_to_storage_or_drop(W) return store -//The list of slots by priority. equip_to_appropriate_slot() uses this list. Doesn't matter if a mob type doesn't have a slot. -var/global/list/slot_equipment_priority = list( \ - slot_back_str,\ - slot_wear_id_str,\ - slot_w_uniform_str,\ - slot_wear_suit_str,\ - slot_wear_mask_str,\ - slot_head_str,\ - slot_shoes_str,\ - slot_gloves_str,\ - slot_l_ear_str,\ - slot_r_ear_str,\ - slot_glasses_str,\ - slot_belt_str,\ - slot_s_store_str,\ - slot_tie_str,\ - slot_l_store_str,\ - slot_r_store_str\ - ) - //Checks if a given slot can be accessed at this time, either to equip or unequip I /mob/proc/slot_is_accessible(var/slot, var/obj/item/I, mob/user=null) return 1 @@ -75,7 +55,7 @@ var/global/list/slot_equipment_priority = list( \ /mob/proc/equip_to_appropriate_slot(obj/item/W, var/skip_store = 0) if(!istype(W)) return FALSE - for(var/slot in slot_equipment_priority) + for(var/slot in global.slot_equipment_priority) if(skip_store) if(slot == slot_s_store_str || slot == slot_l_store_str || slot == slot_r_store_str) continue @@ -222,21 +202,35 @@ var/global/list/slot_equipment_priority = list( \ /mob/proc/isEquipped(obj/item/I) if(!I) - return 0 - return get_inventory_slot(I) != 0 + return FALSE + return !!get_equipped_slot_for_item(I) /mob/proc/canUnEquip(obj/item/I) if(!I) //If there's nothing to drop, the drop is automatically successful. return 1 - var/slot = get_inventory_slot(I) + var/slot = get_equipped_slot_for_item(I) if(!slot && !istype(I.loc, /obj/item/rig_module)) return 1 //already unequipped, so success return I.mob_can_unequip(src, slot) -/mob/proc/get_inventory_slot(obj/item/I) - for(var/s in global.all_inventory_slots) - if(get_equipped_item(s) == I) - return s +/mob/proc/get_equipped_slot_for_item(obj/item/I) + var/list/slots = get_inventory_slots() + if(!length(slots)) + return + for(var/slot_str in slots) + if(get_equipped_item(slot_str) == I) // slots[slot]._holding == I + return slot_str + +/mob/proc/get_held_slot_for_item(obj/item/I) + var/list/slots = get_held_item_slots() + if(!length(slots)) + return + for(var/slot in slots) + if(slots[slot] == I) + return slot + +/mob/proc/get_inventory_slot_datum(var/slot) + return //This differs from remove_from_mob() in that it checks if the item can be unequipped first. Use drop_from_inventory if you don't want to check. /mob/proc/unEquip(obj/item/I, var/atom/target, var/play_dropsound = TRUE) @@ -269,6 +263,8 @@ var/global/list/slot_equipment_priority = list( \ //Returns the item equipped to the specified slot, if any. /mob/proc/get_equipped_item(var/slot) + + // Check equipment slots. SHOULD_CALL_PARENT(TRUE) switch(slot) if(slot_back_str) @@ -276,6 +272,11 @@ var/global/list/slot_equipment_priority = list( \ if(slot_wear_mask_str) return _wear_mask + // Check held item slots. + var/held_slots = get_held_item_slots() + var/datum/inventory_slot/inv_slot = LAZYACCESS(held_slots, slot) + return inv_slot?.holding + /mob/proc/get_equipped_items(var/include_carried = 0) SHOULD_CALL_PARENT(TRUE) for(var/slot in list(slot_back_str, slot_wear_mask_str)) @@ -320,8 +321,21 @@ var/global/list/slot_equipment_priority = list( \ /mob/proc/is_holding_offhand(var/thing) return FALSE -/mob/proc/ui_toggle_internals() - return FALSE - /mob/proc/can_be_buckled(var/mob/user) . = user.Adjacent(src) && !istype(user, /mob/living/silicon/pai) + +/// If this proc returns false, reconsider_client_screen_presence will set the item's screen_loc to null. +/mob/proc/item_should_have_screen_presence(obj/item/item, slot) + return hud_used && slot && (hud_used.inventory_shown || !(slot in global.hidden_inventory_slots)) + +/mob/proc/get_held_item_slots() + return + +/mob/proc/get_inventory_slots() + return + +/mob/proc/get_hands_organs() + for(var/hand_slot in get_held_item_slots()) + var/org = GET_EXTERNAL_ORGAN(src, hand_slot) + if(org) + LAZYDISTINCTADD(., org) diff --git a/code/modules/mob/living/bot/medibot.dm b/code/modules/mob/living/bot/medibot.dm index 2a1f1ce9f78..4ad41fc161e 100644 --- a/code/modules/mob/living/bot/medibot.dm +++ b/code/modules/mob/living/bot/medibot.dm @@ -40,7 +40,7 @@ //The last time we were tipped/righted and said a voice line, to avoid spam var/last_tipping_action_voice = 0 -/mob/living/bot/medbot/examine(mob/user) +/mob/living/bot/medbot/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() if(tipped_status == MEDBOT_PANIC_NONE) return diff --git a/code/modules/mob/living/bot/remotebot.dm b/code/modules/mob/living/bot/remotebot.dm index 041ae92d531..609b3bbf65c 100644 --- a/code/modules/mob/living/bot/remotebot.dm +++ b/code/modules/mob/living/bot/remotebot.dm @@ -18,7 +18,7 @@ tally += (2 * holding.w_class) return tally -/mob/living/bot/remotebot/examine(mob/user) +/mob/living/bot/remotebot/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() if(holding) to_chat(user, "It is holding \the [html_icon(holding)] [holding].") diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 6ba9d46e03e..57561e620d3 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -319,11 +319,11 @@


Head(Mask): [(mask ? mask : "Nothing")]"} - for(var/bp in held_item_slots) - var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, bp) + for(var/hand_slot in held_item_slots) + var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, hand_slot) if(E) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] - dat += "
[capitalize(E.name)]: [inv_slot.holding?.name || "nothing"]" + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] + dat += "
[capitalize(E.name)]: [inv_slot.holding?.name || "nothing"]" var/obj/item/back = get_equipped_item(slot_back_str) dat += {"
Back: [(back || "Nothing")] [((istype(mask, /obj/item/clothing/mask) && istype(back, /obj/item/tank) && !( internal )) ? text(" Set Internal", src) : "")] @@ -391,21 +391,6 @@ /mob/living/carbon/adjust_hydration(var/amt) set_hydration(hydration + amt) -/mob/living/carbon/proc/set_internals(obj/item/tank/source, source_string) - var/old_internal = internal - - internal = source - - if(!old_internal && internal) - if(!source_string) - source_string = source.name - to_chat(src, "You are now running on internals from \the [source_string].") - playsound(src, 'sound/effects/internals.ogg', 50, 0) - if(old_internal && !internal) - to_chat(src, "You are no longer running on internals.") - if(internals) - internals.icon_state = "internal[!!internal]" - /mob/living/carbon/has_dexterity(var/dex_level) . = ..() && (species.get_manual_dexterity() >= dex_level) @@ -431,78 +416,6 @@ /mob/living/carbon/get_admin_job_string() return "Carbon-based" -/mob/living/carbon/proc/get_possible_internals_sources() - . = list("back" = list(get_equipped_item(slot_back_str), "on")) - -/mob/living/carbon/proc/breathing_hole_covered() - var/obj/item/mask = get_equipped_item(slot_wear_mask_str) - . = (mask && (mask?.item_flags & ITEM_FLAG_AIRTIGHT)) - -/mob/living/carbon/ui_toggle_internals() - - if(incapacitated()) - return - - if(internal) - set_internals(null) - return - - if(!breathing_hole_covered()) - to_chat(src, SPAN_WARNING("You are not wearing a suitable mask or helmet.")) - return - - set_internals_to_best_available_tank() - - if(!internal) - to_chat(src, SPAN_WARNING("You don't have a tank that is usable as internals.")) - - -/mob/living/carbon/proc/set_internals_to_best_available_tank(var/breathes_gas = /decl/material/gas/oxygen, var/list/poison_gas = list(/decl/material/gas/chlorine)) - - if(!ispath(breathes_gas)) - return - - var/list/possible_sources = get_possible_internals_sources() - for(var/slot in held_item_slots) - var/obj/item/tank/checking = get_equipped_item(slot) - if(istype(checking)) - possible_sources[slot] = list(checking, "in") - - var/selected_slot - var/selected_from - var/obj/item/tank/selected_obj - var/decl/material/breathing_gas = GET_DECL(breathes_gas) - for(var/slot_name in possible_sources) - var/list/checking_data = possible_sources[slot_name] - if(length(checking_data) < 2) - continue - var/obj/item/tank/checking = checking_data[1] - if(!istype(checking) || !checking.air_contents?.gas) - continue - - var/valid_tank = (checking.manipulated_by && checking.manipulated_by != real_name && findtext(checking.desc, breathing_gas.name)) - if(!valid_tank) - if(!checking.air_contents.gas[breathes_gas]) - continue - var/is_poison = FALSE - for(var/poison in poison_gas) - if(checking.air_contents.gas[poison]) - is_poison = TRUE - break - if(!is_poison) - valid_tank = TRUE - - if(valid_tank && (!selected_obj || selected_obj.air_contents.gas[breathes_gas] < checking.air_contents.gas[breathes_gas])) - selected_obj = checking - selected_slot = slot_name - selected_from = checking_data[2] - - if(selected_obj) - if(selected_slot && selected_from) - set_internals(selected_obj, "\the [selected_obj] [selected_from] your [selected_slot]") - else - set_internals(selected_obj, "\the [selected_obj]") - /mob/living/carbon/handle_flashed(var/obj/item/flash/flash, var/flash_strength) var/safety = eyecheck() @@ -524,4 +437,4 @@ var/obj/item/I = get_active_hand() if(I && I.simulated) - I.showoff(src) \ No newline at end of file + I.showoff(src) diff --git a/code/modules/mob/living/carbon/human/appearance.dm b/code/modules/mob/living/carbon/human/appearance.dm index 948d9b9989b..366dbbe550b 100644 --- a/code/modules/mob/living/carbon/human/appearance.dm +++ b/code/modules/mob/living/carbon/human/appearance.dm @@ -68,13 +68,13 @@ h_style = pick(valid_hairstyles) else //this shouldn't happen - h_style = /decl/sprite_accessory/hair/bald + h_style = species?.default_h_style || /decl/sprite_accessory/hair/bald if(length(valid_facial_hairstyles)) f_style = pick(valid_facial_hairstyles) else //this shouldn't happen - f_style = /decl/sprite_accessory/facial_hair/shaved + f_style = species?.default_f_style || /decl/sprite_accessory/facial_hair/shaved update_hair() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index cf445d784e4..11743a6bd54 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -1,237 +1,80 @@ -/mob/living/carbon/human/examine(mob/user, distance) - SHOULD_CALL_PARENT(FALSE) - . = TRUE - var/skipgloves = 0 - var/skipsuitstorage = 0 - var/skipjumpsuit = 0 - var/skipshoes = 0 - var/skipmask = 0 - var/skipears = 0 - var/skipeyes = 0 - var/skipface = 0 - - if(user.zone_sel) - if(BP_TAIL in species.has_limbs) - user.zone_sel.icon_state = "zone_sel_tail" - else - user.zone_sel.icon_state = "zone_sel" - - //exosuits and helmets obscure our view and stuff. - var/obj/item/suit = get_equipped_item(slot_wear_suit_str) - if(suit) - skipgloves = suit.flags_inv & HIDEGLOVES - skipsuitstorage = suit.flags_inv & HIDESUITSTORAGE - skipjumpsuit = suit.flags_inv & HIDEJUMPSUIT - skipshoes = suit.flags_inv & HIDESHOES - - - var/obj/item/head = get_equipped_item(slot_head_str) - if(head) - skipmask = head.flags_inv & HIDEMASK - skipeyes = head.flags_inv & HIDEEYES - skipears = head.flags_inv & HIDEEARS - skipface = head.flags_inv & HIDEFACE - - var/obj/item/mask = get_equipped_item(slot_wear_mask_str) - if(mask) - skipeyes |= mask.flags_inv & HIDEEYES - skipears |= mask.flags_inv & HIDEEARS - skipface |= mask.flags_inv & HIDEFACE - - //no accuately spotting headsets from across the room. - if(distance > 3) - skipears = 1 - - var/list/msg = list("*---------*\nThis is ") - - var/decl/pronouns/G - if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender - G = GET_DECL(/decl/pronouns) - else - G = get_pronouns() - if(icon) - msg += "[html_icon(icon)] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated - - if(!G) - // Just in case someone VVs the gender to something strange. It'll runtime anyway when it hits usages, better to CRASH() now with a helpful message. - CRASH("Gender datum was null; key was '[(skipjumpsuit && skipface) ? PLURAL : gender]'") - - msg += "[src.name]" - - var/is_synth = isSynthetic() - if(!(skipjumpsuit && skipface)) +/mob/living/carbon/human/show_examined_short_description(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) + var/msg = list("*---------*\nThis is [name]") + if(!(hideflags & HIDEJUMPSUIT) || !(hideflags & HIDEFACE)) var/species_name = "\improper " - if(is_synth && species.cyborg_noun) + if(isSynthetic() && species.cyborg_noun) species_name += "[species.cyborg_noun] [species.get_root_species_name(src)]" else species_name += "[species.name]" msg += ", \a [species_name]![(user.can_use_codex() && SScodex.get_codex_entry(get_codex_value(user))) ? SPAN_NOTICE(" \[?\]") : ""]" - var/extra_species_text = species.get_additional_examine_text(src) if(extra_species_text) - msg += "[extra_species_text]
" - - msg += "
" - - //uniform - var/obj/item/uniform = get_equipped_item(slot_w_uniform_str) - if(uniform && !skipjumpsuit) - msg += "[G.He] [G.is] wearing [uniform.get_examine_line()].\n" - - //head - if(head) - msg += "[G.He] [G.is] wearing [head.get_examine_line()] on [G.his] head.\n" - - //suit/armour - if(suit) - msg += "[G.He] [G.is] wearing [suit.get_examine_line()].\n" - //suit/armour storage - if(!skipsuitstorage) - var/obj/item/stored = get_equipped_item(slot_s_store_str) - if(stored) - msg += "[G.He] [G.is] carrying [stored.get_examine_line()] on [G.his] [suit.name].\n" - - //back - var/obj/item/back = get_equipped_item(slot_back_str) - if(back) - msg += "[G.He] [G.has] [back.get_examine_line()] on [G.his] back.\n" - - //held items - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = LAZYACCESS(held_item_slots, bp) - if(inv_slot?.holding) - var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, bp) - if(E) - msg += "[G.He] [G.is] holding [inv_slot.holding.get_examine_line()] in [G.his] [E.name].\n" - - //gloves - var/obj/item/gloves = get_equipped_item(slot_gloves_str) - if(gloves && !skipgloves) - msg += "[G.He] [G.has] [gloves.get_examine_line()] on [G.his] hands.\n" - else - var/list/jazzhands = get_hands_organs() - var/datum/reagents/coating - for(var/obj/item/organ/external/E in jazzhands) - if(E.coating) - coating = E.coating - break - if(coating) - msg += "There's something on [G.his] hands!\n" - - //belt - var/obj/item/belt = get_equipped_item(slot_belt_str) - if(belt) - msg += "[G.He] [G.has] [belt.get_examine_line()] about [G.his] waist.\n" - - //shoes - var/obj/item/shoes = get_equipped_item(slot_shoes_str) - if(shoes && !skipshoes) - msg += "[G.He] [G.is] wearing [shoes.get_examine_line()] on [G.his] feet.\n" - else - var/datum/reagents/coating - for(var/bp in list(BP_L_FOOT, BP_R_FOOT)) - var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, bp) - if(E && E.coating) - coating = E.coating - break - if(coating) - msg += "There's something on [G.his] feet!\n" - - //mask - if(mask && !skipmask) - msg += "[G.He] [G.has] [mask.get_examine_line()] on [G.his] face.\n" - - //eyes - if(!skipeyes) - var/obj/item/glasses = get_equipped_item(slot_glasses_str) - if(glasses) - msg += "[G.He] [G.has] [glasses.get_examine_line()] covering [G.his] eyes.\n" - - if(!skipears) - var/obj/item/ear = get_equipped_item(slot_l_ear_str) - if(ear) - msg += "[G.He] [G.has] [ear.get_examine_line()] on [G.his] left ear.\n" - ear = get_equipped_item(slot_r_ear_str) - if(ear) - msg += "[G.He] [G.has] [ear.get_examine_line()] on [G.his] right ear.\n" - - //ID - var/obj/item/id = get_equipped_item(slot_wear_id_str) - if(id) - msg += "[G.He] [G.is] wearing [id.get_examine_line()].\n" - - //handcuffs? - var/obj/item/cuffs = get_equipped_item(slot_handcuffed_str) - if(cuffs) - msg += "[G.He] [G.is] [html_icon(cuffs)] restrained with \the [cuffs]!\n" - - //buckled - if(buckled) - msg += "[G.He] [G.is] [html_icon(buckled)] buckled to [buckled]!\n" + msg += "
[extra_species_text]" + to_chat(user, jointext(msg, null)) + +/mob/living/carbon/human/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) + var/list/msg = list() //Jitters var/jitteriness = GET_STATUS(src, STAT_JITTER) if(jitteriness >= 300) - msg += "[G.He] [G.is] convulsing violently!\n" + msg += "[pronouns.He] [pronouns.is] convulsing violently!\n" else if(jitteriness >= 200) - msg += "[G.He] [G.is] extremely jittery.\n" + msg += "[pronouns.He] [pronouns.is] extremely jittery.\n" else if(jitteriness >= 100) - msg += "[G.He] [G.is] twitching ever so slightly.\n" + msg += "[pronouns.He] [pronouns.is] twitching ever so slightly.\n" //Disfigured face - if(!skipface) //Disfigurement only matters for the head currently. + if(!(hideflags & HIDEFACE)) //Disfigurement only matters for the head currently. var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, BP_HEAD) if(E && (E.status & ORGAN_DISFIGURED)) //Check to see if we even have a head and if the head's disfigured. if(E.species) //Check to make sure we have a species msg += E.species.disfigure_msg(src) else //Just in case they lack a species for whatever reason. - msg += "[G.His] face is horribly mangled!\n" + msg += "[pronouns.His] face is horribly mangled!\n" //splints for(var/organ in list(BP_L_LEG, BP_R_LEG, BP_L_ARM, BP_R_ARM)) var/obj/item/organ/external/o = GET_EXTERNAL_ORGAN(src, organ) if(o && o.splinted && o.splinted.loc == o) - msg += "[G.He] [G.has] \a [o.splinted] on [G.his] [o.name]!\n" + msg += "[pronouns.He] [pronouns.has] \a [o.splinted] on [pronouns.his] [o.name]!\n" if (src.stat) - msg += "[G.He] [G.is]n't responding to anything around [G.him] and seems to be unconscious.\n" + msg += "[pronouns.He] [pronouns.is]n't responding to anything around [pronouns.him] and seems to be unconscious.\n" if((stat == DEAD || is_asystole() || src.losebreath) && distance <= 3) - msg += "[G.He] [G.does] not appear to be breathing.\n" + msg += "[pronouns.He] [pronouns.does] not appear to be breathing.\n" if(ishuman(user) && !user.incapacitated() && Adjacent(user)) spawn(0) user.visible_message("\The [user] checks \the [src]'s pulse.", "You check \the [src]'s pulse.") if(do_after(user, 15, src)) if(pulse() == PULSE_NONE) - to_chat(user, "[G.He] [G.has] no pulse.") + to_chat(user, "[pronouns.He] [pronouns.has] no pulse.") else - to_chat(user, "[G.He] [G.has] a pulse!") + to_chat(user, "[pronouns.He] [pronouns.has] a pulse!") if(fire_stacks > 0) - msg += "[G.He] is covered in flammable liquid!\n" + msg += "[pronouns.He] is covered in flammable liquid!\n" else if(fire_stacks < 0) - msg += "[G.He] [G.is] soaking wet.\n" + msg += "[pronouns.He] [pronouns.is] soaking wet.\n" if(on_fire) - msg += "[G.He] [G.is] on fire!.\n" + msg += "[pronouns.He] [pronouns.is] on fire!.\n" var/ssd_msg = species.get_ssd(src) if(ssd_msg && (!should_have_organ(BP_BRAIN) || has_brain()) && stat != DEAD) if(!key) - msg += "[G.He] [G.is] [ssd_msg]. It doesn't look like [G.he] [G.is] waking up anytime soon.\n" + msg += "[pronouns.He] [pronouns.is] [ssd_msg]. It doesn't look like [pronouns.he] [pronouns.is] waking up anytime soon.\n" else if(!client) - msg += "[G.He] [G.is] [ssd_msg].\n" - - if (admin_paralyzed) - msg += SPAN_OCCULT("OOC: [G.He] [G.has] been paralyzed by staff. Please avoid interacting with [G.him] unless cleared to do so by staff.") + "\n" + msg += "[pronouns.He] [pronouns.is] [ssd_msg].\n" var/obj/item/organ/external/head/H = get_organ(BP_HEAD, /obj/item/organ/external/head) if(istype(H) && H.forehead_graffiti && H.graffiti_style) - msg += "[G.He] [G.has] \"[H.forehead_graffiti]\" written on [G.his] [H.name] in [H.graffiti_style]!\n" + msg += "[pronouns.He] [pronouns.has] \"[H.forehead_graffiti]\" written on [pronouns.his] [H.name] in [H.graffiti_style]!\n" if(became_younger) - msg += "[G.He] looks a lot younger than you remember.\n" + msg += "[pronouns.He] looks a lot younger than you remember.\n" if(became_older) - msg += "[G.He] looks a lot older than you remember.\n" + msg += "[pronouns.He] looks a lot older than you remember.\n" var/list/wound_flavor_text = list() var/applying_pressure = "" @@ -245,13 +88,13 @@ var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, organ_tag) if(!E) - wound_flavor_text[organ_descriptor] = "[G.He] [G.is] missing [G.his] [organ_descriptor].\n" + wound_flavor_text[organ_descriptor] = "[pronouns.He] [pronouns.is] missing [pronouns.his] [organ_descriptor].\n" continue wound_flavor_text[E.name] = "" if(E.applied_pressure == src) - applying_pressure = "[G.He] [G.is] applying pressure to [G.his] [E.name].
" + applying_pressure = "[pronouns.He] [pronouns.is] applying pressure to [pronouns.his] [E.name].
" var/obj/item/clothing/hidden for(var/slot in global.standard_clothing_slots) @@ -266,23 +109,23 @@ hidden_bleeders[hidden] = list() hidden_bleeders[hidden] += E.name else - if(!is_synth && BP_IS_PROSTHETIC(E) && (E.parent && !BP_IS_PROSTHETIC(E.parent))) - wound_flavor_text[E.name] = "[G.He] [G.has] a [E.name].\n" + if(!isSynthetic() && BP_IS_PROSTHETIC(E) && (E.parent && !BP_IS_PROSTHETIC(E.parent))) + wound_flavor_text[E.name] = "[pronouns.He] [pronouns.has] a [E.name].\n" var/wounddesc = E.get_wounds_desc() if(wounddesc != "nothing") - wound_flavor_text[E.name] += "[G.He] [G.has] [wounddesc] on [G.his] [E.name].
" + wound_flavor_text[E.name] += "[pronouns.He] [pronouns.has] [wounddesc] on [pronouns.his] [E.name].
" if(!hidden || distance <=1) if(E.is_dislocated()) - wound_flavor_text[E.name] += "[G.His] [E.joint] is dislocated!
" + wound_flavor_text[E.name] += "[pronouns.His] [E.joint] is dislocated!
" if(((E.status & ORGAN_BROKEN) && E.brute_dam > E.min_broken_damage) || (E.status & ORGAN_MUTATED)) - wound_flavor_text[E.name] += "[G.His] [E.name] is dented and swollen!
" + wound_flavor_text[E.name] += "[pronouns.His] [E.name] is dented and swollen!
" if(E.status & ORGAN_DEAD) if(BP_IS_PROSTHETIC(E) || BP_IS_CRYSTAL(E)) - wound_flavor_text[E.name] += "[G.His] [E.name] is irrecoverably damaged!
" + wound_flavor_text[E.name] += "[pronouns.His] [E.name] is irrecoverably damaged!
" else - wound_flavor_text[E.name] += "[G.His] [E.name] is grey and necrotic!
" + wound_flavor_text[E.name] += "[pronouns.His] [E.name] is grey and necrotic!
" else if(E.damage >= E.max_damage && E.germ_level >= INFECTION_LEVEL_TWO) - wound_flavor_text[E.name] += "[G.His] [E.name] is likely beyond saving, and has begun to decay!
" + wound_flavor_text[E.name] += "[pronouns.His] [E.name] is likely beyond saving, and has begun to decay!
" for(var/datum/wound/wound in E.wounds) var/list/embedlist = wound.embedded_objects @@ -295,9 +138,9 @@ else if(!parsedembed.Find("multiple [embedded.name]")) parsedembed.Remove(embedded.name) parsedembed.Add("multiple "+embedded.name) - wound_flavor_text["[E.name]"] += "The [wound.desc] on [G.his] [E.name] has \a [english_list(parsedembed, and_text = " and \a ", comma_text = ", \a ")] sticking out of it!
" + wound_flavor_text["[E.name]"] += "The [wound.desc] on [pronouns.his] [E.name] has \a [english_list(parsedembed, and_text = " and \a ", comma_text = ", \a ")] sticking out of it!
" for(var/hidden in hidden_bleeders) - wound_flavor_text[hidden] = "[G.He] [G.has] blood soaking through [hidden] around [G.his] [english_list(hidden_bleeders[hidden])]!
" + wound_flavor_text[hidden] = "[pronouns.He] [pronouns.has] blood soaking through [hidden] around [pronouns.his] [english_list(hidden_bleeders[hidden])]!
" msg += "" for(var/limb in wound_flavor_text) @@ -307,9 +150,9 @@ for(var/obj/implant in get_visible_implants(0)) if(implant in shown_objects) continue - msg += "[src] [G.has] \a [implant.name] sticking out of [G.his] flesh!\n" + msg += "[src] [pronouns.has] \a [implant.name] sticking out of [pronouns.his] flesh!\n" if(digitalcamo) - msg += "[G.He] [G.is] repulsively uncanny!\n" + msg += "[pronouns.He] [pronouns.is] repulsively uncanny!\n" if(hasHUD(user, HUD_SECURITY)) var/perpname = "wot" @@ -359,7 +202,7 @@ if (pose) if( findtext(pose,".",length(pose)) == 0 && findtext(pose,"!",length(pose)) == 0 && findtext(pose,"?",length(pose)) == 0 ) pose = addtext(pose,".") //Makes sure all emotes end with a period. - msg += "[G.He] [pose]\n" + msg += "[pronouns.He] [pose]\n" var/show_descs = show_descriptors_to(user) if(show_descs) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 2867e2945a0..b14d944babd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -154,11 +154,11 @@ dat += "
Remove accessory" dat += "

" - for(var/bp in held_item_slots) - var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, bp) + for(var/hand_slot in held_item_slots) + var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, hand_slot) if(E) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] - dat += "
[capitalize(E.name)]: [inv_slot.holding?.name || "nothing"]" + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] + dat += "
[capitalize(E.name)]: [inv_slot.holding?.name || "nothing"]" // Do they get an option to set internals? if(istype(get_equipped_item(slot_wear_mask_str), /obj/item/clothing/mask) || istype(get_equipped_item(slot_head_str), /obj/item/clothing/head/helmet/space)) @@ -1287,13 +1287,6 @@ bodytemperature += value return bodytemperature -/mob/living/carbon/human/proc/get_hands_organs() - . = list() - for(var/bp in held_item_slots) - var/org = GET_EXTERNAL_ORGAN(src, bp) - if(org) - . |= org - /mob/living/carbon/human/get_admin_job_string() return job || uppertext(species.name) @@ -1315,11 +1308,11 @@ /mob/living/carbon/human/set_internals_to_best_available_tank(var/breathes_gas = /decl/material/gas/oxygen, var/list/poison_gas = list(/decl/material/gas/chlorine)) . = ..(species.breath_type, species.poison_types) -/mob/living/carbon/human/get_possible_internals_sources() +/mob/living/carbon/human/get_equipped_internals_sources() . = ..() | list( "suit" = list(get_equipped_item(slot_s_store_str), "on"), "belt" = list(get_equipped_item(slot_belt_str), "on"), - "left_pocket" = list(get_equipped_item(slot_l_store_str), "in"), + "left pocket" = list(get_equipped_item(slot_l_store_str), "in"), "right pocket" = list(get_equipped_item(slot_r_store_str), "in"), "rig" = list(wearing_rig?.air_supply, "in") ) @@ -1366,6 +1359,18 @@ set_species(species_name) + if(!skin_colour) + skin_colour = species.base_color + if(!hair_colour) + hair_colour = species.base_hair_color + if(!facial_hair_colour) + facial_hair_colour = species.base_hair_color + if(!eye_colour) + eye_colour = species.base_eye_color + species.set_default_hair(src, override_existing = FALSE, defer_update_hair = TRUE) + if(!b_type && length(species?.blood_types)) + b_type = pickweight(species.blood_types) + if(new_dna) set_real_name(new_dna.real_name) else diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 4625e3d8f9c..1e11a7260e6 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -179,8 +179,8 @@ pick_organs = shuffle(pick_organs.Copy()) // Prioritize damaging our filtration organs first. - for(var/bp in list(BP_KIDNEYS, BP_LIVER)) - var/obj/item/organ/internal/lump = GET_INTERNAL_ORGAN(src, bp) + for(var/organ in list(BP_KIDNEYS, BP_LIVER)) + var/obj/item/organ/internal/lump = GET_INTERNAL_ORGAN(src, organ) if(lump) pick_organs -= lump pick_organs.Insert(1, lump) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index f431cd2a054..115107f0732 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -99,13 +99,10 @@ meteor_act return siemens_coefficient /mob/living/carbon/human/proc/check_head_coverage() - for(var/slot in global.standard_headgear_slots) - var/bp = get_equipped_item(slot) - if(bp && istype(bp ,/obj/item/clothing)) - var/obj/item/clothing/C = bp - if(C.body_parts_covered & SLOT_HEAD) - return TRUE + var/obj/item/clothing/clothes = get_equipped_item(slot) + if(istype(clothes) && (clothes.body_parts_covered & SLOT_HEAD)) + return TRUE return FALSE //Used to check if they can be fed food/drinks/pills diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index bf7190f279a..5322c077abc 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -1,12 +1,12 @@ /mob/living/carbon/human - var/h_style = /decl/sprite_accessory/hair/bald - var/f_style = /decl/sprite_accessory/facial_hair/shaved + var/h_style + var/f_style - var/hair_colour = COLOR_BLACK - var/facial_hair_colour = COLOR_BLACK - var/skin_colour = COLOR_BLACK - var/eye_colour = COLOR_BLACK + var/hair_colour + var/facial_hair_colour + var/skin_colour + var/eye_colour var/regenerate_body_icon = FALSE // If true, the next icon update will also regenerate the body. @@ -16,7 +16,7 @@ var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup - var/b_type = "A+" //Player's bloodtype + var/b_type //Player's bloodtype var/list/worn_underwear = list() diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 4b148e549da..67c117988c4 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -109,8 +109,8 @@ return 0 //Check hands and mod slip - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in held_item_slots) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] if(!inv_slot.holding) prob_slip -= 2 else if(inv_slot.holding.w_class <= ITEM_SIZE_SMALL) diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index d96564682e3..f67e256a641 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -169,11 +169,11 @@ SET_STATUS_MAX(src, STAT_WEAK, 3) //can't emote while weakened, apparently. /mob/living/carbon/human/proc/handle_grasp() - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in held_item_slots) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] var/holding = inv_slot?.holding if(holding) - var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, bp) + var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(src, hand_slot) if((!E || !E.is_usable() || E.is_parent_dislocated()) && unEquip(holding)) grasp_damage_disarm(inv_slot) @@ -199,8 +199,8 @@ var/list/drop_held_item_slots if(istype(affected)) - for(var/bp in (list(affected.organ_tag) | affected.children)) - var/datum/inventory_slot/inv_slot = LAZYACCESS(held_item_slots, bp) + for(var/grasp_tag in (list(affected.organ_tag) | affected.children)) + var/datum/inventory_slot/inv_slot = LAZYACCESS(held_item_slots, grasp_tag) if(inv_slot?.holding) LAZYDISTINCTADD(drop_held_item_slots, inv_slot) else if(istype(affected, /datum/inventory_slot)) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 1096f2b6eb8..ddf99bc48df 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -162,7 +162,7 @@ This saves us from having to call add_fingerprint() any time something is put in // Post hands rewrite I plan to conver the rest of the inventory system to a string-based inventory slot system // so at that point the numerical flags will be removed and this proc (and the rest of the chain) can be rewritten. -/mob/living/carbon/human/equip_to_slot(obj/item/W, slot, redraw_mob = 1) +/mob/living/carbon/human/equip_to_slot(obj/item/W, slot, redraw_mob = TRUE, delete_old_item = TRUE) . = ..() if(!. || !has_organ_for_slot(slot)) @@ -185,7 +185,9 @@ This saves us from having to call add_fingerprint() any time something is put in if(W.action_button_name) update_action_buttons() if(old_item) - qdel(old_item) + u_equip(old_item) + if(delete_old_item) + qdel(old_item) return TRUE // End boilerplate. @@ -200,9 +202,8 @@ This saves us from having to call add_fingerprint() any time something is put in update_inv_back(redraw_mob) if(slot_wear_mask_str) _wear_mask = W - if(_wear_mask.flags_inv & BLOCK_ALL_HAIR) - update_hair(redraw_mob) //rebuild hair - update_inv_ears(0) + update_hair(redraw_mob) //rebuild hair + update_inv_ears(0) W.equipped(src, slot) update_inv_wear_mask(redraw_mob) if(slot_handcuffed_str) @@ -235,9 +236,9 @@ This saves us from having to call add_fingerprint() any time something is put in update_inv_gloves(redraw_mob) if(slot_head_str) _head = W - if(_head.flags_inv & (BLOCK_ALL_HAIR|HIDEMASK)) - update_hair(redraw_mob) //rebuild hair - update_inv_ears(0) + update_hair(redraw_mob) //rebuild hair + update_inv_ears(0) + if(_head.flags_inv & HIDEMASK) update_inv_wear_mask(0) if(istype(W,/obj/item/clothing/head/kitty)) W.update_icon(src) @@ -296,9 +297,12 @@ This saves us from having to call add_fingerprint() any time something is put in if(W.action_button_name) update_action_buttons() - // if we replaced an item, delete the old item. do this at the end to make the replacement seamless + // seamless replacement deletes the old item by default, but can be disabled for special handling + // like job items going into storage when replaced by loadout items if(old_item) - qdel(old_item) + u_equip(old_item) + if(delete_old_item) + qdel(old_item) return 1 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 96333185cba..3734cb28eeb 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -828,7 +828,7 @@ playsound_local(src,pick(global.scarySounds),50, 1, -1) var/area/A = get_area(src) - if(client && world.time >= client.played + 600) + if(client && world.time >= client.played + 60 SECONDS) A.play_ambience(src) if(stat == UNCONSCIOUS && world.time - l_move_time < 5 && prob(10)) to_chat(src,"You feel like you're [pick("moving","flying","floating","falling","hovering")].") diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index d5339dae2ff..4f9051c39f3 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -114,7 +114,7 @@ return ..(message_data) /mob/living/carbon/human/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name) - if(message_mode == "whisper") //It's going to get sanitized again immediately, so decode. + if(message_mode == MESSAGE_MODE_WHISPER) //It's going to get sanitized again immediately, so decode. whisper_say(html_decode(message), speaking, alt_name) return TRUE return ..() diff --git a/code/modules/mob/living/carbon/human/stripping.dm b/code/modules/mob/living/carbon/human/stripping.dm index 25978a94cf2..cc1afd5f8f6 100644 --- a/code/modules/mob/living/carbon/human/stripping.dm +++ b/code/modules/mob/living/carbon/human/stripping.dm @@ -147,33 +147,3 @@ admin_attack_log(user, src, "Toggled their suit sensors.", "Toggled their suit sensors.", "toggled the suit sensors of") suit.set_sensors(user) - -// Set internals on or off. -/mob/living/carbon/human/proc/toggle_internals(var/mob/living/user) - if(internal) - visible_message(SPAN_NOTICE("\The [user] disables \the [src]'s internals!")) - internal.add_fingerprint(user) - set_internals(null) - return - - // Check for airtight mask/helmet. - var/found_mask = FALSE - for(var/slot in global.airtight_slots) - var/obj/item/gear = get_equipped_item(slot) - if(gear && (gear.item_flags & ITEM_FLAG_AIRTIGHT)) - found_mask = TRUE - break - if(!found_mask) - to_chat(user, SPAN_WARNING("\The [src] does not have a suitable mask or helmet.")) - return - - // Find an internal source. - for(var/slot in list(slot_back_str, slot_s_store_str, slot_belt_str)) - var/obj/item/tank/tank = get_equipped_item(slot) - if(istype(tank)) - set_internals(tank) - visible_message(SPAN_NOTICE("\The [src] is now running on internals!")) - internal.add_fingerprint(user) - return - - to_chat(user, SPAN_WARNING("You could not find a suitable tank!")) diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index f2bde796809..2fe877326a9 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -42,8 +42,8 @@ var/global/list/sparring_attack_cache = list() /decl/natural_attack/proc/padded_by_user_gear(var/mob/living/carbon/human/user) if(istype(user) && length(usable_with_limbs)) - for(var/bp in usable_with_limbs) - var/obj/item/gear = user.get_covering_equipped_item_by_zone(bp) + for(var/limb_slot in usable_with_limbs) + var/obj/item/gear = user.get_covering_equipped_item_by_zone(limb_slot) if(istype(gear) && (gear.item_flags & ITEM_FLAG_PADDED)) return TRUE return FALSE @@ -89,11 +89,10 @@ var/global/list/sparring_attack_cache = list() check_zone = BP_L_HAND else if(check_zone == BP_R_ARM) check_zone = BP_R_HAND - var/datum/inventory_slot/inv_slot = LAZYACCESS(target.held_item_slots, check_zone) - if(inv_slot?.holding) - // Disarm left hand - target.visible_message(SPAN_DANGER("\The [inv_slot.holding] was knocked right out of [target]'s grasp!")) - target.drop_from_inventory(inv_slot.holding) + var/equipped = target.get_equipped_item(check_zone) + if(equipped) + target.visible_message(SPAN_DANGER("\The [equipped] was knocked right out of [target]'s grasp!")) + target.drop_from_inventory(equipped) if(BP_CHEST) if(!target.lying) var/turf/T = get_step(get_turf(target), get_dir(get_turf(user), get_turf(target))) @@ -288,8 +287,8 @@ var/global/list/sparring_attack_cache = list() if (!user.lying && (target.lying || (zone in list(BP_L_FOOT, BP_R_FOOT)))) if((user in target.grabbed_by) && target.lying) return FALSE - for(var/bp in list(BP_L_FOOT, BP_R_FOOT)) - if(GET_EXTERNAL_ORGAN(user, bp)) + for(var/foot_tag in list(BP_L_FOOT, BP_R_FOOT)) + if(GET_EXTERNAL_ORGAN(user, foot_tag)) return TRUE return FALSE diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index db3ad1fbc50..ee0e301c66d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -1,3 +1,12 @@ +var/global/list/_limb_mask_cache = list() +/proc/get_limb_mask_for(var/decl/bodytype/bodytype, var/bodypart) + LAZYINITLIST(_limb_mask_cache[bodytype]) + if(!_limb_mask_cache[bodytype][bodypart]) + var/icon/limb_mask = icon(bodytype.icon_base, bodypart) + limb_mask.MapColors(0,0,0, 0,0,0, 0,0,0, 1,1,1) + _limb_mask_cache[bodytype][bodypart] = limb_mask + return _limb_mask_cache[bodytype][bodypart] + /* Global associative list for caching humanoid icons. Index format m or f, followed by a string of 0 and 1 to represent bodyparts followed by husk 1 or 0. @@ -301,10 +310,10 @@ var/global/list/damage_icon_parts = list() continue var/icon/DI var/use_colour = (BP_IS_PROSTHETIC(O) ? SYNTH_BLOOD_COLOR : O.species.get_blood_color(src)) - var/cache_index = "[O.damage_state]/[O.icon_name]/[use_colour]/[species.name]" + var/cache_index = "[O.damage_state]/[O.bodytype.type]/[O.icon_state]/[use_colour]/[species.name]" if(damage_icon_parts[cache_index] == null) DI = new /icon(bodytype.get_damage_overlays(src), O.damage_state) // the damage icon for whole human - DI.Blend(new /icon(O.icon, O.icon_name), ICON_MULTIPLY) // mask with this organ's pixels + DI.Blend(get_limb_mask_for(O.bodytype, O.icon_state), ICON_MULTIPLY) // mask with this organ's pixels DI.Blend(use_colour, ICON_MULTIPLY) damage_icon_parts[cache_index] = DI else @@ -326,7 +335,7 @@ var/global/list/damage_icon_parts = list() for(var/obj/item/organ/external/O in get_external_organs()) var/bandage_level = O.bandage_level() if(bandage_level) - standing_image.overlays += image(bandage_icon, "[O.icon_name][bandage_level]") + standing_image.overlays += image(bandage_icon, "[O.icon_state][bandage_level]") overlays_standing[HO_DAMAGE_LAYER] = standing_image if(update_icons) @@ -358,8 +367,8 @@ var/global/list/damage_icon_parts = list() var/obj/item/organ/internal/eyes/eyes = get_organ((species.vision_organ || BP_EYES), /obj/item/organ/internal/eyes) icon_key += istype(eyes) ? eyes.eye_colour : COLOR_BLACK - for(var/organ_tag in global.all_limb_tags) - var/obj/item/organ/external/part = GET_EXTERNAL_ORGAN(src, organ_tag) + for(var/limb_tag in global.all_limb_tags) + var/obj/item/organ/external/part = GET_EXTERNAL_ORGAN(src, limb_tag) if(isnull(part) || part.skip_body_icon_draw) icon_key += "0" continue @@ -464,14 +473,6 @@ var/global/list/damage_icon_parts = list() queue_icon_update() return - //masks and helmets can obscure our hair. - for(var/slot in global.airtight_slots) - var/obj/item/gear = get_equipped_item(slot) - if(gear && (gear.flags_inv & BLOCK_ALL_HAIR)) - if(update_icons) - queue_icon_update() - return - overlays_standing[HO_HAIR_LAYER] = head_organ.get_hair_icon() if(update_icons) queue_icon_update() @@ -596,8 +597,8 @@ var/global/list/damage_icon_parts = list() overlays_standing[HO_SHOES_LAYER] = shoes.get_mob_overlay(src,slot_shoes_str) else var/list/blood_color - for(var/bp in list(BP_L_FOOT, BP_R_FOOT)) - var/obj/item/organ/external/stomper = GET_EXTERNAL_ORGAN(src, bp) + for(var/foot_tag in list(BP_L_FOOT, BP_R_FOOT)) + var/obj/item/organ/external/stomper = GET_EXTERNAL_ORGAN(src, foot_tag) if(stomper && stomper.coating) blood_color = stomper.coating.get_color() @@ -697,15 +698,15 @@ var/global/list/damage_icon_parts = list() /mob/living/carbon/human/update_inv_hands(var/update_icons=1) overlays_standing[HO_INHAND_LAYER] = null - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in held_item_slots) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] var/obj/item/held = inv_slot?.holding if(istype(held)) // This should be moved out of icon code if(get_equipped_item(slot_handcuffed_str)) drop_from_inventory(held) continue - var/image/standing = held.get_mob_overlay(src, inv_slot.overlay_slot, bp) + var/image/standing = held.get_mob_overlay(src, inv_slot.overlay_slot, hand_slot) if(standing) standing.appearance_flags |= RESET_ALPHA LAZYADD(overlays_standing[HO_INHAND_LAYER], standing) @@ -846,7 +847,6 @@ var/global/list/damage_icon_parts = list() if(update_icons) queue_icon_update() - /mob/living/carbon/human/update_fire(var/update_icons=1) overlays_standing[HO_FIRE_LAYER] = null if(on_fire) @@ -867,21 +867,20 @@ var/global/list/damage_icon_parts = list() var/surgery_icon = E.species.get_surgery_overlay_icon(src) if(!surgery_icon) continue - var/list/surgery_states = icon_states(surgery_icon) - var/base_state = "[E.icon_name][how_open]" + var/base_state = "[E.icon_state][how_open]" var/overlay_state = "[base_state]-flesh" var/list/overlays_to_add - if(overlay_state in surgery_states) + if(check_state_in_icon(overlay_state, surgery_icon)) var/image/flesh = image(icon = surgery_icon, icon_state = overlay_state, layer = -HO_SURGERY_LAYER) flesh.color = E.species.get_flesh_colour(src) LAZYADD(overlays_to_add, flesh) overlay_state = "[base_state]-blood" - if(overlay_state in surgery_states) + if(check_state_in_icon(overlay_state, surgery_icon)) var/image/blood = image(icon = surgery_icon, icon_state = overlay_state, layer = -HO_SURGERY_LAYER) blood.color = E.species.get_blood_color(src) LAZYADD(overlays_to_add, blood) overlay_state = "[base_state]-bones" - if(overlay_state in surgery_states) + if(check_state_in_icon(overlay_state, surgery_icon)) LAZYADD(overlays_to_add, image(icon = surgery_icon, icon_state = overlay_state, layer = -HO_SURGERY_LAYER)) total.overlays |= overlays_to_add @@ -903,6 +902,7 @@ var/global/list/damage_icon_parts = list() update_action_buttons() if(internals && internal) internals.icon_state = "internal1" + queue_hand_rebuild() //Human Overlays Indexes///////// #undef HO_MUTATIONS_LAYER diff --git a/code/modules/mob/living/carbon/internals.dm b/code/modules/mob/living/carbon/internals.dm new file mode 100644 index 00000000000..c21f82f68b0 --- /dev/null +++ b/code/modules/mob/living/carbon/internals.dm @@ -0,0 +1,8 @@ +/mob/living/carbon/get_internals() + return internal + +/mob/living/carbon/set_internals(obj/item/tank/source, source_string) + ..() + internal = source + if(internals) + internals.icon_state = "internal[!!internal]" diff --git a/code/modules/mob/living/deity/phenomena/starlight.dm b/code/modules/mob/living/deity/phenomena/starlight.dm index 38af1cbb62e..622be3c0dbf 100644 --- a/code/modules/mob/living/deity/phenomena/starlight.dm +++ b/code/modules/mob/living/deity/phenomena/starlight.dm @@ -42,7 +42,7 @@ return TRUE /datum/phenomena/herald/proc/equip_slot(var/mob/living/L, var/slot_id, var/new_item) - var/equipped = L.get_inventory_slot(slot_id) + var/equipped = L.get_equipped_slot_for_item(slot_id) if(equipped) L.unEquip(equipped, get_turf(L)) L.equip_to_slot_if_possible(new_item, slot_id) diff --git a/code/modules/mob/living/internals.dm b/code/modules/mob/living/internals.dm new file mode 100644 index 00000000000..a6ca218d1eb --- /dev/null +++ b/code/modules/mob/living/internals.dm @@ -0,0 +1,121 @@ +/mob/living/proc/set_internals(obj/item/tank/source, source_string) + var/old_internal = get_internals() + if(!old_internal && source) + if(!source_string) + source_string = source.name + to_chat(src, SPAN_NOTICE("You are now running on internals from \the [source_string].")) + playsound(src, 'sound/effects/internals.ogg', 50, 0) + if(old_internal && !source) + to_chat(src, SPAN_NOTICE("You are no longer running on internals.")) + +/mob/living/proc/get_internals() + return + +// Set internals on or off. Implemented properly on /carbon +/mob/living/proc/toggle_internals(var/mob/living/user) + var/atom/movable/internal = get_internals() + if(internal) + visible_message(SPAN_NOTICE("\The [user] disables \the [src]'s internals!")) + internal.add_fingerprint(user) + set_internals(null) + return + + // Check for airtight mask/helmet. + var/found_mask = FALSE + for(var/slot in global.airtight_slots) + var/obj/item/gear = get_equipped_item(slot) + if(gear && (gear.item_flags & ITEM_FLAG_AIRTIGHT)) + found_mask = TRUE + break + + if(!found_mask) + to_chat(user, SPAN_WARNING("\The [src] does not have a suitable mask or helmet.")) + return + + // Find an internal source. + var/list/possible_sources = get_possible_internals_sources() + for(var/slot in possible_sources) + var/list/source_info = possible_sources[slot] + if(length(source_info) < 2) + continue + var/obj/item/tank/tank = source_info[1] + if(istype(tank)) + set_internals(tank) + visible_message(SPAN_NOTICE("\The [src] is now running on internals!")) + internal.add_fingerprint(user) + return + + to_chat(user, SPAN_WARNING("You could not find a suitable tank!")) + +/mob/living/proc/breathing_hole_covered() + var/obj/item/mask = get_equipped_item(slot_wear_mask_str) + . = (mask?.item_flags & ITEM_FLAG_AIRTIGHT) + +/mob/living/proc/get_possible_internals_sources() + . = get_equipped_internals_sources() + for(var/slot in held_item_slots) + var/obj/item/tank/checking = get_equipped_item(slot) + if(istype(checking)) + .[parse_zone(slot)] = list(checking, "in") + +/mob/living/proc/get_equipped_internals_sources() + . = list("back" = list(get_equipped_item(slot_back_str), "on")) + +/mob/living/proc/set_internals_to_best_available_tank(var/breathes_gas = /decl/material/gas/oxygen, var/list/poison_gas = list(/decl/material/gas/chlorine)) + + if(!ispath(breathes_gas)) + return + + var/list/possible_sources = get_possible_internals_sources() + var/selected_slot + var/selected_from + var/obj/item/tank/selected_obj + var/decl/material/breathing_gas = GET_DECL(breathes_gas) + for(var/slot_name in possible_sources) + var/list/checking_data = possible_sources[slot_name] + if(length(checking_data) < 2) + continue + var/obj/item/tank/checking = checking_data[1] + if(!istype(checking) || !checking.air_contents?.gas) + continue + + var/valid_tank = (checking.manipulated_by && checking.manipulated_by != real_name && findtext(checking.desc, breathing_gas.name)) + if(!valid_tank) + if(!checking.air_contents.gas[breathes_gas]) + continue + var/is_poison = FALSE + for(var/poison in poison_gas) + if(checking.air_contents.gas[poison]) + is_poison = TRUE + break + if(!is_poison) + valid_tank = TRUE + + if(valid_tank && (!selected_obj || selected_obj.air_contents.gas[breathes_gas] < checking.air_contents.gas[breathes_gas])) + selected_obj = checking + selected_slot = slot_name + selected_from = checking_data[2] + + if(selected_obj) + if(selected_slot && selected_from) + set_internals(selected_obj, "\the [selected_obj] [selected_from] your [selected_slot]") + else + set_internals(selected_obj, "\the [selected_obj]") + +/mob/living/proc/ui_toggle_internals() + + if(incapacitated()) + return + + if(get_internals()) + set_internals(null) + return + + if(!breathing_hole_covered()) + to_chat(src, SPAN_WARNING("You are not wearing a suitable mask or helmet.")) + return + + set_internals_to_best_available_tank() + + if(!get_internals()) + to_chat(src, SPAN_WARNING("You don't have a tank that is usable as internals.")) diff --git a/code/modules/mob/living/inventory.dm b/code/modules/mob/living/inventory.dm index 913aed2de67..be0a17d4f35 100644 --- a/code/modules/mob/living/inventory.dm +++ b/code/modules/mob/living/inventory.dm @@ -15,15 +15,25 @@ var/held_item_slot_selected var/list/held_item_slots var/list/inventory_slots + var/pending_hand_rebuild + +/mob/living/get_inventory_slots() + return global.all_inventory_slots // inventory_slots + +/mob/living/get_inventory_slot_datum(var/slot) + return LAZYACCESS(inventory_slots, slot) || LAZYACCESS(held_item_slots, slot) + +/mob/living/get_held_item_slots() + return held_item_slots /mob/living/has_held_item_slot() . = LAZYLEN(held_item_slots) >= 1 /mob/living/proc/add_held_item_slot(var/slot, var/new_ui_loc, var/new_overlay_slot, var/new_label) LAZYSET(held_item_slots, slot, new /datum/inventory_slot(slot, new_ui_loc, new_overlay_slot, new_label)) - hud_used?.rebuild_hands(list(slot), FALSE) if(!get_active_hand()) select_held_item_slot(slot) + queue_hand_rebuild() /mob/living/proc/remove_held_item_slot(var/slot) var/datum/inventory_slot/inv_slot = LAZYACCESS(held_item_slots, slot) @@ -32,9 +42,9 @@ drop_from_inventory(inv_slot.holding) held_item_slots -= slot qdel(inv_slot) - hud_used?.rebuild_hands(FALSE, list(slot)) if(get_active_held_item_slot() == slot && length(held_item_slots)) select_held_item_slot(held_item_slots[1]) + queue_hand_rebuild() /mob/living/proc/select_held_item_slot(var/slot) var/last_slot = get_active_held_item_slot() @@ -49,6 +59,16 @@ if(istype(I)) I.on_active_hand() +// Defer proc for the sake of delimbing root limbs with multiple graspers (serpentid) +/mob/living/proc/queue_hand_rebuild() + set waitfor = FALSE + if(!pending_hand_rebuild) + pending_hand_rebuild = TRUE + sleep(1) + pending_hand_rebuild = FALSE + if(hud_used) + hud_used.rebuild_hands() + /mob/living/get_active_hand() var/datum/inventory_slot/inv_slot = LAZYACCESS(held_item_slots, get_active_held_item_slot()) return inv_slot?.holding @@ -60,8 +80,8 @@ . = null /mob/living/get_inactive_held_items() - for(var/bp in (held_item_slots - get_active_held_item_slot())) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in (held_item_slots - get_active_held_item_slot())) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] var/obj/item/thing = inv_slot?.holding if(istype(thing)) LAZYADD(., thing) @@ -71,28 +91,25 @@ /mob/living/swap_hand() . = ..() - select_held_item_slot(next_in_list(get_active_held_item_slot(), held_item_slots)) + if(length(held_item_slots)) + select_held_item_slot(next_in_list(get_active_held_item_slot(), held_item_slots)) /mob/living/get_empty_hand_slot() - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in held_item_slots) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] if(inv_slot && !inv_slot.holding) - return bp + return hand_slot /mob/living/get_empty_hand_slots() - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in held_item_slots) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] if(inv_slot && !inv_slot.holding) - LAZYADD(., bp) + LAZYADD(., hand_slot) /mob/living/get_equipped_item(var/slot) . = ..() if(!.) - var/datum/inventory_slot/inv_slot - if(LAZYLEN(inventory_slots)) - inv_slot = inventory_slots[slot] - else if(LAZYLEN(held_item_slots)) - inv_slot = held_item_slots[slot] + var/datum/inventory_slot/inv_slot = get_inventory_slot_datum(slot) return inv_slot?.holding /mob/living/drop_from_hand(var/slot, var/atom/Target) @@ -104,8 +121,8 @@ /mob/living/u_equip(obj/W) . = ..() if(!.) - for(var/bp in held_item_slots) - var/datum/inventory_slot/inv_slot = held_item_slots[bp] + for(var/hand_slot in held_item_slots) + var/datum/inventory_slot/inv_slot = held_item_slots[hand_slot] if(inv_slot?.holding == W) inv_slot.holding = null . = TRUE diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index b9c5565a238..7f7472797d7 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -186,9 +186,37 @@ handle_hud_icons() handle_vision() + handle_low_light_vision() return 1 +/mob/living/proc/handle_low_light_vision() + + // No client means nothing to update. + if(!client || !lighting_master) + return + + // No loc or species means we should just assume no adjustment. + var/decl/species/species = get_species() + var/turf/my_turf = get_turf(src) + if(!isturf(my_turf) || !species) + lighting_master.set_alpha(255) + return + + // TODO: handling for being inside atoms. + var/target_value = 255 * (1-species.base_low_light_vision) + var/loc_lumcount = my_turf.get_lumcount() + if(loc_lumcount < species.low_light_vision_threshold) + target_value = round(target_value * (1-species.low_light_vision_effectiveness)) + + if(lighting_master.alpha == target_value) + return + + var/difference = round((target_value-lighting_master.alpha) * species.low_light_vision_adjustment_speed) + if(abs(difference) > 1) + target_value = lighting_master.alpha + difference + lighting_master.set_alpha(target_value) + /mob/living/proc/handle_vision() update_sight() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3a176f1e602..6fb28764a96 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -5,9 +5,8 @@ else add_to_living_mob_list() -/mob/living/examine(mob/user, distance, infix, suffix) - . = ..() - if (admin_paralyzed) +/mob/living/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) + if(admin_paralyzed) to_chat(user, SPAN_OCCULT("OOC: They have been paralyzed by staff. Please avoid interacting with them unless cleared to do so by staff.")) //mob verbs are faster than object verbs. See above. @@ -63,7 +62,7 @@ default behaviour is: // End boilerplate. spawn(0) - if ((!( yes ) || now_pushing) || !loc) + if (!yes || now_pushing || QDELETED(src) || QDELETED(AM) || !loc || !AM.loc) return now_pushing = 1 @@ -108,6 +107,8 @@ default behaviour is: now_pushing = 0 spawn(0) + if (QDELETED(src) || QDELETED(AM) || !loc || !AM.loc) + return ..() var/saved_dir = AM.dir if (!istype(AM, /atom/movable) || AM.anchored) @@ -1080,3 +1081,4 @@ default behaviour is: /mob/living/get_speech_bubble_state_modifier() return isSynthetic() ? "synth" : ..() + diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 427c30b7e22..23a45f9f914 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -1,79 +1,87 @@ var/global/list/department_radio_keys = list( - ":r" = "right ear", ".r" = "right ear", - ":l" = "left ear", ".l" = "left ear", - ":i" = "intercom", ".i" = "intercom", - ":h" = "department", ".h" = "department", - ":+" = "special", ".+" = "special", //activate radio-specific special functions - ":c" = "Command", ".c" = "Command", - ":n" = "Science", ".n" = "Science", - ":m" = "Medical", ".m" = "Medical", - ":e" = "Engineering", ".e" = "Engineering", - ":s" = "Security", ".s" = "Security", - ":w" = "whisper", ".w" = "whisper", - ":t" = "Mercenary", ".t" = "Mercenary", - ":x" = "Raider", ".x" = "Raider", - ":u" = "Supply", ".u" = "Supply", - ":v" = "Service", ".v" = "Service", - ":p" = "AI Private", ".p" = "AI Private", - ":z" = "Entertainment",".z" = "Entertainment", - ":y" = "Exploration", ".y" = "Exploration", - - ":R" = "right ear", ".R" = "right ear", - ":L" = "left ear", ".L" = "left ear", - ":I" = "intercom", ".I" = "intercom", - ":H" = "department", ".H" = "department", - ":C" = "Command", ".C" = "Command", - ":N" = "Science", ".N" = "Science", - ":M" = "Medical", ".M" = "Medical", - ":E" = "Engineering", ".E" = "Engineering", - ":S" = "Security", ".S" = "Security", - ":W" = "whisper", ".W" = "whisper", - ":T" = "Mercenary", ".T" = "Mercenary", - ":X" = "Raider", ".X" = "Raider", - ":U" = "Supply", ".U" = "Supply", - ":V" = "Service", ".V" = "Service", - ":P" = "AI Private", ".P" = "AI Private", - ":Z" = "Entertainment",".Z" = "Entertainment", - ":Y" = "Exploration", ".Y" = "Exploration", + ":r" = MESSAGE_MODE_RIGHT, ".r" = MESSAGE_MODE_RIGHT, + ":l" = MESSAGE_MODE_LEFT, ".l" = MESSAGE_MODE_LEFT, + ":i" = MESSAGE_MODE_INTERCOM, ".i" = MESSAGE_MODE_INTERCOM, + ":h" = MESSAGE_MODE_DEPARTMENT, ".h" = MESSAGE_MODE_DEPARTMENT, + ":+" = MESSAGE_MODE_SPECIAL, ".+" = MESSAGE_MODE_SPECIAL, //activate radio-specific special functions + ":w" = MESSAGE_MODE_WHISPER, ".w" = MESSAGE_MODE_WHISPER, + ":c" = "Command", ".c" = "Command", + ":n" = "Science", ".n" = "Science", + ":m" = "Medical", ".m" = "Medical", + ":e" = "Engineering", ".e" = "Engineering", + ":s" = "Security", ".s" = "Security", + ":t" = "Mercenary", ".t" = "Mercenary", + ":x" = "Raider", ".x" = "Raider", + ":u" = "Supply", ".u" = "Supply", + ":v" = "Service", ".v" = "Service", + ":p" = "AI Private", ".p" = "AI Private", + ":z" = "Entertainment", ".z" = "Entertainment", + ":y" = "Exploration", ".y" = "Exploration", + + ":R" = MESSAGE_MODE_RIGHT, ".R" = MESSAGE_MODE_RIGHT, + ":L" = MESSAGE_MODE_LEFT, ".L" = MESSAGE_MODE_LEFT, + ":I" = MESSAGE_MODE_INTERCOM, ".I" = MESSAGE_MODE_INTERCOM, + ":H" = MESSAGE_MODE_DEPARTMENT, ".H" = MESSAGE_MODE_DEPARTMENT, + ":W" = MESSAGE_MODE_WHISPER, ".W" = MESSAGE_MODE_WHISPER, + ":C" = "Command", ".C" = "Command", + ":N" = "Science", ".N" = "Science", + ":M" = "Medical", ".M" = "Medical", + ":E" = "Engineering", ".E" = "Engineering", + ":S" = "Security", ".S" = "Security", + ":T" = "Mercenary", ".T" = "Mercenary", + ":X" = "Raider", ".X" = "Raider", + ":U" = "Supply", ".U" = "Supply", + ":V" = "Service", ".V" = "Service", + ":P" = "AI Private", ".P" = "AI Private", + ":Z" = "Entertainment", ".Z" = "Entertainment", + ":Y" = "Exploration", ".Y" = "Exploration", //russian version below - ":к" = "right ear", ".к" = "right ear", - ":д" = "left ear", ".д" = "left ear", - ":ш" = "intercom", ".ш" = "intercom", - ":р" = "department", ".р" = "department", - ":с" = "Command", ".с" = "Command", - ":т" = "Science", ".т" = "Science", - ":ь" = "Medical", ".ь" = "Medical", - ":у" = "Engineering", ".у" = "Engineering", - ":ы" = "Security", ".ы" = "Security", - ":ц" = "whisper", ".ц" = "whisper", - ":е" = "Mercenary", ".е" = "Mercenary", - ":г" = "Supply", ".г" = "Supply", - ":ч" = "Raider", ".ч" = "Raider", - ":м" = "Service", ".м" = "Service", - ":з" = "AI Private", ".з" = "AI Private", - ":я" = "Entertainment",".я" = "Entertainment", - ":н" = "Exploration", ".н" = "Exploration", - - ":К" = "right ear", ".К" = "right ear", - ":Д" = "left ear", ".Д" = "left ear", - ":Ш" = "intercom", ".Ш" = "intercom", - ":Р" = "department", ".Р" = "department", - ":С" = "Command", ".С" = "Command", - ":Т" = "Science", ".Т" = "Science", - ":Ь" = "Medical", ".Ь" = "Medical", - ":У" = "Engineering", ".У" = "Engineering", - ":Ы" = "Security", ".Ы" = "Security", - ":Ц" = "whisper", ".Ц" = "whisper", - ":Е" = "Mercenary", ".Е" = "Mercenary", - ":Г" = "Supply", ".Г" = "Supply", - ":Ч" = "Raider", ".Ч" = "Raider", - ":М" = "Service", ".М" = "Service", - ":З" = "AI Private", ".З" = "AI Private", - ":Я" = "Entertainment",".Я" = "Entertainment", - ":Н" = "Exploration", ".Н" = "Exploration", + ":к" = MESSAGE_MODE_RIGHT, ".к" = MESSAGE_MODE_RIGHT, + ":д" = MESSAGE_MODE_LEFT, ".д" = MESSAGE_MODE_LEFT, + ":ш" = MESSAGE_MODE_INTERCOM, ".ш" = MESSAGE_MODE_INTERCOM, + ":р" = MESSAGE_MODE_DEPARTMENT, ".р" = MESSAGE_MODE_DEPARTMENT, + ":ц" = MESSAGE_MODE_WHISPER, ".ц" = MESSAGE_MODE_WHISPER, + ":с" = "Command", ".с" = "Command", + ":т" = "Science", ".т" = "Science", + ":ь" = "Medical", ".ь" = "Medical", + ":у" = "Engineering", ".у" = "Engineering", + ":ы" = "Security", ".ы" = "Security", + ":е" = "Mercenary", ".е" = "Mercenary", + ":г" = "Supply", ".г" = "Supply", + ":ч" = "Raider", ".ч" = "Raider", + ":м" = "Service", ".м" = "Service", + ":з" = "AI Private", ".з" = "AI Private", + ":я" = "Entertainment", ".я" = "Entertainment", + ":н" = "Exploration", ".н" = "Exploration", + + ":К" = MESSAGE_MODE_RIGHT, ".К" = MESSAGE_MODE_RIGHT, + ":Д" = MESSAGE_MODE_LEFT, ".Д" = MESSAGE_MODE_LEFT, + ":Ш" = MESSAGE_MODE_INTERCOM, ".Ш" = MESSAGE_MODE_INTERCOM, + ":Р" = MESSAGE_MODE_DEPARTMENT, ".Р" = MESSAGE_MODE_DEPARTMENT, + ":Ц" = MESSAGE_MODE_WHISPER, ".Ц" = MESSAGE_MODE_WHISPER, + ":С" = "Command", ".С" = "Command", + ":Т" = "Science", ".Т" = "Science", + ":Ь" = "Medical", ".Ь" = "Medical", + ":У" = "Engineering", ".У" = "Engineering", + ":Ы" = "Security", ".Ы" = "Security", + ":Е" = "Mercenary", ".Е" = "Mercenary", + ":Г" = "Supply", ".Г" = "Supply", + ":Ч" = "Raider", ".Ч" = "Raider", + ":М" = "Service", ".М" = "Service", + ":З" = "AI Private", ".З" = "AI Private", + ":Я" = "Entertainment", ".Я" = "Entertainment", + ":Н" = "Exploration", ".Н" = "Exploration", ) +// Assoc for lookup speed since this is in potentially semihot code +var/global/list/nondepartmental_message_modes = list( + MESSAGE_MODE_LEFT = TRUE, + MESSAGE_MODE_RIGHT = TRUE, + MESSAGE_MODE_INTERCOM = TRUE, + MESSAGE_MODE_DEFAULT = TRUE, + MESSAGE_MODE_WHISPER = TRUE +) var/global/list/channel_to_radio_key = new /proc/get_radio_key_from_channel(var/channel) @@ -143,12 +151,9 @@ var/global/list/channel_to_radio_key = new // determine relevancy. See handle_message_mode below. /mob/living/proc/get_radios(var/message_mode) - if(!message_mode) - return - var/list/possible_radios - if(message_mode == "right ear" || message_mode == "left ear") - var/use_right = message_mode == "right ear" + if(message_mode == MESSAGE_MODE_RIGHT || message_mode == MESSAGE_MODE_LEFT) + var/use_right = (message_mode == MESSAGE_MODE_RIGHT) var/obj/item/thing = get_equipped_item(use_right ? slot_r_ear_str : slot_l_ear_str) if(thing) LAZYDISTINCTADD(possible_radios, thing) @@ -156,13 +161,18 @@ var/global/list/channel_to_radio_key = new thing = get_equipped_item(use_right ? BP_R_HAND : BP_L_HAND) if(thing) LAZYDISTINCTADD(possible_radios, thing) - else + else if(message_mode == MESSAGE_MODE_INTERCOM) + if(!restrained()) + for(var/obj/item/radio/I in view(1)) + if(I.intercom_handling) + LAZYDISTINCTADD(possible_radios, I) + else if(message_mode != MESSAGE_MODE_WHISPER) for(var/slot in global.ear_slots) var/thing = get_equipped_item(slot) if(thing) LAZYDISTINCTADD(possible_radios, thing) - if(length(possible_radios)) + if(LAZYLEN(possible_radios)) for(var/atom/movable/thing as anything in possible_radios) var/obj/item/radio/radio = thing.get_radio(message_mode) if(istype(radio)) @@ -172,16 +182,15 @@ var/global/list/channel_to_radio_key = new // It then processes the message_mode to implement an additional behavior needed for the message, such // as retrieving radios or looking for an intercom nearby. /mob/living/proc/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name) + if(!message_mode) + return var/list/assess_items_as_radios = get_radios(message_mode) - if(message_mode == "intercom" && !restrained()) - for(var/obj/item/radio/I in view(1)) - if(I.intercom_handling) - LAZYDISTINCTADD(assess_items_as_radios, I) - for(var/obj/item/radio/radio as anything in assess_items_as_radios) - used_radios += radio + if(!LAZYLEN(assess_items_as_radios)) + return + used_radios |= assess_items_as_radios + for(var/obj/item/radio/radio as anything in used_radios) radio.add_fingerprint(src) radio.talk_into(src, message, message_mode, verb, speaking) - . = TRUE /mob/living/proc/handle_speech_sound() var/list/returns[2] @@ -227,9 +236,9 @@ var/global/list/channel_to_radio_key = new return custom_emote(1, copytext(message,2)) //parse the radio code and consume it - var/message_mode = parse_message_mode(message, "headset") + var/message_mode = parse_message_mode(message) if (message_mode) - if (message_mode == "headset") + if (message_mode == MESSAGE_MODE_DEFAULT) message = copytext_char(message,2) //it would be really nice if the parse procs could do this for us. else message = copytext_char(message,3) @@ -281,7 +290,7 @@ var/global/list/channel_to_radio_key = new if(!message || message == "") return 0 - var/list/obj/item/used_radios = new + var/list/obj/item/used_radios = list() if(handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name)) return 1 diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index 391620542b0..fea4ebf1c42 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/ai/examine(mob/user) +/mob/living/silicon/ai/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() var/msg = "" diff --git a/code/modules/mob/living/silicon/pai/examine.dm b/code/modules/mob/living/silicon/pai/examine.dm index f6ca6e78053..d781e3d136d 100644 --- a/code/modules/mob/living/silicon/pai/examine.dm +++ b/code/modules/mob/living/silicon/pai/examine.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/pai/examine(mob/user, distance) +/mob/living/silicon/pai/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..(user, distance, infix = ", personal AI") var/msg = "" diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index c15399cfac9..9827e68aa58 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -75,7 +75,7 @@ if(!(old_loc && new_loc)) // Allows inventive admins to move drones between non-adjacent Z-levels by moving them to null space first I suppose return - if(ARE_Z_CONNECTED(old_loc.z, new_loc.z)) + if(LEVELS_ARE_Z_CONNECTED(old_loc.z, new_loc.z)) return // None of the tests passed, good bye diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index 0b8c1bff135..4a4b77588f2 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/robot/examine(mob/user, distance) +/mob/living/silicon/robot/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) var/custom_infix = custom_name ? ", [modtype] [braintype]" : "" . = ..(user, distance, infix = custom_infix) diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index e8c5bc12b5c..55521ad2cbf 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -8,30 +8,27 @@ if(message_mode) if(!is_component_functioning("radio")) to_chat(src, SPAN_WARNING("Your radio isn't functional at this time.")) - return FALSE - if(message_mode == "general") - message_mode = null - return silicon_radio.talk_into(src, message, message_mode, verb, speaking) + else + used_radios += silicon_radio + . = TRUE return ..() /mob/living/silicon/ai/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name) if(message_mode) - if(message_mode == "department") - return holopad_talk(message, verb, speaking) - if (ai_radio.disabledAi || !has_power() || stat) - to_chat(src, "System Error - Transceiver Disabled.") - return FALSE - if(message_mode == "general") - message_mode = null - return ai_radio.talk_into(src,message,message_mode,verb,speaking) - return ..() + if(message_mode == MESSAGE_MODE_DEPARTMENT) + holopad_talk(message, verb, speaking) + else if (ai_radio.disabledAi || !has_power() || stat) + to_chat(src, SPAN_DANGER("System Error - Transceiver Disabled.")) + else + used_radios += ai_radio + . = TRUE + ..() /mob/living/silicon/pai/handle_message_mode(message_mode, message, verb, speaking, used_radios, alt_name) if(message_mode) - if(message_mode == "general") - message_mode = null - return silicon_radio.talk_into(src,message,message_mode,verb,speaking) - return ..() + used_radios += silicon_radio + . = TRUE + ..() /mob/living/silicon/say_quote(var/text) var/ending = copytext(text, length(text)) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 674359d86ac..b3cfd9bcb99 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -290,7 +290,7 @@ apply_damage(burn, BURN, damage_flags = DAM_EXPLODE) /mob/living/silicon/proc/receive_alarm(var/datum/alarm_handler/alarm_handler, var/datum/alarm/alarm, was_raised) - if(!(alarm.alarm_z() in GetConnectedZlevels(get_z(src)))) + if(!(alarm.alarm_z() in SSmapping.get_connected_levels(get_z(src)))) return // Didn't actually hear it as far as we're concerned. if(!next_alarm_notice) next_alarm_notice = world.time + SecondsToTicks(10) diff --git a/code/modules/mob/living/simple_animal/constructs/constructs.dm b/code/modules/mob/living/simple_animal/constructs/constructs.dm index b3c7a780145..f3f11508dd3 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs.dm @@ -73,19 +73,13 @@ return return ..() -/mob/living/simple_animal/construct/examine(mob/user) +/mob/living/simple_animal/construct/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..(user) - var/msg = "*---------*\nThis is [html_icon(src)] \a [src]!\n" - if (src.health < src.maxHealth) - msg += "" - if (src.health >= src.maxHealth/2) - msg += "It looks slightly dented.\n" + if(health < maxHealth) + if(health >= maxHealth/2) + to_chat(user, SPAN_WARNING("It looks slightly dented.")) else - msg += "It looks severely dented!\n" - msg += "" - msg += "*---------*" - - to_chat(user, msg) + to_chat(user, SPAN_DANGER("It looks severely dented!")) /obj/item/ectoplasm name = "ectoplasm" diff --git a/code/modules/mob/living/simple_animal/crow/crow.dm b/code/modules/mob/living/simple_animal/crow/crow.dm index 8cce2828011..8bd1949b5c6 100644 --- a/code/modules/mob/living/simple_animal/crow/crow.dm +++ b/code/modules/mob/living/simple_animal/crow/crow.dm @@ -119,7 +119,7 @@ return TOPIC_HANDLED return ..() -/mob/living/simple_animal/crow/examine(mob/user) +/mob/living/simple_animal/crow/show_examined_worn_held_items(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() if(Adjacent(src)) if(messenger_bag) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/jelly.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/jelly.dm index 6a4fd3d4302..02e12536523 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/jelly.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/jelly.dm @@ -21,7 +21,7 @@ /mob/living/simple_animal/hostile/retaliate/jelly/Initialize() . = ..() if(gets_random_color) - color = color_rotation(round(rand(0,360),20)) + color = color_matrix_rotate_hue(round(rand(0,360),20)) /mob/living/simple_animal/hostile/retaliate/jelly/alt icon = 'icons/mob/simple_animal/jelly_alt.dmi' @@ -46,7 +46,7 @@ if(W) W.force *= jelly_scale if(!megajelly_color) - megajelly_color = color_rotation(round(rand(0,360),20)) + megajelly_color = color_matrix_rotate_hue(round(rand(0,360),20)) color = megajelly_color /mob/living/simple_animal/hostile/retaliate/jelly/mega/death() diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm index ad5b6a71b6f..b40ab4b5f91 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/parrot.dm @@ -490,8 +490,8 @@ if(iscarbon(AM)) var/mob/living/carbon/C = AM - for(var/bp in C.held_item_slots) - var/datum/inventory_slot/inv_slot = C.held_item_slots[bp] + for(var/hand_slot in C.held_item_slots) + var/datum/inventory_slot/inv_slot = C.held_item_slots[hand_slot] if(inv_slot?.holding && can_pick_up(inv_slot.holding)) return C return null @@ -519,8 +519,8 @@ if(iscarbon(AM)) var/mob/living/carbon/C = AM - for(var/bp in C.held_item_slots) - var/datum/inventory_slot/inv_slot = C.held_item_slots[bp] + for(var/hand_slot in C.held_item_slots) + var/datum/inventory_slot/inv_slot = C.held_item_slots[hand_slot] if(inv_slot?.holding && can_pick_up(inv_slot.holding)) return C return null @@ -668,9 +668,9 @@ verb = pick(speak_emote) - var/message_mode="" + var/message_mode if(copytext(message,1,2) == get_prefix_key(/decl/prefix/radio_main_channel)) - message_mode = "headset" + message_mode = MESSAGE_MODE_DEFAULT message = copytext(message,2) if(length(message) >= 2) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 15b26cfdf45..8b74e6ca3b0 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -164,7 +164,7 @@ . = ..() if(!.) return FALSE - if(!living_observers_present(GetConnectedZlevels(z))) + if(z && !living_observers_present(SSmapping.get_connected_levels(z))) return //Health if(stat == DEAD) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 31b9fa39c44..790b2ee8eb7 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -102,6 +102,8 @@ client.screen = list() //remove hud items just in case client.set_right_click_menu_mode(shift_to_open_context_menu) InitializeHud() + else + refresh_lighting_master() refresh_client_images() reload_fullscreen() // Reload any fullscreen overlays this mob has. diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index c30496b0ebc..fc36b6341e6 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -21,6 +21,7 @@ clear_fullscreen() if(istype(ai)) QDEL_NULL(ai) + QDEL_NULL(lighting_master) remove_screen_obj_references() if(client) for(var/atom/movable/AM in client.screen) @@ -1142,7 +1143,7 @@ return FALSE // Not in a connected z-volume. - if(!(N.z in GetConnectedZlevels(T.z))) + if(!(N.z in SSmapping.get_connected_levels(T.z))) return FALSE // Are they below us? @@ -1211,3 +1212,10 @@ SStyping.set_indicator_state(client, FALSE) if (message) whisper(message) + +// Darksight procs. +/mob/proc/refresh_lighting_master() + if(!lighting_master) + lighting_master = new + if(client) + client.screen |= lighting_master diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index a1f08e45bad..6d69cd830aa 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -177,6 +177,9 @@ var/holder_type /// If this mob is or was piloted by a player with typing indicators enabled, an instance of one. - var/atom/movable/overlay/typing_indicator/typing_indicator + var/atom/movable/typing_indicator/typing_indicator /// Whether this mob is currently typing, if piloted by a player. - var/is_typing \ No newline at end of file + var/is_typing + + /// Used for darksight, required on all mobs to ensure lighting renders properly. + var/obj/screen/lighting_plane_master/lighting_master diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 277599159ab..10e858586f2 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -419,7 +419,7 @@ var/global/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) /proc/broadcast_hud_message(var/message, var/broadcast_source, var/list/targets, var/icon) var/turf/sourceturf = get_turf(broadcast_source) for(var/mob/M in targets) - if(!sourceturf || (get_z(M) in GetConnectedZlevels(sourceturf.z))) + if(!sourceturf || (get_z(M) in SSmapping.get_connected_levels(sourceturf.z))) M.show_message("[html_icon(icon)] [message]", 1) /proc/mobs_in_area(var/area/A) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 026afaa336a..dd67aff3fe5 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -308,7 +308,7 @@ INITIALIZE_IMMEDIATE(/mob/new_player) added_job = TRUE if(!added_job) - dat += "No available positions." + dat += "No available positions." // END MAIN MAP JOBS // SUBMAP JOBS @@ -407,6 +407,7 @@ INITIALIZE_IMMEDIATE(/mob/new_player) dat += html_crew_manifest(OOC = 1) //show_browser(src, dat, "window=manifest;size=370x420;can_close=1") var/datum/browser/popup = new(src, "Crew Manifest", "Crew Manifest", 370, 420, src) + popup.add_stylesheet("nano_shared", 'nano/css/shared.css') popup.set_content(dat) popup.open() diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 2f46e5c436a..6ba72a1e3e6 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -104,7 +104,7 @@ if(mannequin) mannequin.delete_inventory(TRUE) dress_preview_mob(mannequin) - update_character_previews(new /mutable_appearance(mannequin)) + update_character_previews(mannequin) /datum/preferences/proc/get_random_name() var/decl/cultural_info/culture/check_culture = cultural_info[TAG_CULTURE] diff --git a/code/modules/mob/observer/observer.dm b/code/modules/mob/observer/observer.dm index d5456a928ad..bfe06895d07 100644 --- a/code/modules/mob/observer/observer.dm +++ b/code/modules/mob/observer/observer.dm @@ -98,3 +98,7 @@ var/global/const/GHOST_IMAGE_ALL = ~GHOST_IMAGE_NONE /mob/observer/get_speech_bubble_state_modifier() return "ghost" + +/mob/observer/refresh_lighting_master() + ..() + lighting_master.alpha = 255 // don't bother animating it diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 10e7f46608a..b429a8169d7 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -67,15 +67,13 @@ //parses the message mode code (e.g. :h, :w) from text, such as that supplied to say. //returns the message mode string or null for no message mode. //standard mode is the mode returned for the special ';' radio code. -/mob/proc/parse_message_mode(var/message, var/standard_mode="headset") - if(length(message) >= 1 && copytext_char(message,1,2) == get_prefix_key(/decl/prefix/radio_main_channel)) - return standard_mode - - if(length(message) >= 2) - var/channel_prefix = copytext_char(message, 1 ,3) - return department_radio_keys[channel_prefix] - - return null +/mob/proc/parse_message_mode(var/message) + if(length(message) >= 1) + if(copytext_char(message,1,2) == get_prefix_key(/decl/prefix/radio_main_channel)) + return MESSAGE_MODE_DEFAULT + if(length(message) >= 2) + var/channel_prefix = copytext_char(message, 1, 3) + return department_radio_keys[channel_prefix] //parses the language code (e.g. :j) from text, such as that supplied to say. //returns the language object only if the code corresponds to a language that src can speak, otherwise null. diff --git a/code/modules/modular_computers/computers/modular_computer/core.dm b/code/modules/modular_computers/computers/modular_computer/core.dm index 885b424103f..2c1cc1c1b7f 100644 --- a/code/modules/modular_computers/computers/modular_computer/core.dm +++ b/code/modules/modular_computers/computers/modular_computer/core.dm @@ -53,17 +53,11 @@ START_PROCESSING(SSobj, src) set_extension(src, /datum/extension/interactive/os/device) set_extension(src, computer_type) - if(stores_pen && ispath(stored_pen)) stored_pen = new stored_pen(src) - update_icon() update_verbs() update_name() - - var/datum/extension/assembly/modular_computer/assembly = get_extension(src, /datum/extension/assembly/modular_computer) - if(istype(assembly) && assembly.enabled_by_default) - enable_computer() ..() return INITIALIZE_HINT_LATELOAD @@ -71,6 +65,9 @@ . = ..() install_default_hardware() install_default_programs() + var/datum/extension/assembly/modular_computer/assembly = get_extension(src, /datum/extension/assembly) + if(istype(assembly) && assembly.enabled_by_default) + enable_computer() /obj/item/modular_computer/Destroy() shutdown_computer(loud = FALSE) diff --git a/code/modules/modular_computers/file_system/manifest.dm b/code/modules/modular_computers/file_system/manifest.dm index 5c8e320192d..f746579b140 100644 --- a/code/modules/modular_computers/file_system/manifest.dm +++ b/code/modules/modular_computers/file_system/manifest.dm @@ -11,11 +11,10 @@ var/dat = {" diff --git a/code/modules/modular_computers/file_system/programs/command/comm.dm b/code/modules/modular_computers/file_system/programs/command/comm.dm index 12703f015fe..050268ac531 100644 --- a/code/modules/modular_computers/file_system/programs/command/comm.dm +++ b/code/modules/modular_computers/file_system/programs/command/comm.dm @@ -165,7 +165,7 @@ var/input = input(usr, "Please write a message to announce to the [station_name()].", "Priority Announcement") as null|message if(!input || !can_still_topic() || filter_block_message(usr, input)) return 1 - var/affected_zlevels = GetConnectedZlevels(get_host_z()) + var/affected_zlevels = SSmapping.get_connected_levels(get_host_z()) crew_announcement.Announce(input, zlevels = affected_zlevels) announcment_cooldown = 1 spawn(600)//One minute cooldown diff --git a/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm b/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm index 652cfc390b5..c1e691ad90e 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/atmos_control.dm @@ -51,10 +51,10 @@ filter_strings[weakref(usr)] = string alarm_data_cache -= weakref(usr) return TOPIC_REFRESH - + if(href_list["refresh"]) alarm_data_cache -= weakref(usr) - return TOPIC_REFRESH + return TOPIC_REFRESH /datum/nano_module/atmos_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/master_ui = null, var/datum/topic_state/state = global.default_topic_state) var/list/data = host.initial_data() @@ -71,7 +71,7 @@ var/list/alarmsDanger = list() for(var/obj/machinery/alarm/alarm in monitored_alarms) - if (!Z || !AreConnectedZLevels(Z, alarm.z)) + if (!Z || !SSmapping.are_connected_levels(Z, alarm.z)) continue var/alarm_name = sanitize(alarm.name) alarm_name = replacetext(alarm_name, " Air Alarm", "") // shorten titles @@ -92,7 +92,7 @@ alarms_data["alarmsAlert"] = sortTim(alarmsAlert, /proc/cmp_list_name_key_asc) alarms_data["alarmsDanger"] = sortTim(alarmsDanger, /proc/cmp_list_name_key_asc) alarm_data_cache[weakref(user)] = alarms_data - + data += alarms_data data["filter"] = filter || "---" diff --git a/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm index a23f85e94a5..0b3a1c7b880 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/power_monitor.dm @@ -87,7 +87,7 @@ // Refreshes list of active sensors kept on this computer. /datum/nano_module/program/power_monitor/proc/refresh_sensors() grid_sensors = list() - var/connected_z_levels = GetConnectedZlevels(get_host_z()) + var/connected_z_levels = SSmapping.get_connected_levels(get_host_z()) for(var/obj/machinery/power/sensor/S in SSmachines.machinery) if(get_z(S) in connected_z_levels) // Consoles have range on their Z-Level. Sensors with long_range var will work between Z levels. grid_sensors += S diff --git a/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm b/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm index bbc64881169..10e61aa1ff0 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/rcon_console.dm @@ -138,9 +138,9 @@ if(!network) return FALSE - if(!ARE_Z_CONNECTED(network.get_router_z(), get_z(M))) + if(!LEVELS_ARE_Z_CONNECTED(network.get_router_z(), get_z(M))) return FALSE - + if(istype(M, /obj/machinery/power/smes)) var/obj/machinery/power/smes/buildable/SMES = M return SMES.RCon_tag && SMES.RCon_tag != "NO_TAG" && SMES.RCon diff --git a/code/modules/modular_computers/file_system/programs/engineering/shields_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/shields_monitor.dm index 10ec342eb1f..a00df078996 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/shields_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/shields_monitor.dm @@ -25,7 +25,7 @@ var/datum/computer_network/network = get_network() if(!network) return FALSE - return ARE_Z_CONNECTED(network.get_router_z(), get_z(S)) + return LEVELS_ARE_Z_CONNECTED(network.get_router_z(), get_z(S)) /datum/nano_module/program/shields_monitor/proc/get_shields() var/list/shields = list() diff --git a/code/modules/modular_computers/file_system/programs/engineering/shutoff_valve.dm b/code/modules/modular_computers/file_system/programs/engineering/shutoff_valve.dm index 6743c0f3781..8957c364b8d 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/shutoff_valve.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/shutoff_valve.dm @@ -19,7 +19,7 @@ /datum/nano_module/program/shutoff_monitor/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = global.default_topic_state) var/list/list/data = host.initial_data() var/list/z_valves = list() - var/list/zs = GetConnectedZlevels(get_z(nano_host())) + var/list/zs = SSmapping.get_connected_levels(get_z(nano_host())) for(var/obj/machinery/atmospherics/valve/shutoff/S in shutoff_valves) if(S.z in zs) diff --git a/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm b/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm index 8e72706671a..08da0af07d6 100644 --- a/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm +++ b/code/modules/modular_computers/file_system/programs/engineering/supermatter_monitor.dm @@ -52,7 +52,7 @@ var/datum/computer_network/network = get_network() if(!network) return FALSE - return ARE_Z_CONNECTED(network.get_router_z(), get_z(S)) + return LEVELS_ARE_Z_CONNECTED(network.get_router_z(), get_z(S)) // Refreshes list of active supermatter crystals /datum/nano_module/program/supermatter_monitor/proc/refresh() diff --git a/code/modules/modular_computers/file_system/programs/generic/docks.dm b/code/modules/modular_computers/file_system/programs/generic/docks.dm index dea694013b4..1fe5cfb5a2e 100644 --- a/code/modules/modular_computers/file_system/programs/generic/docks.dm +++ b/code/modules/modular_computers/file_system/programs/generic/docks.dm @@ -32,7 +32,7 @@ /datum/nano_module/program/docking/proc/refresh_docks() docking_controllers.Cut() docking_beacons.Cut() - var/list/zlevels = GetConnectedZlevels(get_host_z()) + var/list/zlevels = SSmapping.get_connected_levels(get_host_z()) for(var/obj/machinery/embedded_controller/radio/airlock/docking_port/D in SSmachines.machinery) if(D.z in zlevels) var/shuttleside = 0 @@ -42,15 +42,15 @@ if(S.shuttle_docking_controller.id_tag == D.program.id_tag) shuttleside = 1 break - if(shuttleside) + if(shuttleside) continue docking_controllers += D.program.id_tag - + // Add magnetic docking beacons. var/datum/computer_network/network = get_network() if(network) docking_beacons |= network.get_tags_by_type(/obj/machinery/docking_beacon) - + /datum/nano_module/program/docking/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, state = global.default_topic_state) var/list/data = host.initial_data() var/list/docks = list() @@ -70,7 +70,7 @@ "docked" = docked, "codes" = P.docking_codes ? P.docking_codes : "Unset" ))) - + for(var/beacontag in docking_beacons) var/datum/extension/network_device/D = network.get_device_by_tag(beacontag) var/obj/machinery/docking_beacon/beacon = D.holder @@ -96,7 +96,7 @@ /datum/nano_module/program/docking/Topic(href, href_list, state) if(..()) return TOPIC_HANDLED - + if(istext(href_list["edit_docking_codes"])) var/datum/computer/file/embedded_program/docking/P = SSshuttle.docking_registry[href_list["edit_docking_codes"]] if(P) @@ -118,7 +118,7 @@ if(P) P.receive_user_command("undock") return TOPIC_HANDLED - + if(istext(href_list["beacon"])) var/datum/computer_network/network = get_network() var/datum/extension/network_device/device = network.get_device_by_tag(href_list["beacon"]) diff --git a/code/modules/modular_computers/file_system/programs/generic/supply.dm b/code/modules/modular_computers/file_system/programs/generic/supply.dm index d1200ab9d86..420dff4c596 100644 --- a/code/modules/modular_computers/file_system/programs/generic/supply.dm +++ b/code/modules/modular_computers/file_system/programs/generic/supply.dm @@ -27,7 +27,7 @@ computer.show_error(user, "Unable to contact the supply shuttle.") return FALSE var/obj/physical_router = net.router.holder - if(!ARE_Z_CONNECTED(shuttle.waypoint_station.z, physical_router.z)) + if(!LEVELS_ARE_Z_CONNECTED(shuttle.waypoint_station.z, physical_router.z)) if(loud) computer.show_error(user, "Unable to contact a supply shuttle serving your location.") return FALSE diff --git a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm index 1f346a492b7..8e0824efa13 100644 --- a/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm +++ b/code/modules/modular_computers/file_system/programs/medical/suit_sensors.dm @@ -37,7 +37,7 @@ var/datum/computer_network/network = get_network() if(!network) return FALSE - for(var/z_level in GetConnectedZlevels(network.get_router_z())) + for(var/z_level in SSmapping.get_connected_levels(network.get_router_z())) if (crew_repository.has_health_alert(z_level)) return TRUE return FALSE @@ -61,7 +61,7 @@ var/list/crewmembers = list() var/datum/computer_network/network = get_network() if(network) - for(var/z_level in GetConnectedZlevels(network.get_router_z())) + for(var/z_level in SSmapping.get_connected_levels(network.get_router_z())) crewmembers += crew_repository.health_data(z_level) data["crewmembers"] = sortTim(crewmembers, /proc/cmp_list_name_key_asc) else diff --git a/code/modules/modular_computers/networking/_network.dm b/code/modules/modular_computers/networking/_network.dm index cd4150fa4ef..0df1ce797da 100644 --- a/code/modules/modular_computers/networking/_network.dm +++ b/code/modules/modular_computers/networking/_network.dm @@ -223,7 +223,7 @@ var/d_z = get_z(D.holder) var/b_z = get_z(B.holder) - if(!ARE_Z_CONNECTED(d_z, b_z)) + if(!LEVELS_ARE_Z_CONNECTED(d_z, b_z)) continue if(d_z != b_z) // If the broadcaster is not in the same z-level as the device, the broadcast strength is halved. @@ -324,7 +324,7 @@ /proc/get_local_network_at(turf/T) for(var/id in SSnetworking.networks) var/datum/computer_network/net = SSnetworking.networks[id] - if(net.router && ARE_Z_CONNECTED(get_z(net.router.holder), get_z(T))) + if(net.router && LEVELS_ARE_Z_CONNECTED(get_z(net.router.holder), get_z(T))) return net /datum/computer_network/proc/get_mainframes_by_role(mainframe_role = MF_ROLE_FILESERVER, list/accesses) diff --git a/code/modules/modular_computers/networking/device_types/_network_device.dm b/code/modules/modular_computers/networking/device_types/_network_device.dm index fcb15bcf959..8d630461b93 100644 --- a/code/modules/modular_computers/networking/device_types/_network_device.dm +++ b/code/modules/modular_computers/networking/device_types/_network_device.dm @@ -21,7 +21,7 @@ // These variables are for the *device's* public variables and methods, if they exist. var/list/device_variables var/list/device_methods - + /datum/extension/network_device/New(datum/holder, n_id, n_key, r_type, autojoin = TRUE) ..() network_id = n_id @@ -211,7 +211,7 @@ // Overmap isn't used, a modem alone provides internet connection. if(!length(global.using_map.overmap_ids)) return TRUE - var/obj/effect/overmap/visitable/sector = global.overmap_sectors["[get_z(holder)]"] + var/obj/effect/overmap/visitable/sector = global.overmap_sectors[num2text(get_z(holder))] if(!istype(sector)) return return sector.has_internet_connection(connecting_network) @@ -274,7 +274,7 @@ var/datum/computer_network/network = get_network() if(!network) return TRUE // If not on network, always TRUE for access, as there isn't anything to access. - var/obj/M = holder + var/obj/M = get_top_holder() if(!accesses) accesses = list() return M.check_access_list(accesses) @@ -309,12 +309,12 @@ return public_variables /datum/extension/network_device/proc/get_holder_methods() - var/obj/machinery/M = holder + var/obj/machinery/M = get_top_holder() if(istype(M)) return M.public_methods?.Copy() /datum/extension/network_device/proc/get_holder_variables() - var/obj/machinery/M = holder + var/obj/machinery/M = get_top_holder() if(istype(M)) return M.public_variables?.Copy() @@ -454,6 +454,10 @@ /datum/extension/network_device/proc/get_network_URI() return "[network_tag].[network_id]" +/**Returns the object that should be handling access and command checks.*/ +/datum/extension/network_device/proc/get_top_holder() + return holder + //Subtype for passive devices, doesn't init until asked for /datum/extension/network_device/lazy base_type = /datum/extension/network_device diff --git a/code/modules/modular_computers/networking/device_types/stock_part.dm b/code/modules/modular_computers/networking/device_types/stock_part.dm index 189560b6556..c497d79657e 100644 --- a/code/modules/modular_computers/networking/device_types/stock_part.dm +++ b/code/modules/modular_computers/networking/device_types/stock_part.dm @@ -15,6 +15,9 @@ return term.get_graph() /datum/extension/network_device/stock_part/get_command_target() + return get_top_holder() + +/datum/extension/network_device/stock_part/get_top_holder() var/atom/A = holder var/obj/machinery/M = A.loc if(istype(M)) diff --git a/code/modules/multiz/basic.dm b/code/modules/multiz/basic.dm index 9df6191feca..0ffc115b250 100644 --- a/code/modules/multiz/basic.dm +++ b/code/modules/multiz/basic.dm @@ -17,37 +17,6 @@ var/global/list/z_levels = list() // Each Z-level is associated with the relevan return null return HasBelow(turf.z) ? get_step(turf, DOWN) : null -/proc/GetConnectedZlevels(z) - . = list(z) - // Traverse up and down to get the multiz stack. - for(var/level = z, HasBelow(level), level--) - . |= level-1 - for(var/level = z, HasAbove(level), level++) - . |= level+1 - - // Check stack for any laterally connected neighbors. - for(var/tz in .) - var/obj/abstract/level_data/level = global.levels_by_z["[tz]"] - if(level) - level.find_connected_levels(.) - -var/global/list/connected_z_cache = list() -/proc/AreConnectedZLevels(var/zA, var/zB) - if (zA <= 0 || zB <= 0 || zA > world.maxz || zB > world.maxz) - return FALSE - if (zA == zB) - return TRUE - if (length(global.connected_z_cache) >= zA && length(global.connected_z_cache[zA]) >= zB) - return global.connected_z_cache[zA][zB] - var/list/levels = GetConnectedZlevels(zA) - var/list/new_entry = new(world.maxz) - for (var/entry in levels) - new_entry[entry] = TRUE - if (global.connected_z_cache.len < zA) - global.connected_z_cache.len = zA - global.connected_z_cache[zA] = new_entry - return new_entry[zB] - /proc/get_zstep(ref, dir) if(dir == UP) . = GetAbove(ref) diff --git a/code/modules/multiz/level_data.dm b/code/modules/multiz/level_data.dm index e5e47b8db7a..fc85ce6c010 100644 --- a/code/modules/multiz/level_data.dm +++ b/code/modules/multiz/level_data.dm @@ -1,48 +1,63 @@ -#define ZLEVEL_STATION BITFLAG(0) -#define ZLEVEL_ADMIN BITFLAG(1) -#define ZLEVEL_CONTACT BITFLAG(2) -#define ZLEVEL_PLAYER BITFLAG(3) -#define ZLEVEL_SEALED BITFLAG(4) - -var/global/list/levels_by_z = list() -var/global/list/levels_by_id = list() - /obj/abstract/level_data + /// Name displayed on GPS when this sector is shown. + var/gps_name + /// z-level associated with this datum var/my_z + /// A unique identifier for the level, used for SSmapping looup var/level_id - var/level_name + /// The base turf of the level (space, rock, etc) var/base_turf + /// A list of ids that this level connects to horizontally. var/list/connects_to + /// Various flags indicating what this level functions as. var/level_flags + /// Temperature of standard exterior atmosphere. + var/exterior_atmos_temp = T20C + /// Gaxmix datum returned to exterior return_air. Set to assoc list of material to moles to initialize the gas datum. + var/datum/gas_mixture/exterior_atmosphere + /// Default turf for this level on creation (if created via z-level incrementing) + var/created_base_turf_type = /turf/space + /// Default area for this level on creation (as above) + var/created_base_area_type = /area/space + /// Set to false to leave dark + var/take_starlight_ambience = TRUE + /// This default makes turfs not generate light. Adjust to have exterior areas be lit. + var/ambient_light_level = 0 + /// Colour of ambient light. + var/ambient_light_color = COLOR_WHITE INITIALIZE_IMMEDIATE(/obj/abstract/level_data) -/obj/abstract/level_data/Initialize() +/obj/abstract/level_data/Initialize(var/ml, var/defer_level_setup = FALSE) . = ..() + my_z = z forceMove(null) - if(global.levels_by_z["[my_z]"]) - PRINT_STACK_TRACE("Duplicate level data created for z[z].") - global.levels_by_z["[my_z]"] = src + + if(SSmapping.levels_by_z.len < my_z) + SSmapping.levels_by_z.len = max(SSmapping.levels_by_z.len, my_z) + PRINT_STACK_TRACE("Attempting to initialize a z-level that has not incremented world.maxz.") + + // Swap out the old one but preserve any relevant references etc. + if(SSmapping.levels_by_z[my_z]) + var/obj/abstract/level_data/old_level = SSmapping.levels_by_z[my_z] + old_level.replace_with(src) + qdel(old_level) + + SSmapping.levels_by_z[my_z] = src if(!level_id) level_id = "leveldata_[my_z]_[sequential_id(/obj/abstract/level_data)]" - if(level_id in global.levels_by_id) + if(level_id in SSmapping.levels_by_id) PRINT_STACK_TRACE("Duplicate level_id '[level_id]' for z[my_z].") else - global.levels_by_id[level_id] = src + SSmapping.levels_by_id[level_id] = src - if(base_turf) - global.using_map.base_turf_by_z["[my_z]"] = base_turf + if(SSmapping.initialized && !defer_level_setup) + setup_level_data() - if(level_flags & ZLEVEL_STATION) - global.using_map.station_levels |= my_z - if(level_flags & ZLEVEL_ADMIN) - global.using_map.admin_levels |= my_z - if(level_flags & ZLEVEL_CONTACT) - global.using_map.contact_levels |= my_z - if(level_flags & ZLEVEL_PLAYER) - global.using_map.player_levels |= my_z - if(level_flags & ZLEVEL_SEALED) - global.using_map.sealed_levels |= my_z +/obj/abstract/level_data/proc/post_template_load(var/datum/map_template/template) + if(template.accessibility_weight) + SSmapping.accessible_z_levels[num2text(my_z)] = template.accessibility_weight + SSmapping.player_levels |= my_z /obj/abstract/level_data/Destroy(var/force) if(force) @@ -50,9 +65,54 @@ INITIALIZE_IMMEDIATE(/obj/abstract/level_data) return ..() return QDEL_HINT_LETMELIVE +/obj/abstract/level_data/proc/replace_with(var/obj/abstract/level_data/new_level) + new_level.copy_from(src) + +/obj/abstract/level_data/proc/copy_from(var/obj/abstract/level_data/old_level) + return + +/obj/abstract/level_data/proc/initialize_level() + var/change_turf = (created_base_turf_type && created_base_turf_type != world.turf) + var/change_area = (created_base_area_type && created_base_area_type != world.area) + if(!change_turf && !change_area) + return + var/corner_start = locate(1, 1, my_z) + var/corner_end = locate(world.maxx, world.maxy, my_z) + var/area/A = change_area ? new created_base_area_type : null + for(var/turf/T as anything in block(corner_start, corner_end)) + if(change_turf) + T = T.ChangeTurf(created_base_turf_type) + if(change_area) + ChangeArea(T, A) + +/obj/abstract/level_data/proc/setup_level_data() + + if(take_starlight_ambience) + ambient_light_level = config.exterior_ambient_light + ambient_light_color = SSskybox.background_color + if(base_turf) + SSmapping.base_turf_by_z[my_z] = base_turf + if(level_flags & ZLEVEL_STATION) + SSmapping.station_levels |= my_z + if(level_flags & ZLEVEL_ADMIN) + SSmapping.admin_levels |= my_z + if(level_flags & ZLEVEL_CONTACT) + SSmapping.contact_levels |= my_z + if(level_flags & ZLEVEL_PLAYER) + SSmapping.player_levels |= my_z + if(level_flags & ZLEVEL_SEALED) + SSmapping.sealed_levels |= my_z + + build_exterior_atmosphere() + if(config.generate_map) + build_level() + +/obj/abstract/level_data/proc/build_level() + return + /obj/abstract/level_data/proc/find_connected_levels(var/list/found) for(var/other_id in connects_to) - var/obj/abstract/level_data/neighbor = global.levels_by_id[other_id] + var/obj/abstract/level_data/neighbor = SSmapping.levels_by_id[other_id] neighbor.add_connected_levels(found) /obj/abstract/level_data/proc/add_connected_levels(var/list/found) @@ -63,24 +123,93 @@ INITIALIZE_IMMEDIATE(/obj/abstract/level_data) if(!length(connects_to)) return for(var/other_id in connects_to) - var/obj/abstract/level_data/neighbor = global.levels_by_id[other_id] + var/obj/abstract/level_data/neighbor = SSmapping.levels_by_id[other_id] neighbor.add_connected_levels(found) -// Mappable subtypes. +/obj/abstract/level_data/proc/build_exterior_atmosphere() + var/list/exterior_atmos_composition = exterior_atmosphere + exterior_atmosphere = new + if(islist(exterior_atmos_composition)) + for(var/gas in exterior_atmos_composition) + exterior_atmosphere.adjust_gas(gas, exterior_atmos_composition[gas], FALSE) + exterior_atmosphere.temperature = exterior_atmos_temp + exterior_atmosphere.update_values() + exterior_atmosphere.check_tile_graphic() + +/obj/abstract/level_data/proc/get_exterior_atmosphere() + if(isnull(exterior_atmosphere) || islist(exterior_atmosphere)) //#FIXME: remove once we get the level_data improvements in + build_exterior_atmosphere() + if(exterior_atmosphere) + var/datum/gas_mixture/gas = new + gas.copy_from(exterior_atmosphere) + return gas + +/obj/abstract/level_data/proc/get_gps_level_name() + if(!gps_name) + var/obj/effect/overmap/overmap_entity = global.overmap_sectors[num2text(z)] + if(overmap_entity?.name) + gps_name = overmap_entity.name + else if(name) + gps_name = name + else + gps_name = "Sector #[my_z]" + return gps_name + +/* + * Mappable subtypes. + */ +/obj/abstract/level_data/debug + name = "Debug Level" + /obj/abstract/level_data/main_level - name = "Main Station Level" level_flags = (ZLEVEL_STATION|ZLEVEL_CONTACT|ZLEVEL_PLAYER) /obj/abstract/level_data/admin_level - name = "Admin Level" level_flags = (ZLEVEL_ADMIN|ZLEVEL_SEALED) /obj/abstract/level_data/player_level - name = "Player Level" level_flags = (ZLEVEL_CONTACT|ZLEVEL_PLAYER) -#undef ZLEVEL_STATION -#undef ZLEVEL_ADMIN -#undef ZLEVEL_CONTACT -#undef ZLEVEL_PLAYER -#undef ZLEVEL_SEALED +/obj/abstract/level_data/space + +/obj/abstract/level_data/exoplanet + exterior_atmosphere = list( + /decl/material/gas/oxygen = MOLES_O2STANDARD, + /decl/material/gas/nitrogen = MOLES_N2STANDARD + ) + exterior_atmos_temp = T20C + level_flags = (ZLEVEL_PLAYER|ZLEVEL_SEALED) + take_starlight_ambience = FALSE // This is set up by the exoplanet object. + +/obj/abstract/level_data/unit_test + level_flags = (ZLEVEL_CONTACT|ZLEVEL_PLAYER|ZLEVEL_SEALED) + +// Used to generate mining ores etc. +/obj/abstract/level_data/mining_level + level_flags = (ZLEVEL_PLAYER|ZLEVEL_SEALED) + var/list/mining_turfs + +/obj/abstract/level_data/mining_level/Destroy() + mining_turfs = null + return ..() + +/obj/abstract/level_data/mining_level/asteroid + base_turf = /turf/simulated/floor/asteroid + +/obj/abstract/level_data/mining_level/post_template_load() + ..() + new /datum/random_map/automata/cave_system(1, 1, my_z, world.maxx, world.maxy) + new /datum/random_map/noise/ore(1, 1, my_z, world.maxx, world.maxy) + refresh_mining_turfs() + +/obj/abstract/level_data/mining_level/proc/refresh_mining_turfs() + set waitfor = FALSE + for(var/turf/simulated/floor/asteroid/mining_turf as anything in mining_turfs) + mining_turf.updateMineralOverlays() + CHECK_TICK + mining_turfs = null + +// Used as a dummy z-level for the overmap. +/obj/abstract/level_data/overmap + name = "Sensor Display" + take_starlight_ambience = FALSE // Overmap doesn't care about ambient lighting diff --git a/code/modules/multiz/zmimic/mimic_movable.dm b/code/modules/multiz/zmimic/mimic_movable.dm index 4b3c63117b7..f2f182b7ce0 100644 --- a/code/modules/multiz/zmimic/mimic_movable.dm +++ b/code/modules/multiz/zmimic/mimic_movable.dm @@ -99,6 +99,7 @@ appearance = LO layer = MIMICED_LIGHTING_LAYER plane = OPENTURF_MAX_PLANE + blend_mode = BLEND_MULTIPLY invisibility = 0 if (icon_state == LIGHTING_BASE_ICON_STATE) diff --git a/code/modules/nano/interaction/default.dm b/code/modules/nano/interaction/default.dm index 307134c5b5e..46b8190ae47 100644 --- a/code/modules/nano/interaction/default.dm +++ b/code/modules/nano/interaction/default.dm @@ -38,7 +38,7 @@ var/global/datum/topic_state/default/default_topic_state = new // unless it's on the same level as the object it's interacting with. var/turf/T = get_turf(src_object) var/turf/A = get_turf(src) - if(!A || !T || !AreConnectedZLevels(A.z, T.z)) + if(!A || !T || !SSmapping.are_connected_levels(A.z, T.z)) return STATUS_CLOSE // If an object is in view then we can interact with it diff --git a/code/modules/nano/nanoui.dm b/code/modules/nano/nanoui.dm index 15150ff5902..3c4feb60115 100644 --- a/code/modules/nano/nanoui.dm +++ b/code/modules/nano/nanoui.dm @@ -204,7 +204,7 @@ nanoui is used to open and update nano browser uis "showMap" = show_map, "mapName" = global.using_map.path, "mapZLevel" = map_z_level, - "mapZLevels" = global.using_map.map_levels, + "mapZLevels" = SSmapping.map_levels, "user" = list("name" = user.name), "currency" = cur.name, "templateFileName" = global.template_file_name diff --git a/code/modules/organs/ailments/_ailment.dm b/code/modules/organs/ailments/_ailment.dm index 0d5c501b7ec..5ba96076d48 100644 --- a/code/modules/organs/ailments/_ailment.dm +++ b/code/modules/organs/ailments/_ailment.dm @@ -99,8 +99,8 @@ stack.use(1) qdel(src) -/datum/ailment/proc/treated_by_medication(var/decl/material/reagent, var/dosage) - return treated_by_reagent_type && istype(reagent, treated_by_reagent_type) && dosage >= treated_by_reagent_dosage +/datum/ailment/proc/treated_by_medication(var/reagent_type, var/dosage) + return treated_by_reagent_type && ispath(reagent_type, treated_by_reagent_type) && dosage >= treated_by_reagent_dosage /datum/ailment/proc/was_treated_by_medication(var/datum/reagents/source, var/reagent_type) source.remove_reagent(reagent_type, treated_by_reagent_dosage) diff --git a/code/modules/organs/external/_external.dm b/code/modules/organs/external/_external.dm index d1967950625..66765d34dd2 100644 --- a/code/modules/organs/external/_external.dm +++ b/code/modules/organs/external/_external.dm @@ -29,7 +29,6 @@ var/limb_flags = ORGAN_FLAG_CAN_AMPUTATE | ORGAN_FLAG_CAN_BREAK | ORGAN_FLAG_CAN_DISLOCATE // Appearance vars. - var/icon_name = null // Icon state base. var/body_part = null // Part flag var/icon_position = 0 // Used in mob overlay layering calculations. var/model // Used when caching robolimb icons. diff --git a/code/modules/organs/external/_external_icons.dm b/code/modules/organs/external/_external_icons.dm index 2f46814770e..4caf9f045f6 100644 --- a/code/modules/organs/external/_external_icons.dm +++ b/code/modules/organs/external/_external_icons.dm @@ -18,6 +18,7 @@ var/global/list/limb_icon_cache = list() skin_colour = null hair_colour = human.hair_colour bodytype = human.bodytype + reset_status() // since we may have changed bodytype if(BP_IS_PROSTHETIC(src) && model) var/decl/prosthetics_manufacturer/franchise = GET_DECL(model) if(!(franchise && franchise.skintone)) @@ -58,12 +59,12 @@ var/global/list/limb_icon_cache = list() for(var/M in markings) var/decl/sprite_accessory/marking/mark_style = GET_DECL(M) if (mark_style.draw_target == MARKING_TARGET_SKIN) - var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M], mark_style.blend) + var/mark_color = markings[M] + var/icon/mark_s = mark_style.get_cached_marking_icon(bodytype, icon_state, mark_color) //#TODO: This probably should be added to a list that's applied on update icon, otherwise its gonna act really wonky! add_overlay(mark_s) //So when it's not on your body, it has icons mob_icon.Blend(mark_s, mark_style.layer_blend) //So when it's on your body, it has icons - icon_cache_key += "[M][markings[M]]" + icon_cache_key += "[M][mark_color]" /obj/item/organ/external/proc/update_limb_icon_file() if (BP_IS_PROSTHETIC(src)) @@ -81,7 +82,7 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/on_update_icon(var/regenerate = 0) . = ..() - icon_state = "[icon_name]" + icon_state = organ_tag icon_cache_key = "[icon_state]_[species ? species.name : "unknown"][render_alpha]" if(model) icon_cache_key += "_model_[model]" @@ -93,12 +94,12 @@ var/global/list/limb_icon_cache = list() for(var/M in markings) var/decl/sprite_accessory/marking/mark_style = GET_DECL(M) if (mark_style.draw_target == MARKING_TARGET_SKIN) - var/icon/mark_s = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]-[organ_tag]") - mark_s.Blend(markings[M], mark_style.blend) + var/mark_color = markings[M] + var/icon/mark_s = mark_style.get_cached_marking_icon(bodytype, icon_state, mark_color) //#TODO: This probably should be added to a list that's applied on update icon, otherwise its gonna act really wonky! add_overlay(mark_s) //So when it's not on your body, it has icons mob_icon.Blend(mark_s, mark_style.layer_blend) //So when it's on your body, it has icons - icon_cache_key += "[M][markings[M]]" + icon_cache_key += "[M][mark_color]" if(render_alpha < 255) mob_icon += rgb(,,,render_alpha) diff --git a/code/modules/organs/external/head.dm b/code/modules/organs/external/head.dm index b16cca2dc67..e9ab3fe9eeb 100644 --- a/code/modules/organs/external/head.dm +++ b/code/modules/organs/external/head.dm @@ -1,6 +1,5 @@ /obj/item/organ/external/head organ_tag = BP_HEAD - icon_name = "head" name = "head" slot_flags = SLOT_LOWER_BODY max_damage = 75 @@ -127,13 +126,11 @@ if(owner.f_style) var/decl/sprite_accessory/facial_hair_style = GET_DECL(owner.f_style) - if(facial_hair_style) - if(!facial_hair_style.species_allowed || (species.get_root_species_name(owner) in facial_hair_style.species_allowed)) - if(!facial_hair_style.subspecies_allowed || (species.name in facial_hair_style.subspecies_allowed)) - var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - if(owner.facial_hair_colour && facial_hair_style.do_colouration) - facial_s.Blend(owner.facial_hair_colour, facial_hair_style.blend) - res.overlays |= facial_s + if(facial_hair_style?.accessory_is_available(owner, owner.species, owner.bodytype.bodytype_flag, owner.gender)) + var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") + if(owner.facial_hair_colour && facial_hair_style.do_colouration) + facial_s.Blend(owner.facial_hair_colour, facial_hair_style.blend) + res.overlays |= facial_s if(owner.h_style) var/decl/sprite_accessory/hair/hair_style = GET_DECL(owner.h_style) @@ -141,28 +138,27 @@ if(head && (head.flags_inv & BLOCK_HEAD_HAIR)) if(!(hair_style.flags & VERY_SHORT)) hair_style = GET_DECL(/decl/sprite_accessory/hair/short) - if(hair_style) - if(!hair_style.species_allowed || (species.get_root_species_name(owner) in hair_style.species_allowed)) - if(!hair_style.subspecies_allowed || (species.name in hair_style.subspecies_allowed)) - var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") - if(hair_style.do_colouration && hair_colour) - hair_s.Blend(hair_colour, hair_style.blend) - res.overlays |= hair_s + if(hair_style?.accessory_is_available(owner, owner.species, owner.bodytype.bodytype_flag, owner.gender)) + var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") + if(hair_style.do_colouration && hair_colour) + hair_s.Blend(hair_colour, hair_style.blend) + res.overlays |= hair_s for (var/M in markings) var/decl/sprite_accessory/marking/mark_style = GET_DECL(M) if (mark_style.draw_target == MARKING_TARGET_HAIR) - var/icon/mark_icon = new/icon("icon" = mark_style.icon, "icon_state" = "[mark_style.icon_state]") + + var/mark_color if (!mark_style.do_colouration && owner.h_style) var/decl/sprite_accessory/hair/hair_style = GET_DECL(owner.h_style) if ((~hair_style.flags & HAIR_BALD) && hair_colour) - mark_icon.Blend(hair_colour, ICON_ADD) + mark_color = hair_colour else //only baseline human skin tones; others will need species vars for coloration - mark_icon.Blend(rgb(200 + skin_tone, 150 + skin_tone, 123 + skin_tone), ICON_ADD) + mark_color = rgb(200 + skin_tone, 150 + skin_tone, 123 + skin_tone) else - mark_icon.Blend(markings[M], ICON_ADD) - res.overlays |= mark_icon - icon_cache_key += "[M][markings[M]]" + mark_color = markings[M] + res.overlays |= mark_style.get_cached_marking_icon(bodytype, icon_state, mark_color) + icon_cache_key += "[M][mark_color]" return res diff --git a/code/modules/organs/external/standard.dm b/code/modules/organs/external/standard.dm index f9cd1b326c7..2903fe3c932 100644 --- a/code/modules/organs/external/standard.dm +++ b/code/modules/organs/external/standard.dm @@ -7,7 +7,6 @@ /obj/item/organ/external/chest name = "upper body" organ_tag = BP_CHEST - icon_name = "torso" max_damage = 100 min_broken_damage = 35 w_class = ITEM_SIZE_HUGE //Used for dismembering thresholds, in addition to storage. Humans are w_class 6, so it makes sense that chest is w_class 5. @@ -39,7 +38,6 @@ /obj/item/organ/external/groin name = "lower body" organ_tag = BP_GROIN - icon_name = "groin" max_damage = 100 min_broken_damage = 35 w_class = ITEM_SIZE_LARGE @@ -61,7 +59,6 @@ /obj/item/organ/external/arm organ_tag = BP_L_ARM name = "left arm" - icon_name = "l_arm" max_damage = 50 min_broken_damage = 30 w_class = ITEM_SIZE_NORMAL @@ -77,7 +74,6 @@ /obj/item/organ/external/arm/right organ_tag = BP_R_ARM name = "right arm" - icon_name = "r_arm" body_part = SLOT_ARM_RIGHT joint = "right elbow" amputation_point = "right shoulder" @@ -85,7 +81,6 @@ /obj/item/organ/external/leg organ_tag = BP_L_LEG name = "left leg" - icon_name = "l_leg" max_damage = 50 min_broken_damage = 30 w_class = ITEM_SIZE_NORMAL @@ -102,7 +97,6 @@ /obj/item/organ/external/leg/right organ_tag = BP_R_LEG name = "right leg" - icon_name = "r_leg" body_part = SLOT_LEG_RIGHT icon_position = RIGHT joint = "right knee" @@ -111,7 +105,6 @@ /obj/item/organ/external/foot organ_tag = BP_L_FOOT name = "left foot" - icon_name = "l_foot" max_damage = 30 min_broken_damage = 15 w_class = ITEM_SIZE_SMALL @@ -127,7 +120,6 @@ /obj/item/organ/external/foot/right organ_tag = BP_R_FOOT name = "right foot" - icon_name = "r_foot" body_part = SLOT_FOOT_RIGHT icon_position = RIGHT parent_organ = BP_R_LEG @@ -137,7 +129,6 @@ /obj/item/organ/external/hand organ_tag = BP_L_HAND name = "left hand" - icon_name = "l_hand" icon_position = LEFT max_damage = 30 min_broken_damage = 15 @@ -165,7 +156,6 @@ /obj/item/organ/external/hand/right organ_tag = BP_R_HAND name = "right hand" - icon_name = "r_hand" icon_position = RIGHT body_part = SLOT_HAND_RIGHT parent_organ = BP_R_ARM diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 66b66f67d4f..53498e02c15 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -214,7 +214,7 @@ if(ailment.treated_by_reagent_type) for(var/datum/reagents/source as anything in owner.get_metabolizing_reagent_holders()) for(var/reagent_type in source.reagent_volumes) - if(ailment.treated_by_medication(source.reagent_volumes[reagent_type])) + if(ailment.treated_by_medication(reagent_type, source.reagent_volumes[reagent_type])) ailment.was_treated_by_medication(source, reagent_type) return if(ailment.treated_by_chem_effect && owner.has_chemical_effect(ailment.treated_by_chem_effect, ailment.treated_by_chem_effect_strength)) diff --git a/code/modules/organs/prosthetics/_prosthetics.dm b/code/modules/organs/prosthetics/_prosthetics.dm index 9bea6ef346c..3397e7c28f7 100644 --- a/code/modules/organs/prosthetics/_prosthetics.dm +++ b/code/modules/organs/prosthetics/_prosthetics.dm @@ -58,19 +58,17 @@ // Checks the organ list for limbs meeting a predicate. Way overengineered for such a limited use // case but I can see it being expanded in the future if meat limbs or doona limbs use it. /mob/living/carbon/human/proc/get_modular_limbs(var/return_first_found = FALSE, var/validate_proc) - for(var/bp in get_external_organs()) - var/obj/item/organ/external/E = bp - if(!validate_proc || call(E, validate_proc)(src) > MODULAR_BODYPART_INVALID) - LAZYADD(., E) + for(var/obj/item/organ/external/limb as anything in get_external_organs()) + if(!validate_proc || call(limb, validate_proc)(src) > MODULAR_BODYPART_INVALID) + LAZYADD(., limb) if(return_first_found) return // Prune children so we can't remove every individual component of an entire prosthetic arm // piece by piece. Technically a circular dependency here would remove the limb entirely but // if there's a parent whose child is also its parent, there's something wrong regardless. - for(var/bp in .) - var/obj/item/organ/external/E = bp - if(length(E.children)) - . -= E.children + for(var/obj/item/organ/external/limb as anything in .) + if(length(limb.children)) + . -= limb.children // Called in robotize(), replaced() and removed() to update our modular limb verbs. /mob/living/carbon/human/proc/refresh_modular_limb_verbs() diff --git a/code/modules/organs/prosthetics/prosthetics_manufacturer.dm b/code/modules/organs/prosthetics/prosthetics_manufacturer.dm index 44180d4c4f9..8c13ba5fd82 100644 --- a/code/modules/organs/prosthetics/prosthetics_manufacturer.dm +++ b/code/modules/organs/prosthetics/prosthetics_manufacturer.dm @@ -20,6 +20,14 @@ var/modular_prosthetic_tier = MODULAR_BODYPART_INVALID // Determines how the limb behaves as a prosthetic with regards to manual attachment/detachment. var/limb_tech = "{'engineering':1,'materials':1,'magnets':1}" // What tech levels should limbs of this type use/need? +/decl/prosthetics_manufacturer/validate() + . = ..() + if(icon && (!applies_to_part || (BP_CHEST in applies_to_part))) + if(check_state_in_icon("torso", icon)) + . += "deprecated \"torso\" state present in [icon]" + if(!check_state_in_icon(BP_CHEST, icon)) + . += "[BP_CHEST] state not present in [icon]" + /decl/prosthetics_manufacturer/proc/check_can_install(var/target_slot, var/target_bodytype, var/target_species) . = istext(target_slot) if(.) diff --git a/code/modules/overmap/_defines.dm b/code/modules/overmap/_defines.dm index 43a21fb6a0e..ef385a4034b 100644 --- a/code/modules/overmap/_defines.dm +++ b/code/modules/overmap/_defines.dm @@ -22,7 +22,7 @@ name = "[x]-[y]" var/list/numbers = list() - var/datum/overmap/overmap = global.overmaps_by_z["[z]"] + var/datum/overmap/overmap = global.overmaps_by_z[num2text(z)] if(x == 1 || x == overmap.map_size_x) numbers += list("[round(y/10)]","[round(y%10)]") if(y == 1 || y == overmap.map_size_y) diff --git a/code/modules/overmap/_overmap.dm b/code/modules/overmap/_overmap.dm index db782b45375..e13d9884286 100644 --- a/code/modules/overmap/_overmap.dm +++ b/code/modules/overmap/_overmap.dm @@ -8,18 +8,18 @@ var/overmap_edge_type = /turf/unsimulated/map/edge var/overmap_turf_type = /turf/unsimulated/map - var/map_turf_type = /turf/space - var/map_area_type = /area/overmap + var/overmap_area_type = /area/overmap + var/empty_level_type = /obj/abstract/level_data/space var/list/valid_event_types + /// list used to cache empty zlevels to avoid needless z-stack bloat + var/list/cached_temporary_sectors = list() + /datum/overmap/New(var/_name) name = _name - if(!map_turf_type) - map_turf_type = world.turf - if(!name) PRINT_STACK_TRACE("Unnamed overmap datum instantiated: [type]") @@ -45,7 +45,7 @@ ..() /datum/overmap/proc/populate_overmap() - var/area/overmap/A = new map_area_type + var/area/overmap/A = new overmap_area_type for(var/square in block(locate(1, 1, assigned_z), locate(map_size_x, map_size_y, assigned_z))) var/turf/T = square if(T.x == map_size_x || T.y == map_size_y) @@ -53,21 +53,21 @@ else T = T.ChangeTurf(overmap_turf_type) ChangeArea(T, A) - + /datum/overmap/proc/generate_overmap() testing("Building overmap [name]...") - INCREMENT_WORLD_Z_SIZE + SSmapping.increment_world_z_size(/obj/abstract/level_data/overmap) assigned_z = world.maxz testing("Putting [name] on [assigned_z].") populate_overmap() - global.using_map.sealed_levels |= assigned_z + SSmapping.sealed_levels |= assigned_z . = TRUE /datum/overmap/proc/travel(var/turf/space/T, var/atom/movable/A) if (!T || !A) return - var/obj/effect/overmap/visitable/M = global.overmap_sectors["[T.z]"] + var/obj/effect/overmap/visitable/M = global.overmap_sectors[num2text(T.z)] if (!M) return @@ -122,25 +122,33 @@ source.forceMove(null) if(!QDELETED(source)) testing("Caching [M] for future use") - if(!(map_turf_type in global.cached_temporary_sectors)) - global.cached_temporary_sectors[map_turf_type] = list() - global.cached_temporary_sectors[map_turf_type] |= source + if(!length(cached_temporary_sectors[empty_level_type])) + cached_temporary_sectors[empty_level_type] = list() + cached_temporary_sectors[empty_level_type] |= source /datum/overmap/proc/create_temporary_sector(x,y) + // There's already a sector at this x/y var/obj/effect/overmap/visitable/sector/temporary/res = locate(x, y, assigned_z) if(istype(res) && !QDELETED(res)) return res - if(length(global.cached_temporary_sectors[map_turf_type])) - res = pick(global.cached_temporary_sectors[map_turf_type]) - - global.cached_temporary_sectors[map_turf_type] -= res - if(!length(global.cached_temporary_sectors[map_turf_type])) - global.cached_temporary_sectors -= map_turf_type - + // We might have a sector cached we can give them. + if(length(cached_temporary_sectors[empty_level_type])) + res = pick_n_take(cached_temporary_sectors[empty_level_type]) + if(!length(cached_temporary_sectors[empty_level_type])) + cached_temporary_sectors -= empty_level_type if(istype(res) && !QDELETED(res)) res.forceMove(locate(x, y, assigned_z)) return res - return new /obj/effect/overmap/visitable/sector/temporary(null, x, y, get_empty_zlevel(map_turf_type)) + // Create a new one. + var/obj/abstract/level_data/level = SSmapping.increment_world_z_size(empty_level_type) + return new /obj/effect/overmap/visitable/sector/temporary(null, x, y, level.my_z) + +/datum/overmap/proc/discard_temporary_sector(var/obj/effect/overmap/visitable/sector/temporary/sector) + if(!length(cached_temporary_sectors[empty_level_type])) + return + cached_temporary_sectors[empty_level_type] -= sector + if(!length(cached_temporary_sectors[empty_level_type])) + cached_temporary_sectors -= empty_level_type diff --git a/code/modules/overmap/contacts/contact_sensors.dm b/code/modules/overmap/contacts/contact_sensors.dm index c0e181b8112..fc847367b5b 100644 --- a/code/modules/overmap/contacts/contact_sensors.dm +++ b/code/modules/overmap/contacts/contact_sensors.dm @@ -69,7 +69,7 @@ // Find all sectors with a tracker on their z-level. Only works on ships when they are in space. for(var/obj/item/ship_tracker/tracker in trackers) if(tracker.enabled) - var/obj/effect/overmap/visitable/tracked_effect = global.overmap_sectors["[get_z(tracker)]"] + var/obj/effect/overmap/visitable/tracked_effect = global.overmap_sectors[num2text(get_z(tracker))] if(tracked_effect && istype(tracked_effect) && tracked_effect != linked && tracked_effect.requires_contact) objects_in_current_view[tracked_effect] = TRUE objects_in_view[tracked_effect] = 100 diff --git a/code/modules/overmap/disperser/disperser_fire.dm b/code/modules/overmap/disperser/disperser_fire.dm index fc386f4f7b4..c6fed02bafd 100644 --- a/code/modules/overmap/disperser/disperser_fire.dm +++ b/code/modules/overmap/disperser/disperser_fire.dm @@ -30,7 +30,7 @@ else A.explosion_act(1) - var/list/relevant_z = GetConnectedZlevels(start.z) + var/list/relevant_z = SSmapping.get_connected_levels(start.z) for(var/mob/M in global.player_list) var/turf/T = get_turf(M) if(!T || !(T.z in relevant_z)) diff --git a/code/modules/overmap/exoplanets/_exoplanet.dm b/code/modules/overmap/exoplanets/_exoplanet.dm index 5e1fe842c73..de817dc4ee1 100644 --- a/code/modules/overmap/exoplanets/_exoplanet.dm +++ b/code/modules/overmap/exoplanets/_exoplanet.dm @@ -7,7 +7,7 @@ var/area/planetary_area - var/lightlevel = 0 //This default makes turfs not generate light. Adjust to have exoplanents be lit. + // Day/night cycle tracking. var/night = TRUE var/daycycle //How often do we change day and night var/daycolumn = 0 //Which column's light needs to be updated next? @@ -37,7 +37,6 @@ var/list/actors = list() //things that appear in engravings on xenoarch finds. var/list/species = list() //list of names to use for simple animals instead of 'alien creature' - var/datum/gas_mixture/atmosphere var/list/breathgas = list() //list of gases animals/plants require to survive var/badgas //id of gas that is toxic to life here @@ -78,6 +77,7 @@ var/spawn_weight = 100 // Decides how often this planet will be picked for generation + var/list/zlevels = list() var/obj/abstract/weather_system/weather_system = /decl/state/weather/calm // Initial weather is passed to the system as its default state. /obj/effect/overmap/visitable/sector/exoplanet/proc/get_strata() @@ -93,10 +93,10 @@ if(length(possible_strata)) crust_strata = pick(possible_strata) -/obj/effect/overmap/visitable/sector/exoplanet/Initialize(mapload, z_level) - if(global.overmaps_by_name[overmap_id]) - forceMove(locate(1, 1, z_level)) - return ..() +// /obj/effect/overmap/visitable/sector/exoplanet/Initialize(mapload, z_level) +// if(global.overmaps_by_name[overmap_id]) +// forceMove(locate(1, 1, z_level)) +// return ..() /obj/effect/overmap/visitable/sector/exoplanet/proc/build_level(max_x, max_y) @@ -130,7 +130,8 @@ for(var/datum/exoplanet_theme/T in themes) T.adjust_atmosphere(src) select_strata() - generate_flora(atmosphere?.temperature || T20C) + + generate_flora() generate_map() generate_landing(2) generate_features() @@ -172,9 +173,10 @@ update_daynight() /obj/effect/overmap/visitable/sector/exoplanet/proc/update_daynight() + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[map_z[1]] var/light = 0.1 if(!night) - light = lightlevel + light = level_data.ambient_light_level for(var/turf/exterior/T in block(locate(daycolumn,1,min(map_z)),locate(daycolumn,maxy,max(map_z)))) if (light) T.set_ambient_light(COLOR_WHITE, light) @@ -219,7 +221,8 @@ spawned_features = seed_ruins(map_z, features_budget, /area/exoplanet, possible_features, maxx, maxy) /obj/effect/overmap/visitable/sector/exoplanet/proc/generate_daycycle() - if(lightlevel) + var/obj/abstract/level_data/level_data = zlevels[1] + if(level_data.ambient_light_level) night = FALSE //we start with a day if we have light. //When you set daycycle ensure that the minimum is larger than [maxx * daycycle_column_delay]. @@ -230,7 +233,8 @@ /obj/effect/overmap/visitable/sector/exoplanet/proc/generate_landing() var/places = list() var/attempts = 10*landing_points_to_place - var/border_padding = shuttle_size / 2 + 3 + var/landing_radius = CEILING(shuttle_size / 2) + var/border_padding = landing_radius + 3 while(landing_points_to_place) attempts-- @@ -241,7 +245,7 @@ if(attempts >= 0) // While we have the patience, try to find better spawn points. If out of patience, put them down wherever, so long as there are no repeats. var/valid = 1 - var/list/block_to_check = block(locate(T.x - shuttle_size / 2, T.y - shuttle_size / 2, T.z), locate(T.x + shuttle_size / 2, T.y + shuttle_size / 2, T.z)) + var/list/block_to_check = block(locate(T.x - landing_radius, T.y - landing_radius, T.z), locate(T.x + landing_radius, T.y + landing_radius, T.z)) for(var/turf/check in block_to_check) if(!istype(get_area(check), /area/exoplanet) || check.turf_flags & TURF_FLAG_NORUINS) valid = 0 @@ -255,11 +259,13 @@ landing_points_to_place-- places += T - new /obj/effect/shuttle_landmark/automatic/clearing(T) + new /obj/effect/shuttle_landmark/automatic/clearing(T, landing_radius) /obj/effect/overmap/visitable/sector/exoplanet/get_scan_data(mob/user) . = ..() var/list/extra_data = list("
") + var/obj/abstract/level_data/level_data = zlevels[1] + var/datum/gas_mixture/atmosphere = level_data.exterior_atmosphere if(atmosphere) if(user.skill_check(SKILL_SCIENCE, SKILL_EXPERT) || user.skill_check(SKILL_ATMOS, SKILL_EXPERT)) var/list/gases = list() @@ -297,5 +303,5 @@ name = "\improper Planetary surface" ambience = list('sound/effects/wind/wind_2_1.ogg','sound/effects/wind/wind_2_2.ogg','sound/effects/wind/wind_3_1.ogg','sound/effects/wind/wind_4_1.ogg','sound/effects/wind/wind_4_2.ogg','sound/effects/wind/wind_5_1.ogg') always_unpowered = 1 - area_flags = AREA_FLAG_IS_BACKGROUND | AREA_FLAG_EXTERNAL + area_flags = AREA_FLAG_IS_BACKGROUND | AREA_FLAG_EXTERNAL | AREA_FLAG_HIDE_FROM_HOLOMAP is_outside = OUTSIDE_YES diff --git a/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm b/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm index 17e75d2b48c..1e715e9cc3a 100644 --- a/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm +++ b/code/modules/overmap/exoplanets/exoplanet_atmosphere.dm @@ -1,5 +1,6 @@ /obj/effect/overmap/visitable/sector/exoplanet/proc/generate_atmosphere() - atmosphere = new + + var/target_temp = get_target_temperature() //Make sure temperature can't damage people on casual planets @@ -7,13 +8,15 @@ var/decl/species/S = get_species_by_key(global.using_map.default_species) target_temp = clamp(target_temp, S.cold_level_1 + rand(1,5), S.heat_level_1 - rand(1,5)) - atmosphere.temperature = target_temp - //Skip fun gas gen for perfect terran worlds if(habitability_class == HABITABILITY_IDEAL) - atmosphere.adjust_gas(/decl/material/gas/oxygen, MOLES_O2STANDARD, FALSE) - atmosphere.adjust_gas(/decl/material/gas/nitrogen, MOLES_N2STANDARD) - atmosphere.check_tile_graphic() + for(var/obj/abstract/level_data/level_data in zlevels) + level_data.exterior_atmos_temp = target_temp + level_data.exterior_atmosphere = list( + /decl/material/gas/oxygen = MOLES_O2STANDARD, + /decl/material/gas/nitrogen = MOLES_N2STANDARD + ) + level_data.setup_level_data() return var/total_moles = MOLES_CELLSTANDARD @@ -82,12 +85,15 @@ // Add all gasses, adjusted for target temperature and pressure var/target_pressure = get_target_pressure() - var/target_moles = target_pressure * CELL_VOLUME / (atmosphere.temperature * R_IDEAL_GAS_EQUATION) + var/target_moles = target_pressure * CELL_VOLUME / (target_temp * R_IDEAL_GAS_EQUATION) + var/list/set_gasmix = list() for(var/g in gas_list) var/adjusted_moles = gas_list[g] * target_moles / MOLES_CELLSTANDARD - atmosphere.adjust_gas(g, adjusted_moles, FALSE) - atmosphere.update_values() - atmosphere.check_tile_graphic() + set_gasmix[g] = adjusted_moles + for(var/obj/abstract/level_data/level_data in zlevels) + level_data.exterior_atmos_temp = target_temp + level_data.exterior_atmosphere = set_gasmix.Copy() + level_data.setup_level_data() //List of gases that will be always present. Amounts are given assuming total of MOLES_CELLSTANDARD in atmosphere /obj/effect/overmap/visitable/sector/exoplanet/proc/get_mandatory_gasses() diff --git a/code/modules/overmap/exoplanets/exoplanet_fauna.dm b/code/modules/overmap/exoplanets/exoplanet_fauna.dm index 553b80473ac..2ede9f2f265 100644 --- a/code/modules/overmap/exoplanets/exoplanet_fauna.dm +++ b/code/modules/overmap/exoplanets/exoplanet_fauna.dm @@ -29,11 +29,12 @@ A.SetName("alien creature") A.real_name = "alien creature" A.verbs |= /mob/living/simple_animal/proc/name_species - if(atmosphere) + var/obj/abstract/level_data/level_data = zlevels[1] + if(level_data.exterior_atmosphere) //Set up gases for living things var/list/all_gasses = decls_repository.get_decl_paths_of_subtype(/decl/material/gas) if(!LAZYLEN(breathgas)) - var/list/goodgases = all_gasses.Copy() + var/list/goodgases = all_gasses.Copy() var/gasnum = min(rand(1,3), goodgases.len) for(var/i = 1 to gasnum) var/gas = pick(goodgases) @@ -41,11 +42,11 @@ goodgases -= gas if(!badgas) var/list/badgases = all_gasses.Copy() - badgases -= atmosphere.gas + badgases -= level_data.exterior_atmosphere.gas badgas = pick(badgases) - A.minbodytemp = atmosphere.temperature - 20 - A.maxbodytemp = atmosphere.temperature + 30 + A.minbodytemp = level_data.exterior_atmosphere.temperature - 20 + A.maxbodytemp = level_data.exterior_atmosphere.temperature + 30 A.bodytemperature = (A.maxbodytemp+A.minbodytemp)/2 if(A.min_gas) A.min_gas = breathgas.Copy() @@ -84,10 +85,10 @@ /obj/abstract/landmark/exoplanet_spawn/LateInitialize() . = ..() - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(z)] if(istype(E)) do_spawn(E) - + /obj/abstract/landmark/exoplanet_spawn/proc/do_spawn(var/obj/effect/overmap/visitable/sector/exoplanet/planet) if(LAZYLEN(planet.fauna_types)) var/beastie = pick(planet.fauna_types) diff --git a/code/modules/overmap/exoplanets/exoplanet_flora.dm b/code/modules/overmap/exoplanets/exoplanet_flora.dm index 7d07bd6dfb0..2b5bed796ad 100644 --- a/code/modules/overmap/exoplanets/exoplanet_flora.dm +++ b/code/modules/overmap/exoplanets/exoplanet_flora.dm @@ -1,5 +1,10 @@ //Generates initial generic alien plants -/obj/effect/overmap/visitable/sector/exoplanet/proc/generate_flora(var/temperature) +/obj/effect/overmap/visitable/sector/exoplanet/proc/generate_flora() + + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[map_z[1]] + var/datum/gas_mixture/atmosphere = level_data?.get_exterior_atmosphere() + var/temperature = atmosphere?.temperature || T20C + for(var/i = 1 to flora_diversity) var/datum/seed/S = new() S.randomize(temperature) @@ -38,13 +43,19 @@ //Adapts seeds to this planet's atmopshere. Any special planet-speicific adaptations should go here too /obj/effect/overmap/visitable/sector/exoplanet/proc/adapt_seed(var/datum/seed/S) - S.set_trait(TRAIT_IDEAL_HEAT, atmosphere.temperature + rand(-5,5),800,70) + + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[map_z[1]] + var/datum/gas_mixture/atmosphere = level_data?.get_exterior_atmosphere() + var/atmosphere_temperature = atmosphere?.temperature || T20C + var/atmosphere_pressure = atmosphere?.return_pressure() || 0 + + S.set_trait(TRAIT_IDEAL_HEAT, atmosphere_temperature + rand(-5,5),800,70) S.set_trait(TRAIT_HEAT_TOLERANCE, S.get_trait(TRAIT_HEAT_TOLERANCE) + rand(-5,5),800,70) - S.set_trait(TRAIT_LOWKPA_TOLERANCE, atmosphere.return_pressure() + rand(-5,-50),80,0) - S.set_trait(TRAIT_HIGHKPA_TOLERANCE, atmosphere.return_pressure() + rand(5,50),500,110) + S.set_trait(TRAIT_LOWKPA_TOLERANCE, atmosphere_pressure + rand(-5,-50),80,0) + S.set_trait(TRAIT_HIGHKPA_TOLERANCE, atmosphere_pressure + rand(5,50),500,110) if(S.exude_gasses) S.exude_gasses -= badgas - if(atmosphere && length(atmosphere.gas)) + if(length(atmosphere?.gas)) if(S.consume_gasses) S.consume_gasses = list(pick(atmosphere.gas)) // ensure that if the plant consumes a gas, the atmosphere will have it for(var/g in atmosphere.gas) @@ -52,7 +63,7 @@ if(mat.gas_flags & XGM_GAS_CONTAMINANT) S.set_trait(TRAIT_TOXINS_TOLERANCE, rand(10,15)) if(prob(50)) - var/chem_type = SSmaterials.get_random_chem(TRUE, atmosphere ? atmosphere.temperature : T0C) + var/chem_type = SSmaterials.get_random_chem(TRUE, atmosphere?.temperature || T0C) if(chem_type) var/nutriment = S.chems[/decl/material/liquid/nutriment] S.chems.Cut() diff --git a/code/modules/overmap/exoplanets/exoplanet_skybox.dm b/code/modules/overmap/exoplanets/exoplanet_skybox.dm index 839ae2910c1..cd4f02c22b2 100644 --- a/code/modules/overmap/exoplanets/exoplanet_skybox.dm +++ b/code/modules/overmap/exoplanets/exoplanet_skybox.dm @@ -13,15 +13,17 @@ for(var/datum/exoplanet_theme/theme in themes) skybox_image.overlays += theme.get_planet_image_extra() - + if(water_color) //TODO: move water levels out of randommap into exoplanet var/image/water = image('icons/skybox/planet.dmi', "water") water.color = water_color water.appearance_flags = PIXEL_SCALE water.transform = water.transform.Turn(rand(0,360)) skybox_image.overlays += water - - if(atmosphere && atmosphere.return_pressure() > SOUND_MINIMUM_PRESSURE) + + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[map_z[1]] + var/datum/gas_mixture/atmosphere = level_data?.get_exterior_atmosphere() + if(atmosphere?.return_pressure() > SOUND_MINIMUM_PRESSURE) var/atmo_color = get_atmosphere_color() if(!atmo_color) @@ -37,7 +39,7 @@ var/image/atmo = image('icons/skybox/planet.dmi', "atmoring") skybox_image.underlays += atmo - + var/image/shadow = image('icons/skybox/planet.dmi', "shadow") shadow.blend_mode = BLEND_MULTIPLY skybox_image.overlays += shadow @@ -62,8 +64,10 @@ /obj/effect/overmap/visitable/sector/exoplanet/proc/get_atmosphere_color() var/list/colors = list() - for(var/g in atmosphere.gas) - var/decl/material/mat = GET_DECL(g) - colors += mat.color + for(var/Z in map_z) + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[Z] + for(var/g in level_data.exterior_atmosphere?.gas) + var/decl/material/mat = GET_DECL(g) + colors += mat.color if(colors.len) return MixColors(colors) diff --git a/code/modules/overmap/exoplanets/planet_themes/radiation_bombing.dm b/code/modules/overmap/exoplanets/planet_themes/radiation_bombing.dm index 88d2ffe614a..3ac6e115cbf 100644 --- a/code/modules/overmap/exoplanets/planet_themes/radiation_bombing.dm +++ b/code/modules/overmap/exoplanets/planet_themes/radiation_bombing.dm @@ -2,26 +2,30 @@ name = "Radiation Bombardment" /datum/exoplanet_theme/radiation_bombing/adjust_atmosphere(obj/effect/overmap/visitable/sector/exoplanet/E) - if(E.atmosphere) - E.atmosphere.temperature += rand(20, 100) - E.atmosphere.update_values() + var/add_temp = rand(20, 100) + for(var/obj/abstract/level_data/level_data in E.zlevels) + level_data.exterior_atmos_temp += add_temp + if(level_data.exterior_atmosphere) + level_data.exterior_atmosphere.temperature = level_data.exterior_atmos_temp + level_data.exterior_atmosphere.update_values() /datum/exoplanet_theme/radiation_bombing/get_sensor_data() return "Hotspots of radiation detected." -/datum/exoplanet_theme/radiation_bombing/after_map_generation(obj/effect/overmap/visitable/sector/exoplanet/E) +/datum/exoplanet_theme/radiation_bombing/after_map_generation(obj/effect/overmap/visitable/sector/exoplanet/our_exoplanet) var/radiation_power = rand(10, 37.5) - var/num_craters = round(min(0.5, rand()) * 0.02 * E.maxx * E.maxy) + var/num_craters = round(min(0.5, rand()) * 0.02 * our_exoplanet.maxx * our_exoplanet.maxy) + var/area_turfs = get_area_turfs(our_exoplanet.planetary_area, list(/proc/not_turf_contains_dense_objects)) for(var/i = 1 to num_craters) - var/turf/simulated/T = pick_area_turf(E.planetary_area, list(/proc/not_turf_contains_dense_objects)) - if(!T) // ran out of space somehow + var/turf/simulated/crater_center = pick_n_take(area_turfs) + if(!crater_center) // ran out of space somehow return - new/obj/structure/rubble/war(T) - var/datum/radiation_source/S = new(T, radiation_power, FALSE) - S.range = 4 - SSradiation.add_source(S) - T.set_light(2, 0.4, PIPE_COLOR_GREEN) - for(var/turf/exterior/crater in circlerangeturfs(T, 3)) + new/obj/structure/rubble/war(crater_center) + var/datum/radiation_source/source = new(crater_center, radiation_power, FALSE) + source.range = 4 + SSradiation.add_source(source) + crater_center.set_light(2, 0.4, PIPE_COLOR_GREEN) + for(var/turf/exterior/crater in circlerangeturfs(crater_center, 3)) if(prob(10)) new/obj/item/remains/xeno/charred(crater) crater.melt() diff --git a/code/modules/overmap/exoplanets/planet_types/barren.dm b/code/modules/overmap/exoplanets/planet_types/barren.dm index 650e217d282..4b2a172df72 100644 --- a/code/modules/overmap/exoplanets/planet_types/barren.dm +++ b/code/modules/overmap/exoplanets/planet_types/barren.dm @@ -16,7 +16,7 @@ has_trees = FALSE spawn_weight = 50 // These are pretty boring -/obj/effect/overmap/visitable/sector/exoplanet/barren/generate_flora(var/temperature) +/obj/effect/overmap/visitable/sector/exoplanet/barren/generate_flora() if(prob(10)) flora_diversity = 1 ..() diff --git a/code/modules/overmap/exoplanets/planet_types/chlorine.dm b/code/modules/overmap/exoplanets/planet_types/chlorine.dm index 242d9e9bbbb..958e6bfa843 100644 --- a/code/modules/overmap/exoplanets/planet_types/chlorine.dm +++ b/code/modules/overmap/exoplanets/planet_types/chlorine.dm @@ -23,10 +23,11 @@ return "#e5f2bd" /obj/effect/overmap/visitable/sector/exoplanet/chlorine/generate_map() + var/obj/abstract/level_data/level_data = zlevels[1] if(prob(50)) - lightlevel = rand(7,10)/10 //It could be night. + level_data.ambient_light_level = rand(7,10)/10 //It could be night. else - lightlevel = 0.1 + level_data.ambient_light_level = 0.1 ..() /obj/effect/overmap/visitable/sector/exoplanet/chlorine/get_target_temperature() diff --git a/code/modules/overmap/exoplanets/planet_types/desert.dm b/code/modules/overmap/exoplanets/planet_types/desert.dm index 270c49adca3..63fab9ef8a1 100644 --- a/code/modules/overmap/exoplanets/planet_types/desert.dm +++ b/code/modules/overmap/exoplanets/planet_types/desert.dm @@ -18,7 +18,8 @@ /obj/effect/overmap/visitable/sector/exoplanet/desert/generate_map() if(prob(70)) - lightlevel = rand(5,10)/10 //deserts are usually :lit: + var/obj/abstract/level_data/level_data = zlevels[1] + level_data.ambient_light_level = rand(5,10)/10 //deserts are usually :lit: ..() /obj/effect/overmap/visitable/sector/exoplanet/desert/get_target_temperature() diff --git a/code/modules/overmap/exoplanets/planet_types/grass.dm b/code/modules/overmap/exoplanets/planet_types/grass.dm index 26eaf9097eb..cef84c64384 100644 --- a/code/modules/overmap/exoplanets/planet_types/grass.dm +++ b/code/modules/overmap/exoplanets/planet_types/grass.dm @@ -12,7 +12,8 @@ /obj/effect/overmap/visitable/sector/exoplanet/grass/generate_map() if(prob(40)) - lightlevel = rand(1,7)/10 //give a chance of twilight jungle + var/obj/abstract/level_data/level_data = zlevels[1] + level_data.ambient_light_level = rand(1,7)/10 //give a chance of twilight jungle ..() /obj/effect/overmap/visitable/sector/exoplanet/grass/get_target_temperature() diff --git a/code/modules/overmap/exoplanets/planet_types/meat.dm b/code/modules/overmap/exoplanets/planet_types/meat.dm index b9c19313ef6..d2043b862b9 100644 --- a/code/modules/overmap/exoplanets/planet_types/meat.dm +++ b/code/modules/overmap/exoplanets/planet_types/meat.dm @@ -19,7 +19,8 @@ spawn_weight = 10 // meat /obj/effect/overmap/visitable/sector/exoplanet/meat/generate_map() - lightlevel = rand(1,7)/10 + var/obj/abstract/level_data/level_data = zlevels[1] + level_data.ambient_light_level = rand(1,7)/10 ..() /obj/effect/overmap/visitable/sector/exoplanet/meat/get_target_temperature() diff --git a/code/modules/overmap/exoplanets/planet_types/shrouded.dm b/code/modules/overmap/exoplanets/planet_types/shrouded.dm index a72e4f8fe7b..2e5bb86845d 100644 --- a/code/modules/overmap/exoplanets/planet_types/shrouded.dm +++ b/code/modules/overmap/exoplanets/planet_types/shrouded.dm @@ -7,7 +7,6 @@ plant_colors = list("#3c5434", "#2f6655", "#0e703f", "#495139", "#394c66", "#1a3b77", "#3e3166", "#52457c", "#402d56", "#580d6d") map_generators = list(/datum/random_map/noise/exoplanet/shrouded, /datum/random_map/noise/ore/poor) ruin_tags_blacklist = RUIN_HABITAT - lightlevel = -0.15 surface_color = "#3e3960" water_color = "#2b2840" flora_diversity = 3 @@ -19,6 +18,12 @@ ) spawn_weight = 50 +// TODO check if ambient lighting handles negatives +/obj/effect/overmap/visitable/sector/exoplanet/meat/generate_map() + var/obj/abstract/level_data/level_data = zlevels[1] + level_data.ambient_light_level = -0.15 + ..() + /obj/effect/overmap/visitable/sector/exoplanet/shrouded/get_target_temperature() return T20C - rand(10, 20) diff --git a/code/modules/overmap/exoplanets/random_map.dm b/code/modules/overmap/exoplanets/random_map.dm index 07d7875d5a4..d95a3c36c78 100644 --- a/code/modules/overmap/exoplanets/random_map.dm +++ b/code/modules/overmap/exoplanets/random_map.dm @@ -37,7 +37,7 @@ plantcolors = _plant_colors ..() - global.using_map.base_turf_by_z[num2text(tz)] = land_type + SSmapping.base_turf_by_z[tz] = land_type /datum/random_map/noise/exoplanet/get_map_char(var/value) if(water_type && noise2value(value) < water_level) @@ -117,4 +117,4 @@ var/neighbors = get_neighbors(x, y, TRUE) for(var/cell in neighbors) if(noise2value(map[cell]) >= water_level) - map[cell] = COAST_VALUE + map[cell] = COAST_VALUE diff --git a/code/modules/overmap/exoplanets/turfs.dm b/code/modules/overmap/exoplanets/turfs.dm index 9f7038c085e..5a478dc51e4 100644 --- a/code/modules/overmap/exoplanets/turfs.dm +++ b/code/modules/overmap/exoplanets/turfs.dm @@ -14,7 +14,7 @@ /turf/exterior/planet_edge/Initialize() . = ..() - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(z)] if(!istype(E)) return mimicx = x @@ -38,7 +38,7 @@ /turf/exterior/planet_edge/Bumped(atom/movable/A) . = ..() - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(z)] if(!istype(E)) return if(E.planetary_area && istype(loc, world.area)) diff --git a/code/modules/overmap/ftl_shunt/computer.dm b/code/modules/overmap/ftl_shunt/computer.dm index 38810f48a89..14bc2933ab0 100644 --- a/code/modules/overmap/ftl_shunt/computer.dm +++ b/code/modules/overmap/ftl_shunt/computer.dm @@ -24,7 +24,7 @@ /obj/machinery/computer/ship/ftl/proc/recalc_cost() if(!linked_core) return INFINITY - var/obj/effect/overmap/visitable/sector = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector = global.overmap_sectors[num2text(z)] if(!istype(sector)) return INFINITY var/jump_dist = get_dist(linked, locate(linked_core.shunt_x, linked_core.shunt_y, sector.z)) @@ -35,7 +35,7 @@ if(!linked_core) return INFINITY - var/obj/effect/overmap/visitable/sector = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector = global.overmap_sectors[num2text(z)] if(!istype(sector)) return INFINITY diff --git a/code/modules/overmap/ftl_shunt/core.dm b/code/modules/overmap/ftl_shunt/core.dm index 5517c44361f..ce82708f3cc 100644 --- a/code/modules/overmap/ftl_shunt/core.dm +++ b/code/modules/overmap/ftl_shunt/core.dm @@ -238,7 +238,7 @@ return FTL_START_CONFIRMED /obj/machinery/ftl_shunt/core/proc/calculate_jump_requirements() - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(z)] if(O) var/shunt_distance var/vessel_mass = ftl_computer.linked.get_vessel_mass() @@ -275,7 +275,7 @@ cancel_shunt() return //If for some reason we don't have fuel now, just return. - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(z)] if(O) var/destination = locate(shunt_x, shunt_y, O.z) var/jumpdist = get_dist(get_turf(ftl_computer.linked), destination) diff --git a/code/modules/overmap/internet/internet_circuitboards.dm b/code/modules/overmap/internet/internet_circuitboards.dm index 90c0d30c419..5649be365d9 100644 --- a/code/modules/overmap/internet/internet_circuitboards.dm +++ b/code/modules/overmap/internet/internet_circuitboards.dm @@ -8,6 +8,7 @@ /obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/smes_coil = 1 ) + additional_spawn_components = null /obj/item/stock_parts/circuitboard/internet_uplink_computer name = "circuitboard (PLEXUS uplink controller)" @@ -24,11 +25,7 @@ /obj/item/stock_parts/capacitor = 2, /obj/item/stock_parts/micro_laser = 1 ) - additional_spawn_components = list( - /obj/item/stock_parts/console_screen = 1, - /obj/item/stock_parts/keyboard = 1, - /obj/item/stock_parts/power/terminal = 1 - ) + additional_spawn_components = null /datum/fabricator_recipe/imprinter/circuit/internet_uplink path = /obj/item/stock_parts/circuitboard/internet_uplink diff --git a/code/modules/overmap/internet/internet_repeater.dm b/code/modules/overmap/internet/internet_repeater.dm index 4baa952bf80..2ebeee4f6f8 100644 --- a/code/modules/overmap/internet/internet_repeater.dm +++ b/code/modules/overmap/internet/internet_repeater.dm @@ -7,11 +7,16 @@ var/global/list/internet_repeaters = list() icon_state = "bus" density = 1 anchored = 1 - stat_immune = 0 use_power = POWER_USE_ACTIVE idle_power_usage = 50 active_power_usage = 5000 construct_state = /decl/machine_construction/default/panel_closed + stock_part_presets = list( + /decl/stock_part_preset/terminal_setup, + ) + uncreated_component_parts = list( + /obj/item/stock_parts/power/terminal, + ) /obj/machinery/internet_repeater/Initialize() . = ..() @@ -46,7 +51,7 @@ var/global/list/internet_repeaters = list() var/data = list() data["powered"] = (use_power == POWER_USE_ACTIVE) - var/obj/effect/overmap/visitable/sector = global.overmap_sectors["[get_z(src)]"] + var/obj/effect/overmap/visitable/sector = global.overmap_sectors[num2text(get_z(src))] if(sector) var/list/internet_connections = sector.get_internet_connections() diff --git a/code/modules/overmap/internet/internet_uplink.dm b/code/modules/overmap/internet/internet_uplink.dm index 15f6d224077..6fec1014048 100644 --- a/code/modules/overmap/internet/internet_uplink.dm +++ b/code/modules/overmap/internet/internet_uplink.dm @@ -8,11 +8,13 @@ var/global/list/internet_uplinks = list() icon_state = "unpowered" density = 1 anchored = 1 - construct_state = /decl/machine_construction/default/panel_closed - uncreated_component_parts = list(/obj/item/stock_parts/power/terminal) - stock_part_presets = list(/decl/stock_part_preset/terminal_setup) - base_type = /obj/machinery/internet_uplink + uncreated_component_parts = list( + /obj/item/stock_parts/power/terminal, + ) + stock_part_presets = list( + /decl/stock_part_preset/terminal_setup, + ) var/overmap_range = BASE_INTERNET_RANGE var/max_overmap_range = BASE_INTERNET_RANGE @@ -163,7 +165,6 @@ var/global/list/internet_uplinks = list() active_power_usage = 500 base_type = /obj/machinery/computer/internet_uplink var/initial_id_tag = "plexus" - var/current_uplink = 1 /obj/machinery/computer/internet_uplink/Initialize() diff --git a/code/modules/overmap/overmap_object.dm b/code/modules/overmap/overmap_object.dm index 3d55e54f533..322b48ddebd 100644 --- a/code/modules/overmap/overmap_object.dm +++ b/code/modules/overmap/overmap_object.dm @@ -47,6 +47,7 @@ var/global/list/overmap_unknown_ids = list() . = ..() if(!length(global.using_map.overmap_ids)) + log_debug("Deleting [src] since there is no overmap set for the current map..") return INITIALIZE_HINT_QDEL if(requires_contact) diff --git a/code/modules/overmap/overmap_shuttle.dm b/code/modules/overmap/overmap_shuttle.dm index a10d5a3b0dd..3a9b7c976b9 100644 --- a/code/modules/overmap/overmap_shuttle.dm +++ b/code/modules/overmap/overmap_shuttle.dm @@ -1,4 +1,4 @@ -#define waypoint_sector(waypoint) global.overmap_sectors["[waypoint.z]"] +#define waypoint_sector(waypoint) global.overmap_sectors[num2text(waypoint.z)] /datum/shuttle/autodock/overmap warmup_time = 10 diff --git a/code/modules/overmap/radio_beacon.dm b/code/modules/overmap/radio_beacon.dm index b1ac1a47ef8..4d35f60124f 100644 --- a/code/modules/overmap/radio_beacon.dm +++ b/code/modules/overmap/radio_beacon.dm @@ -39,14 +39,14 @@ material = /decl/material/solid/metal/steel matter = list(/decl/material/solid/metal/silver = MATTER_AMOUNT_TRACE, /decl/material/solid/metal/gold = MATTER_AMOUNT_REINFORCEMENT) - var/obj/effect/overmap/radio/signal + var/obj/effect/overmap/radio/signal /obj/item/radio_beacon/attack_self(mob/user) if(signal) to_chat(user, SPAN_NOTICE("You deactivate \the [src], cutting short it's radio broadcast.")) QDEL_NULL(signal) return - var/obj/effect/overmap/visitable/O = global.overmap_sectors["[get_z(src)]"] + var/obj/effect/overmap/visitable/O = global.overmap_sectors[num2text(get_z(src))] if(!O) to_chat(user, SPAN_WARNING("You cannot deploy \the [src] here.")) return @@ -55,11 +55,10 @@ return signal = new() - + signal.message = message signal.set_origin(O) /obj/item/radio_beacon/Destroy() QDEL_NULL(signal) . = ..() - \ No newline at end of file diff --git a/code/modules/overmap/sectors.dm b/code/modules/overmap/sectors.dm index 87f5ae4fcef..3a72ba2b402 100644 --- a/code/modules/overmap/sectors.dm +++ b/code/modules/overmap/sectors.dm @@ -125,21 +125,21 @@ var/global/list/known_overmap_sectors return get_filtered_areas(list(/proc/area_belongs_to_zlevels = map_z)) /obj/effect/overmap/visitable/proc/find_z_levels() - map_z = GetConnectedZlevels(z) + map_z = SSmapping.get_connected_levels(z) /obj/effect/overmap/visitable/proc/register_z_levels() - var/datum/overmap/overmap = global.overmaps_by_z["[z]"] + var/datum/overmap/overmap = global.overmaps_by_z[num2text(z)] if(istype(overmap)) for(var/zlevel in map_z) - global.overmap_sectors["[zlevel]"] = src + global.overmap_sectors[num2text(zlevel)] = src - global.using_map.player_levels |= map_z + SSmapping.player_levels |= map_z if(!(sector_flags & OVERMAP_SECTOR_IN_SPACE)) - global.using_map.sealed_levels |= map_z + SSmapping.sealed_levels |= map_z if(sector_flags & OVERMAP_SECTOR_BASE) - global.using_map.station_levels |= map_z - global.using_map.contact_levels |= map_z - global.using_map.map_levels |= map_z + SSmapping.station_levels |= map_z + SSmapping.contact_levels |= map_z + SSmapping.map_levels |= map_z //Helper for init. /obj/effect/overmap/visitable/proc/check_ownership(obj/object) @@ -149,7 +149,7 @@ var/global/list/known_overmap_sectors // Returns the /obj/effect/overmap/visitable to which the atom belongs based on localtion, or null /atom/proc/get_owning_overmap_object() var/z = get_z(src) - var/initial_sector = global.overmap_sectors["[z]"] + var/initial_sector = global.overmap_sectors[num2text(z)] if(!initial_sector) return diff --git a/code/modules/overmap/ships/computers/sensors.dm b/code/modules/overmap/ships/computers/sensors.dm index d1809a4d2d5..346db96892a 100644 --- a/code/modules/overmap/ships/computers/sensors.dm +++ b/code/modules/overmap/ships/computers/sensors.dm @@ -155,7 +155,7 @@ if (href_list["print"]) playsound(loc, "sound/machines/dotprinter.ogg", 30, 1) - new/obj/item/paper/(get_turf(src), last_scan["data"], "paper (Sensor Scan - [last_scan["name"]])") + new/obj/item/paper/(get_turf(src), null, last_scan["data"], "paper (Sensor Scan - [last_scan["name"]])") return TOPIC_HANDLED /obj/machinery/shipsensors @@ -163,7 +163,8 @@ desc = "Long range gravity scanner with various other sensors, used to detect irregularities in surrounding space. Can only run in vacuum to protect delicate quantum BS elements." icon = 'icons/obj/machines/ship_sensors.dmi' icon_state = "sensors" - anchored = 1 + anchored = TRUE + density = TRUE var/critical_heat = 50 // sparks and takes damage when active & above this heat var/heat_reduction = 1.5 // mitigates this much heat per tick var/heat = 0 @@ -175,6 +176,7 @@ stat_immune = NOSCREEN | NOINPUT frame_type = /obj/machinery/constructable_frame base_type = /obj/machinery/shipsensors + stock_part_presets = list(/decl/stock_part_preset/terminal_connect) /obj/machinery/shipsensors/proc/in_vacuum() var/turf/T=get_turf(src) diff --git a/code/modules/overmap/ships/computers/shuttle.dm b/code/modules/overmap/ships/computers/shuttle.dm index e91df8156b1..d3f00f39670 100644 --- a/code/modules/overmap/ships/computers/shuttle.dm +++ b/code/modules/overmap/ships/computers/shuttle.dm @@ -61,7 +61,7 @@ to_chat(usr, SPAN_WARNING("The manual controls look hopelessly complex to you!")) /obj/machinery/computer/shuttle_control/explore/proc/start_landing(var/mob/user, var/datum/shuttle/autodock/overmap/shuttle) - var/obj/effect/overmap/visitable/current_sector = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/current_sector = global.overmap_sectors[num2text(z)] var/obj/effect/overmap/visitable/target_sector if(current_sector && istype(current_sector)) @@ -87,7 +87,7 @@ if(landing_eye.look(user, list(shuttle_tag, target_sector))) // Placement of the eye was successful landing_eye.extension_eye.forceMove(eye_turf) return - + to_chat(user, SPAN_WARNING("You are unable to land!")) return @@ -100,7 +100,7 @@ var/mob/observer/eye/landing/landing_eye = eye_extension.extension_eye var/turf/lz_turf = eye_extension.get_eye_turf() - var/obj/effect/overmap/visitable/sector = global.overmap_sectors["[lz_turf.z]"] + var/obj/effect/overmap/visitable/sector = global.overmap_sectors[num2text(lz_turf.z)] if(!sector.allow_free_landing()) // Additional safety check to ensure the sector permits landing. to_chat(user, SPAN_WARNING("Invalid landing zone!")) return @@ -116,7 +116,7 @@ else qdel(lz) to_chat(user, SPAN_WARNING("Invalid landing zone!")) - + /obj/machinery/computer/shuttle_control/proc/end_landing() var/datum/extension/eye/landing_eye = get_extension(src, /datum/extension/eye/) if(landing_eye) diff --git a/code/modules/overmap/ships/landable.dm b/code/modules/overmap/ships/landable.dm index 7c1b0f8ca27..d0e2689fa6d 100644 --- a/code/modules/overmap/ships/landable.dm +++ b/code/modules/overmap/ships/landable.dm @@ -9,6 +9,7 @@ var/use_mapped_z_levels = FALSE // If true, it will use the z level block on which it's mapped as the "Open Space" block; if false it creates a new block for that. // If you use this, use /obj/effect/shuttle_landmark/ship as the landmark (set the landmark tag to match on the shuttle; no other setup needed) var/status = SHIP_STATUS_LANDED + var/level_type = /obj/abstract/level_data/space icon_state = "shuttle" moving_state = "shuttle_moving" @@ -52,7 +53,7 @@ if(!child_shuttle || !istype(child_shuttle)) return if(child_shuttle.current_location.flags & SLANDMARK_FLAG_DISCONNECTED) // Keep an eye on the distance between the shuttle and the sector if we aren't fully docked. - var/obj/effect/overmap/visitable/ship/landable/encounter = global.overmap_sectors["[child_shuttle.current_location.z]"] + var/obj/effect/overmap/visitable/ship/landable/encounter = global.overmap_sectors[num2text(child_shuttle.current_location.z)] if((get_dist(src, encounter) > min(child_shuttle.range, 1))) // Some leeway so 0 range shuttles are still able to chase. child_shuttle.attempt_force_move(landmark) if(istype(encounter)) @@ -63,11 +64,8 @@ /obj/effect/overmap/visitable/ship/landable/find_z_levels() if(!use_mapped_z_levels) for(var/i = 0 to multiz) - INCREMENT_WORLD_Z_SIZE + SSmapping.increment_world_z_size(level_type) map_z += world.maxz - - if(multiz) - new /obj/abstract/map_data(locate(1, 1, world.maxz), (multiz + 1)) else ..() @@ -143,7 +141,7 @@ . = ..() /obj/effect/shuttle_landmark/ship/Destroy() - var/obj/effect/overmap/visitable/ship/landable/ship = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/ship/landable/ship = global.overmap_sectors[num2text(z)] if(istype(ship) && ship.landmark == src) ship.landmark = null . = ..() @@ -207,7 +205,7 @@ on_landing(from, into) /obj/effect/overmap/visitable/ship/landable/proc/on_landing(obj/effect/shuttle_landmark/from, obj/effect/shuttle_landmark/into) - var/obj/effect/overmap/visitable/target = global.overmap_sectors["[into.z]"] + var/obj/effect/overmap/visitable/target = global.overmap_sectors[num2text(into.z)] var/datum/shuttle/shuttle_datum = SSshuttle.shuttles[shuttle] if(into.landmark_tag == shuttle_datum.motherdock) // If our motherdock is a landable ship, it won't be found properly here so we need to find it manually. for(var/obj/effect/overmap/visitable/ship/landable/landable in SSshuttle.ships) @@ -235,7 +233,7 @@ return "Docked with an unknown object." if(SHIP_STATUS_ENCOUNTER) var/datum/shuttle/autodock/overmap/child_shuttle = SSshuttle.shuttles[shuttle] - var/obj/effect/overmap/visitable/location = global.overmap_sectors["[child_shuttle.current_location.z]"] + var/obj/effect/overmap/visitable/location = global.overmap_sectors[num2text(child_shuttle.current_location.z)] return "Maneuvering nearby \the [location.name]." if(SHIP_STATUS_TRANSIT) return "Maneuvering under secondary thrust." diff --git a/code/modules/overmap/spacetravel.dm b/code/modules/overmap/spacetravel.dm index 081c7e1257e..6c60ba8181d 100644 --- a/code/modules/overmap/spacetravel.dm +++ b/code/modules/overmap/spacetravel.dm @@ -1,6 +1,3 @@ -//list used to cache empty zlevels to avoid nedless map bloat -var/global/list/cached_temporary_sectors = list() - //Space stragglers go here /obj/effect/overmap/visitable/sector/temporary name = "Deep Space" @@ -21,11 +18,9 @@ var/global/list/cached_temporary_sectors = list() for(var/num in map_z) global.overmap_sectors -= "[num]" - var/datum/overmap/overmap = global.overmaps_by_z["[z]"] - if(istype(overmap) && (overmap.map_turf_type in global.cached_temporary_sectors)) - global.cached_temporary_sectors[overmap.map_turf_type] -= src - if(!length(global.cached_temporary_sectors[overmap.map_turf_type])) - global.cached_temporary_sectors -= overmap.map_turf_type + var/datum/overmap/overmap = global.overmaps_by_z[num2text(z)] + if(istype(overmap)) + overmap.discard_temporary_sector(src) testing("Temporary sector at [x],[y],[z] was deleted.") diff --git a/code/modules/pointdefense/pointdefense.dm b/code/modules/pointdefense/pointdefense.dm index 45e3bdfe490..f0e166ebd2b 100644 --- a/code/modules/pointdefense/pointdefense.dm +++ b/code/modules/pointdefense/pointdefense.dm @@ -1,4 +1,4 @@ -//Point defense +//Point defense /obj/machinery/pointdefense_control name = "fire assist mainframe" desc = "A specialized computer designed to synchronize a variety of weapon systems and a vessel's astronav data." @@ -161,7 +161,7 @@ rot_matrix.Turn(Angle) addtimer(CALLBACK(src, .proc/finish_shot, target), rotation_speed) animate(src, transform = rot_matrix, rotation_speed, easing = SINE_EASING) - + set_dir(transform.get_angle() > 0 ? NORTH : SOUTH) /obj/machinery/pointdefense/proc/finish_shot(var/weakref/target) @@ -200,7 +200,7 @@ set_dir(desiredir) if(engaging || ((world.time - last_shot) < charge_cooldown)) return - + if(global.meteor_list.len == 0) return var/datum/extension/local_network_member/pointdefense = get_extension(src, /datum/extension/local_network_member) @@ -226,7 +226,7 @@ if(already_targeted) continue - if(!(M.z in GetConnectedZlevels(z))) + if(!(M.z in SSmapping.get_connected_levels(z))) continue if(get_dist(M, src) > kill_range) continue diff --git a/code/modules/power/fusion/fusion_reactions.dm b/code/modules/power/fusion/fusion_reactions.dm index 09831b9760e..150645f67e0 100644 --- a/code/modules/power/fusion/fusion_reactions.dm +++ b/code/modules/power/fusion/fusion_reactions.dm @@ -105,7 +105,7 @@ set waitfor = FALSE . = 1 var/datum/event/wormholes/WM = /datum/event/wormholes - WM.setup(affected_z_levels = GetConnectedZlevels(holder)) + WM.setup(affected_z_levels = SSmapping.get_connected_levels(holder)) new WM(new /datum/event_meta(EVENT_LEVEL_MAJOR)) var/turf/origin = get_turf(holder) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index a348a71e8f7..e54ae3d535e 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -173,7 +173,7 @@ var/global/list/solars_list = list() // On planets, we take fewer steps because the light is mostly up // Also, many planets barely have any spots with enough clear space around if(isturf(loc)) - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[loc.z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(loc.z)] if(istype(E)) steps = 5 diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 10d89670349..20707c67aed 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -18,7 +18,7 @@ var/spent_icon = "pistolcasing-spent" var/bullet_color = COLOR_COPPER var/marking_color - var/fall_sounds = list('sound/weapons/guns/casingfall1.ogg','sound/weapons/guns/casingfall2.ogg','sound/weapons/guns/casingfall3.ogg') + drop_sound = list('sound/weapons/guns/casingfall1.ogg','sound/weapons/guns/casingfall2.ogg','sound/weapons/guns/casingfall3.ogg') /obj/item/ammo_casing/Initialize() if(ispath(projectile_type)) @@ -53,7 +53,7 @@ return if(!MOVING_DELIBERATELY(L) && prob(10)) - playsound(src, pick(fall_sounds), 50, 1) + playsound(src, pick(drop_sound), 50, 1) var/turf/turf_current = get_turf(src) var/turf/turf_destiinaton = get_step(turf_current, AM.dir) if(turf_destiinaton.Adjacent(turf_current)) @@ -66,14 +66,11 @@ put_residue_on(G) var/mob/living/carbon/human/H = G.get_recursive_loc_of_type(/mob/living/carbon/human) if(H) - for(var/bp in H.held_item_slots) - var/datum/inventory_slot/inv_slot = H.held_item_slots[bp] - if(G == inv_slot?.holding) - var/target = H.get_covering_equipped_item_by_zone(bp) - if(!target) - target = GET_EXTERNAL_ORGAN(H, bp) + var/holding_slot = H.get_held_slot_for_item(G) + if(holding_slot) + var/target = H.get_covering_equipped_item_by_zone(holding_slot) || GET_EXTERNAL_ORGAN(H, holding_slot) + if(target) put_residue_on(target) - break if(prob(30)) put_residue_on(get_turf(src)) @@ -182,6 +179,7 @@ if(!user.unEquip(C, src)) return stored_ammo.Add(C) + playsound(user, 'sound/weapons/guns/interaction/bullet_insert.ogg', 50, 1) update_icon() else ..() diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index e97ded60a4c..090bd283b74 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -223,6 +223,16 @@ labels = list("practice") ammo_type = /obj/item/ammo_casing/rifle/practice +/obj/item/ammo_magazine/rifle/drum + name = "machine gun drum magazine" + icon_state = "drum" + origin_tech = "{'combat':2}" + mag_type = MAGAZINE + caliber = CALIBER_RIFLE + material = /decl/material/solid/metal/steel + ammo_type = /obj/item/ammo_casing/rifle + max_ammo = 100 + /obj/item/ammo_magazine/caps name = "speed loader" desc = "A cheap plastic speed loader for some kind of revolver." @@ -235,4 +245,4 @@ /obj/item/ammo_magazine/speedloader/laser_revolver caliber = CALIBER_PISTOL_LASBULB - ammo_type = /obj/item/ammo_casing/lasbulb \ No newline at end of file + ammo_type = /obj/item/ammo_casing/lasbulb diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm index 2bab8ab38ee..8f727a8132a 100644 --- a/code/modules/projectiles/ammunition/bullets.dm +++ b/code/modules/projectiles/ammunition/bullets.dm @@ -71,7 +71,7 @@ caliber = CALIBER_SHOTGUN projectile_type = /obj/item/projectile/bullet/shotgun material = /decl/material/solid/metal/steel - fall_sounds = list('sound/weapons/guns/shotgun_fall.ogg') + drop_sound = 'sound/weapons/guns/shotgun_fall.ogg' /obj/item/ammo_casing/shotgun/pellet name = "shotgun shell" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 83d7e9d5383..f80d4ba9e46 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -109,7 +109,7 @@ /obj/item/gun/preserve_in_cryopod(var/obj/machinery/cryopod/pod) return TRUE -/obj/item/gun/proc/set_autofire(var/atom/fire_at, var/mob/fire_by) +/obj/item/gun/proc/set_autofire(var/atom/fire_at, var/mob/fire_by, var/autoturn = TRUE) . = TRUE if(!istype(fire_at) || !istype(fire_by)) . = FALSE @@ -121,7 +121,7 @@ autofiring_at = fire_at autofiring_by = fire_by if(!autofiring_timer) - autofiring_timer = addtimer(CALLBACK(src, .proc/handle_autofire), burst_delay, (TIMER_STOPPABLE | TIMER_LOOP | TIMER_UNIQUE | TIMER_OVERRIDE)) + autofiring_timer = addtimer(CALLBACK(src, .proc/handle_autofire, autoturn), burst_delay, (TIMER_STOPPABLE | TIMER_LOOP | TIMER_UNIQUE | TIMER_OVERRIDE)) else clear_autofire() @@ -132,19 +132,18 @@ deltimer(autofiring_timer) autofiring_timer = null -/obj/item/gun/proc/handle_autofire() +/obj/item/gun/proc/handle_autofire(var/autoturn) set waitfor = FALSE . = TRUE if(QDELETED(autofiring_at) || QDELETED(autofiring_by)) . = FALSE - else if(autofiring_by.get_active_hand() != src || autofiring_by.incapacitated()) - . = FALSE - else if(!autofiring_by.client || !(autofiring_by in view(autofiring_by.client.view, autofiring_by))) + else if(!autofiring_by.can_autofire(src, autofiring_at)) . = FALSE if(!.) clear_autofire() else if(can_autofire()) - autofiring_by.set_dir(get_dir(src, autofiring_at)) + if(autoturn) + autofiring_by.set_dir(get_dir(src, autofiring_at)) Fire(autofiring_at, autofiring_by, null, (get_dist(autofiring_at, autofiring_by) <= 1), FALSE, FALSE) /obj/item/gun/update_twohanding() @@ -690,3 +689,10 @@ Fire(aiming_at, M) if(M.aiming) M.aiming.toggle_active(FALSE, TRUE) + +/mob/proc/can_autofire(var/obj/item/gun/autofiring, var/atom/autofiring_at) + if(!client || !(autofiring_at in view(client.view,src))) + return FALSE + if(get_active_hand() != autofiring || incapacitated()) + return FALSE + return TRUE \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 5e21a1d69a3..0d804ea7cee 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -11,6 +11,10 @@ origin_tech = "{'combat':3,'magnets':2}" material = /decl/material/solid/metal/steel projectile_type = /obj/item/projectile/beam/midlaser + matter = list( + /decl/material/solid/fiberglass = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/silver = MATTER_AMOUNT_REINFORCEMENT + ) /obj/item/gun/energy/laser/mounted self_recharge = 1 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index df275721b29..cb4878d05f1 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -14,6 +14,11 @@ fire_delay = 30 projectile_type = /obj/item/projectile/ion combustion = 0 + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/metal/uranium = MATTER_AMOUNT_REINFORCEMENT, + /decl/material/solid/metal/gold = MATTER_AMOUNT_REINFORCEMENT + ) /obj/item/gun/energy/ionrifle/emp_act(severity) ..(max(severity, 2)) //so it doesn't EMP itself, I guess diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 54e02c8b3a6..ca42527292f 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -8,11 +8,15 @@ max_shots = 5 projectile_type = /obj/item/projectile/beam/stun combustion = 0 - firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun), list(mode_name="shock", projectile_type=/obj/item/projectile/beam/stun/shock), ) + material = /decl/material/solid/metal/steel + matter = list( + /decl/material/solid/metal/aluminium = MATTER_AMOUNT_SECONDARY, + /decl/material/solid/metal/silver = MATTER_AMOUNT_REINFORCEMENT, + ) /obj/item/gun/energy/taser/mounted name = "mounted electrolaser" diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 129075a5519..08fc633026a 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -29,6 +29,7 @@ var/auto_eject_sound = null var/mag_insert_sound = 'sound/weapons/guns/interaction/pistol_magin.ogg' var/mag_remove_sound = 'sound/weapons/guns/interaction/pistol_magout.ogg' + var/manual_unload = TRUE //Whether or not the gun can be unloaded by hand. var/is_jammed = 0 //Whether this gun is jammed var/jam_chance = 0 //Chance it jams on fire @@ -105,8 +106,8 @@ if(EJECT_CASINGS) //eject casing onto ground. chambered.dropInto(loc) chambered.throw_at(get_ranged_target_turf(get_turf(src),turn(loc.dir,270),1), rand(0,1), 5) - if(LAZYLEN(chambered.fall_sounds)) - playsound(loc, pick(chambered.fall_sounds), 50, 1) + if(chambered.drop_sound) + playsound(loc, pick(chambered.drop_sound), 50, 1) if(CYCLE_CASINGS) //cycle the casing back to the end. if(ammo_magazine) ammo_magazine.stored_ammo += chambered @@ -194,8 +195,8 @@ var/turf/T = get_turf(user) if(T) for(var/obj/item/ammo_casing/C in loaded) - if(LAZYLEN(C.fall_sounds)) - playsound(loc, pick(C.fall_sounds), 50, 1) + if(LAZYLEN(C.drop_sound)) + playsound(loc, pick(C.drop_sound), 50, 1) C.forceMove(T) count++ loaded.Cut() @@ -217,11 +218,13 @@ /obj/item/gun/projectile/attack_self(mob/user) if(firemodes.len > 1) ..() - else + else if(manual_unload) unload_ammo(user) + else + to_chat(user, SPAN_WARNING("You can't unload \the [src] manually. Maybe try a crowbar?")) /obj/item/gun/projectile/attack_hand(mob/user) - if(user.is_holding_offhand(src)) + if(user.is_holding_offhand(src) && manual_unload) unload_ammo(user, allow_dump=0) else return ..() diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 80fee5c8f59..227811e79da 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -44,7 +44,7 @@ w_class = ITEM_SIZE_HUGE force = 10 caliber = CALIBER_RIFLE - origin_tech = "{'combat':8,'materials':3}" + origin_tech = "{'combat':7,'materials':3}" ammo_type = /obj/item/ammo_casing/rifle slot_flags = SLOT_BACK load_method = MAGAZINE @@ -64,6 +64,26 @@ /decl/material/solid/metal/silver = MATTER_AMOUNT_REINFORCEMENT, /decl/material/solid/gemstone/diamond = MATTER_AMOUNT_TRACE ) + firemodes = list( + list(mode_name="semi auto", burst=1, fire_delay=null, one_hand_penalty=8, burst_accuracy=null, dispersion=null), + list(mode_name="3-round bursts", burst=3, fire_delay=null, one_hand_penalty=9, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), + list(mode_name="full auto", burst=1, fire_delay=0, burst_delay=1, one_hand_penalty=7, burst_accuracy = list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0), autofire_enabled=1) + ) + +/obj/item/gun/projectile/automatic/assault_rifle/update_base_icon() + if(ammo_magazine) + if(ammo_magazine.stored_ammo.len) + icon_state = "[get_world_inventory_state()]-loaded" + else + icon_state = "[get_world_inventory_state()]-empty" + else + icon_state = get_world_inventory_state() + +/obj/item/gun/projectile/automatic/assault_rifle/grenade + name = "assault rifle" + desc = "The Z8 Bulldog is an older model bullpup carbine. This one has an underslung grenade launcher. REALLY makes you feel like a space marine when you hold it." + origin_tech = "{'combat':8,'materials':3}" + firemodes = list( list(mode_name="semi auto", burst=1, fire_delay=null, use_launcher=null, one_hand_penalty=8, burst_accuracy=null, dispersion=null), list(mode_name="3-round bursts", burst=3, fire_delay=null, use_launcher=null, one_hand_penalty=9, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)), @@ -74,23 +94,23 @@ var/use_launcher = 0 var/obj/item/gun/launcher/grenade/underslung/launcher -/obj/item/gun/projectile/automatic/assault_rifle/Initialize() +/obj/item/gun/projectile/automatic/assault_rifle/grenade/Initialize() . = ..() launcher = new(src) -/obj/item/gun/projectile/automatic/assault_rifle/attackby(obj/item/I, mob/user) +/obj/item/gun/projectile/automatic/assault_rifle/grenade/attackby(obj/item/I, mob/user) if((istype(I, /obj/item/grenade))) launcher.load(I, user) else ..() -/obj/item/gun/projectile/automatic/assault_rifle/attack_hand(mob/user) +/obj/item/gun/projectile/automatic/assault_rifle/grenade/attack_hand(mob/user) if(user.is_holding_offhand(src) && use_launcher) launcher.unload(user) else ..() -/obj/item/gun/projectile/automatic/assault_rifle/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0) +/obj/item/gun/projectile/automatic/assault_rifle/grenade/Fire(atom/target, mob/living/user, params, pointblank=0, reflex=0) if(use_launcher) launcher.Fire(target, user, params, pointblank, reflex) if(!launcher.chambered) @@ -98,18 +118,77 @@ else ..() -/obj/item/gun/projectile/automatic/assault_rifle/update_base_icon() - if(ammo_magazine) - if(ammo_magazine.stored_ammo.len) - icon_state = "[get_world_inventory_state()]-loaded" - else - icon_state = "[get_world_inventory_state()]-empty" - else - icon_state = get_world_inventory_state() - -/obj/item/gun/projectile/automatic/assault_rifle/examine(mob/user) +/obj/item/gun/projectile/automatic/assault_rifle/grenade/examine(mob/user) . = ..() if(launcher.chambered) to_chat(user, "\The [launcher] has \a [launcher.chambered] loaded.") else to_chat(user, "\The [launcher] is empty.") + +/obj/item/gun/projectile/automatic/assault_rifle/grenade/toggle_safety(mob/user) + . = ..() + launcher.toggle_safety() // Do not pass user to prevent double messages. + +// Admin-spawn machine gun. Mech subtype is meant to be used, but this can be spawned for hulks. +/obj/item/gun/projectile/automatic/machine + name = "massive machine gun" + desc = "The XC-67 \"Creosote\" is a massive machine gun, and ranks high on most tin-pot dictators' wish lists. Firing this thing without some sort of weapons platform is a hopeless task." + icon = 'icons/obj/guns/machine.dmi' + w_class = ITEM_SIZE_HUGE + force = 10 + caliber = CALIBER_RIFLE + origin_tech = "{'combat':9,'materials':3}" + ammo_type = /obj/item/ammo_casing/rifle + load_method = MAGAZINE + magazine_type = /obj/item/ammo_magazine/rifle/drum + allowed_magazines = /obj/item/ammo_magazine/rifle/drum + accuracy = 1 + accuracy_power = 7 + one_hand_penalty = 3000 + bulk = GUN_BULK_RIFLE + + burst_delay = 1 + burst = 3 + burst_accuracy = list(0,-1,-1) + dispersion = list(0.0, 0.6, 1.0) + + fire_delay = 0 + autofire_enabled = 1 + + mag_insert_sound = 'sound/weapons/guns/interaction/batrifle_magin.ogg' + mag_remove_sound = 'sound/weapons/guns/interaction/batrifle_magout.ogg' + material = /decl/material/solid/metal/steel + + var/spin_up_time = null + var/sound_token + +/obj/item/gun/projectile/automatic/machine/Fire(atom/target, mob/living/user, clickparams, pointblank, reflex, set_click_cooldown) + if(!spin_up_time || world.time < spin_up_time + 1 SECONDS) + return FALSE + . = ..() + +/obj/item/gun/projectile/automatic/machine/special_check(mob/user) + if(!istype(user, /mob/living)) + return FALSE + if(!user.check_dexterity(DEXTERITY_WEAPONS)) + return FALSE + + var/mob/living/M = user + if(M.mob_size < MOB_SIZE_LARGE) + to_chat(user, SPAN_WARNING("You can barely lift \the [src], let alone fire it!")) + return FALSE + return TRUE + +/obj/item/gun/projectile/automatic/machine/set_autofire(atom/fire_at, mob/fire_by, autoturn) + if(!special_check(fire_by)) + return FALSE + . = ..() + if(. && !spin_up_time) + if(!sound_token) + sound_token = play_looping_sound(src, "machine_gun", 'sound/mecha/hydraulic.ogg', volume = 30) + spin_up_time = world.time + +/obj/item/gun/projectile/automatic/machine/clear_autofire() + . = ..() + spin_up_time = null + QDEL_NULL(sound_token) \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index cb7c0fe1ac1..06af682f326 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -39,8 +39,8 @@ if(chambered)//We have a shell in the chamber chambered.dropInto(loc)//Eject casing - if(LAZYLEN(chambered.fall_sounds)) - playsound(loc, pick(chambered.fall_sounds), 50, 1) + if(chambered.drop_sound) + playsound(loc, pick(chambered.drop_sound), 50, 1) chambered = null if(loaded.len) diff --git a/code/modules/random_map/random_map.dm b/code/modules/random_map/random_map.dm index d861b1eef6d..c0b3ce9fa9a 100644 --- a/code/modules/random_map/random_map.dm +++ b/code/modules/random_map/random_map.dm @@ -136,7 +136,9 @@ var/global/list/map_count = list() if(check_map_sanity()) cleanup() if(auto_apply) + Master.StartLoadingMap() apply_to_map() + Master.StopLoadingMap() return 1 return 0 diff --git a/code/modules/reagents/Chemistry-Metabolism.dm b/code/modules/reagents/Chemistry-Metabolism.dm index 92a31f000a0..e1002809b1f 100644 --- a/code/modules/reagents/Chemistry-Metabolism.dm +++ b/code/modules/reagents/Chemistry-Metabolism.dm @@ -3,10 +3,11 @@ var/mob/living/parent /datum/reagents/metabolism/clear_reagent(var/reagent_type, var/defer_update = FALSE, var/force = FALSE) - . = ..() - if(.) + // Duplicated check so that reagent data is accessible in on_leaving_metabolism. + if(force || !!(REAGENT_VOLUME(src, reagent_type) || REAGENT_DATA(src, reagent_type))) var/decl/material/current = GET_DECL(reagent_type) - current.on_leaving_metabolism(parent, metabolism_class) + current.on_leaving_metabolism(src) + . = ..() /datum/reagents/metabolism/New(var/max = 100, mob/living/parent_mob, var/met_class) ..(max, parent_mob) diff --git a/code/modules/reagents/chems/chems_compounds.dm b/code/modules/reagents/chems/chems_compounds.dm index f744085c318..9b5d65415c0 100644 --- a/code/modules/reagents/chems/chems_compounds.dm +++ b/code/modules/reagents/chems/chems_compounds.dm @@ -28,9 +28,9 @@ var/mob/living/carbon/human/H = M H.update_eyes() -/decl/material/liquid/glowsap/on_leaving_metabolism(atom/parent, metabolism_class) - if(ishuman(parent)) - var/mob/living/carbon/human/H = parent +/decl/material/liquid/glowsap/on_leaving_metabolism(datum/reagents/metabolism/holder) + if(ishuman(holder?.my_atom)) + var/mob/living/carbon/human/H = holder.my_atom addtimer(CALLBACK(H, /mob/living/carbon/human/proc/update_eyes), 5 SECONDS) . = ..() diff --git a/code/modules/reagents/chems/chems_drugs.dm b/code/modules/reagents/chems/chems_drugs.dm index 68e9b46dee8..cd4cf0c8f3a 100644 --- a/code/modules/reagents/chems/chems_drugs.dm +++ b/code/modules/reagents/chems/chems_drugs.dm @@ -215,9 +215,9 @@ if(prob(5)) to_chat(M, SPAN_WARNING("[pick(dose_messages)]")) -/decl/material/liquid/glowsap/gleam/on_leaving_metabolism(var/atom/parent, var/metabolism_class) +/decl/material/liquid/glowsap/gleam/on_leaving_metabolism(datum/reagents/metabolism/holder) . = ..() - var/mob/M = parent + var/mob/M = holder?.my_atom if(istype(M)) M.remove_client_color(/datum/client_color/noir/thirdeye) diff --git a/code/modules/reagents/chems/random/random_effects.dm b/code/modules/reagents/chems/random/random_effects.dm index cec658a1c78..cb99074ef70 100644 --- a/code/modules/reagents/chems/random/random_effects.dm +++ b/code/modules/reagents/chems/random/random_effects.dm @@ -48,7 +48,7 @@ reagent.name = "[initial(reagent.name)]-[value]" /decl/random_chem_effect/general_properties/color/get_random_value() - return color_rotation(round(rand(0,360),20)) + return color_matrix_rotate_hue(round(rand(0,360),20)) /decl/random_chem_effect/general_properties/color/on_property_recompute(var/decl/material/liquid/random/reagent, var/value) reagent.color = value diff --git a/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm b/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm index 9fd95e62bff..edee80d59d6 100644 --- a/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/drinkingglass/drinkingglass.dm @@ -226,4 +226,11 @@ var/global/const/DRINK_ICON_NOISY = "noise" var/old_temp = temperature . = ..() if(old_temp != temperature) - update_icon() \ No newline at end of file + update_icon() + +/obj/item/chems/drinks/glass2/physically_destroyed(var/skip_qdel) + reagents.splash(loc, reagents.total_volume) + if(istype(material)) + playsound(src, "shatter", 30, 1) + material.place_shards(get_turf(src), w_class) + return ..() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/drinks.dm b/code/modules/reagents/reagent_containers/drinks.dm index 55c99433e90..a1b24257e0a 100644 --- a/code/modules/reagents/reagent_containers/drinks.dm +++ b/code/modules/reagents/reagent_containers/drinks.dm @@ -17,9 +17,9 @@ var/base_icon = null // Base icon name for fill states /obj/item/chems/drinks/Initialize() - . = ..() if(!base_name) base_name = name + . = ..() /obj/item/chems/drinks/dragged_onto(var/mob/user) attack_self(user) @@ -296,6 +296,7 @@ base_name = "cup" base_icon = "cup" volume = 30 + presentation_flags = PRESENTATION_FLAG_NAME /obj/item/chems/drinks/tea/black name = "cup of black tea" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 0069b7fca41..c40956de50f 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -267,6 +267,7 @@ name = "master flavorpod item" desc = "A cellulose pod containing some kind of flavoring." icon_state = "pill4" + presentation_flags = PRESENTATION_FLAG_NAME /obj/item/chems/pill/pod/cream name = "creamer pod" diff --git a/code/modules/research/design_database.dm b/code/modules/research/design_database.dm index a5ec8fd60a5..b9273af6569 100644 --- a/code/modules/research/design_database.dm +++ b/code/modules/research/design_database.dm @@ -14,6 +14,9 @@ var/global/list/default_initial_tech_levels icon_state = "blackbox" density = TRUE anchored = TRUE + construct_state = /decl/machine_construction/default/panel_closed + uncreated_component_parts = null + stat_immune = 0 var/initial_network_id var/initial_network_key diff --git a/code/modules/shuttles/docking_beacon.dm b/code/modules/shuttles/docking_beacon.dm index 2535e6034ab..37dcaa79577 100644 --- a/code/modules/shuttles/docking_beacon.dm +++ b/code/modules/shuttles/docking_beacon.dm @@ -314,7 +314,7 @@ // Otherwise, use the planetary or world area. if(!base_area) - var/obj/effect/overmap/visitable/sector/exoplanet/planet = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/planet = global.overmap_sectors[num2text(z)] if(istype(planet)) base_area = ispath(planet.planetary_area) ? planet.planetary_area : planet.planetary_area.type else diff --git a/code/modules/shuttles/landmarks.dm b/code/modules/shuttles/landmarks.dm index 95172c4e323..2645979cd8a 100644 --- a/code/modules/shuttles/landmarks.dm +++ b/code/modules/shuttles/landmarks.dm @@ -55,7 +55,7 @@ var/global/list/shuttle_landmarks = list() if(!istype(docking_controller)) log_error("Could not find docking controller for shuttle waypoint '[name]', docking tag was '[docking_tag]'.") - var/obj/effect/overmap/visitable/location = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/location = global.overmap_sectors[num2text(z)] if(location && location.docking_codes) docking_controller.docking_codes = location.docking_codes @@ -66,9 +66,9 @@ var/global/list/shuttle_landmarks = list() ADJUST_TAG_VAR(docking_controller, map_hash) /obj/effect/shuttle_landmark/forceMove() - var/obj/effect/overmap/visitable/map_origin = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/map_origin = global.overmap_sectors[num2text(z)] . = ..() - var/obj/effect/overmap/visitable/map_destination = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/map_destination = global.overmap_sectors[num2text(z)] if(map_origin != map_destination) if(map_origin) map_origin.remove_landmark(src, shuttle_restricted) @@ -86,7 +86,7 @@ var/global/list/shuttle_landmarks = list() var/list/translation = get_turf_translation(get_turf(shuttle.current_location), get_turf(src), A.contents) if(check_collision(base_area, list_values(translation))) return FALSE - var/conn = GetConnectedZlevels(z) + var/conn = SSmapping.get_connected_levels(z) for(var/w in (z - shuttle.multiz) to z) if(!(w in conn)) return FALSE @@ -127,14 +127,17 @@ var/global/list/shuttle_landmarks = list() /obj/effect/shuttle_landmark/automatic/sector_set(var/obj/effect/overmap/visitable/O) ..() - SetName("[O.name] - [initial(name)] ([x],[y])") + SetName("[initial(name)] ([x],[y])") //Subtype that calls explosion on init to clear space for shuttles /obj/effect/shuttle_landmark/automatic/clearing + name = "clearing" var/radius = 10 -/obj/effect/shuttle_landmark/automatic/clearing/Initialize() +/obj/effect/shuttle_landmark/automatic/clearing/Initialize(var/ml, var/supplied_radius) ..() + if(!isnull(supplied_radius)) + radius = supplied_radius return INITIALIZE_HINT_LATELOAD /obj/effect/shuttle_landmark/automatic/clearing/LateInitialize() diff --git a/code/modules/shuttles/shuttle_autodock.dm b/code/modules/shuttles/shuttle_autodock.dm index 90275d50ba8..f2e1027550f 100644 --- a/code/modules/shuttles/shuttle_autodock.dm +++ b/code/modules/shuttles/shuttle_autodock.dm @@ -33,7 +33,7 @@ if(active_docking_controller) set_docking_codes(active_docking_controller.docking_codes) else if(current_location?.overmap_id) - var/obj/effect/overmap/visitable/location = global.overmap_sectors["[current_location.z]"] + var/obj/effect/overmap/visitable/location = global.overmap_sectors[num2text(current_location.z)] if(location && location.docking_codes) set_docking_codes(location.docking_codes) dock() diff --git a/code/modules/species/outsider/random.dm b/code/modules/species/outsider/random.dm index e9287471e5c..7bb6b782ea6 100644 --- a/code/modules/species/outsider/random.dm +++ b/code/modules/species/outsider/random.dm @@ -32,7 +32,7 @@ /decl/emote/exertion/biological/pant ) var/blood_color - + /decl/species/alium/Initialize() //Coloring diff --git a/code/modules/species/species.dm b/code/modules/species/species.dm index dbeb1d0926d..3a1d7047fe9 100644 --- a/code/modules/species/species.dm +++ b/code/modules/species/species.dm @@ -4,6 +4,7 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 /decl/species + abstract_type = /decl/species // Descriptors and strings. var/name @@ -35,6 +36,16 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 var/flesh_color = "#ffc896" // Pink. var/blood_oxy = 1 + // Darksight handling + /// Fractional multiplier (0 to 1) for the base alpha of the darkness overlay. A value of 1 means darkness is completely invisible. + var/base_low_light_vision = 0 + /// The lumcount (turf luminosity) threshold under which adaptive low light vision will begin processing. + var/low_light_vision_threshold = 0.3 + /// Fractional multiplier for the overall effectiveness of low light vision for this species. Caps the final alpha value of the darkness plane. + var/low_light_vision_effectiveness = 0 + /// The rate at which low light vision adjusts towards the final value, as a fractional multiplier of the difference between the current and target alphas. ie. set to 0.15 for a 15% shift towards the target value each tick. + var/low_light_vision_adjustment_speed = 0.15 + // Used for initializing prefs/preview var/base_color = COLOR_BLACK var/base_eye_color = COLOR_BLACK @@ -349,6 +360,10 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 . = ..() + if(config.grant_default_darksight) + darksight_range = max(darksight_range, config.default_darksight_range) + low_light_vision_effectiveness = max(low_light_vision_effectiveness, config.default_darksight_effectiveness) + // Populate blood type table. for(var/blood_type in blood_types) var/decl/blood_type/blood_decl = GET_DECL(blood_type) @@ -440,9 +455,20 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 /decl/species/validate() . = ..() + for(var/decl/bodytype/bodytype in available_bodytypes) + var/bodytype_base_icon = bodytype.get_base_icon() + var/deformed_base_icon = bodytype.get_base_icon(get_deform = TRUE) + for(var/organ_tag in has_limbs) + if(organ_tag == BP_TAIL) // Tails are handled specially due to overlays and animations, will not be present in the base bodytype icon(s). + continue + if(bodytype_base_icon && !check_state_in_icon(organ_tag, bodytype_base_icon)) + . += "missing state \"[organ_tag]\" from base icon [bodytype_base_icon] on bodytype [bodytype.type]" + if(deformed_base_icon && bodytype_base_icon != deformed_base_icon && !check_state_in_icon(organ_tag, deformed_base_icon)) + . += "missing state \"[organ_tag]\" from deformed icon [deformed_base_icon] on bodytype [bodytype.type]" + for(var/organ_tag in vital_organs) if(!(organ_tag in has_organ) && !(organ_tag in has_limbs)) - . += "vital organ '[organ_tag]' not present in organ/limb lists" + . += "vital organ \"[organ_tag]\" not present in organ/limb lists" for(var/trait_type in traits) var/trait_level = traits[trait_type] @@ -450,6 +476,76 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 if(!T.validate_level(trait_level)) . += "invalid levels for species trait [trait_type]" + if(base_low_light_vision > 1) + . += "base low light vision is greater than 1 (over 100%)" + else if(base_low_light_vision < 0) + . += "base low light vision is less than 0 (below 0%)" + + if(low_light_vision_threshold > 1) + . += "low light vision threshold is greater than 1 (over 100%)" + else if(low_light_vision_threshold < 0) + . += "low light vision threshold is less than 0 (below 0%)" + + if(low_light_vision_effectiveness > 1) + . += "low light vision effectiveness is greater than 1 (over 100%)" + else if(low_light_vision_effectiveness < 0) + . += "low light vision effectiveness is less than 0 (below 0%)" + + if(low_light_vision_adjustment_speed > 1) + . += "low light vision adjustment speed is greater than 1 (over 100%)" + else if(low_light_vision_adjustment_speed < 0) + . += "low light vision adjustment speed is less than 0 (below 0%)" + + if((appearance_flags & HAS_SKIN_COLOR) && isnull(base_color)) + . += "uses skin color but missing base_color" + if((appearance_flags & HAS_HAIR_COLOR) && isnull(base_hair_color)) + . += "uses hair color but missing base_hair_color" + if((appearance_flags & HAS_EYE_COLOR) && isnull(base_eye_color)) + . += "uses eye color but missing base_eye_color" + if(isnull(default_h_style)) + . += "null default_h_style (use a bald/hairless hairstyle if 'no hair' is intended)" + if(isnull(default_f_style)) + . += "null default_f_style (use a shaved/hairless facial hair style if 'no facial hair' is intended)" + if(!length(blood_types)) + . += "missing at least one blood type" + if(default_bodytype && !(default_bodytype in available_bodytypes)) + . += "default bodytype is not in available bodytypes list" + if(!length(available_bodytypes)) + . += "missing at least one bodytype" + // TODO: Maybe make age descriptors optional, in case someone wants a 'timeless entity' species? + if(isnull(age_descriptor)) + . += "age descriptor was unset" + else if(!ispath(age_descriptor, /datum/appearance_descriptor/age)) + . += "age descriptor was not a /datum/appearance_descriptor/age subtype" + + if(cold_level_3) + if(cold_level_2) + if(cold_level_3 > cold_level_2) + . += "cold_level_3 ([cold_level_3]) was not lower than cold_level_2 ([cold_level_2])" + if(cold_level_1) + if(cold_level_3 > cold_level_1) + . += "cold_level_3 ([cold_level_3]) was not lower than cold_level_1 ([cold_level_1])" + if(cold_level_2 && cold_level_1) + if(cold_level_2 > cold_level_1) + . += "cold_level_2 ([cold_level_2]) was not lower than cold_level_1 ([cold_level_1])" + + if(heat_level_3 != INFINITY) + if(heat_level_2 != INFINITY) + if(heat_level_3 < heat_level_2) + . += "heat_level_3 ([heat_level_3]) was not higher than heat_level_2 ([heat_level_2])" + if(heat_level_1 != INFINITY) + if(heat_level_3 < heat_level_1) + . += "heat_level_3 ([heat_level_3]) was not higher than heat_level_1 ([heat_level_1])" + if((heat_level_2 != INFINITY) && (heat_level_1 != INFINITY)) + if(heat_level_2 < heat_level_1) + . += "heat_level_2 ([heat_level_2]) was not higher than heat_level_1 ([heat_level_1])" + + if(min(heat_level_1, heat_level_2, heat_level_3) <= max(cold_level_1, cold_level_2, cold_level_3)) + . += "heat and cold damage level thresholds overlap" + + if(taste_sensitivity < 0) + . += "taste_sensitivity ([taste_sensitivity]) was negative" + /decl/species/proc/equip_survival_gear(var/mob/living/carbon/human/H, var/box_type = /obj/item/storage/box/survival) var/obj/item/storage/backpack/backpack = H.get_equipped_item(slot_back_str) if(istype(backpack)) @@ -509,6 +605,9 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 var/list/organ_data = has_limbs[limb_type] var/limb_path = organ_data["path"] var/obj/item/organ/external/E = new limb_path(H, null, H.dna) //explicitly specify the dna + if(E.parent_organ) + var/list/parent_organ_data = has_limbs[E.parent_organ] + parent_organ_data["has_children"]++ H.add_organ(E, null, FALSE, FALSE) //Create missing internal organs @@ -684,15 +783,15 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 light -= H.equipment_light_protection return clamp(max(prescriptions, light), 0, 7) -/decl/species/proc/set_default_hair(var/mob/living/carbon/human/H) - if(H.h_style != H.species.default_h_style) - H.h_style = H.species.default_h_style +/decl/species/proc/set_default_hair(mob/living/carbon/human/organism, override_existing = TRUE, defer_update_hair = FALSE) + if(!organism.h_style || (override_existing && (organism.h_style != default_h_style))) + organism.h_style = default_h_style . = TRUE - if(H.f_style != H.species.default_f_style) - H.f_style = H.species.default_f_style + if(!organism.h_style || (override_existing && (organism.f_style != default_f_style))) + organism.f_style = default_f_style . = TRUE - if(.) - H.update_hair() + if(. && !defer_update_hair) + organism.update_hair() /decl/species/proc/handle_additional_hair_loss(var/mob/living/carbon/human/H, var/defer_body_update = TRUE) return FALSE @@ -805,11 +904,7 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 var/list/all_hairstyles = decls_repository.get_decls_of_subtype(/decl/sprite_accessory/hair) for(var/hairstyle in all_hairstyles) var/decl/sprite_accessory/S = all_hairstyles[hairstyle] - if(check_gender && S.gender && gender != S.gender) - continue - if(S.species_allowed && !(get_root_species_name() in S.species_allowed)) - continue - if(S.subspecies_allowed && !(name in S.subspecies_allowed)) + if(!S.accessory_is_available(null, src, null, (check_gender && gender))) continue ADD_SORTED(hair_style_by_gender, hairstyle, /proc/cmp_text_asc) hair_style_by_gender[hairstyle] = S @@ -834,11 +929,7 @@ var/global/const/DEFAULT_SPECIES_HEALTH = 200 var/list/all_facial_styles = decls_repository.get_decls_of_subtype(/decl/sprite_accessory/facial_hair) for(var/facialhairstyle in all_facial_styles) var/decl/sprite_accessory/S = all_facial_styles[facialhairstyle] - if(check_gender && S.gender && gender != S.gender) - continue - if(S.species_allowed && !(get_root_species_name() in S.species_allowed)) - continue - if(S.subspecies_allowed && !(name in S.subspecies_allowed)) + if(!S.accessory_is_available(null, src, null, (check_gender && gender))) continue ADD_SORTED(facial_hair_style_by_gender, facialhairstyle, /proc/cmp_text_asc) facial_hair_style_by_gender[facialhairstyle] = S diff --git a/code/modules/species/species_attack.dm b/code/modules/species/species_attack.dm index 2682e6b7206..cc4e5ed123d 100644 --- a/code/modules/species/species_attack.dm +++ b/code/modules/species/species_attack.dm @@ -123,8 +123,8 @@ /decl/natural_attack/tail/is_usable(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone) //ensures that you can't tail someone in the skull if(!(zone in can_hit_zones)) return FALSE - for(var/bp in list(BP_L_FOOT, BP_R_FOOT)) - if(GET_EXTERNAL_ORGAN(user, bp)) + for(var/foot_tag in list(BP_L_FOOT, BP_R_FOOT)) + if(GET_EXTERNAL_ORGAN(user, foot_tag)) return TRUE return FALSE diff --git a/code/modules/species/species_bodytype.dm b/code/modules/species/species_bodytype.dm index f34a2d25fcb..708566c1e7b 100644 --- a/code/modules/species/species_bodytype.dm +++ b/code/modules/species/species_bodytype.dm @@ -74,4 +74,17 @@ var/global/list/bodytypes_by_category = list() return disintegrate /decl/bodytype/proc/get_hug_zone_messages(var/zone) - return LAZYACCESS(hug_messages, zone) \ No newline at end of file + return LAZYACCESS(hug_messages, zone) + +/decl/bodytype/validate() + . = ..() + if(icon_base) + if(check_state_in_icon("torso", icon_base)) + . += "torso state present in icon_base" + if(!check_state_in_icon(BP_CHEST, icon_base)) + . += "chest state not present in icon_base" + if(icon_deformed && icon_deformed != icon_base) + if(check_state_in_icon("torso", icon_deformed)) + . += "torso state present in icon_deformed" + if(!check_state_in_icon(BP_CHEST, icon_deformed)) + . += "chest state not present in icon_deformed" diff --git a/code/modules/species/species_getters.dm b/code/modules/species/species_getters.dm index 773b4635b1d..7cfa04c99cb 100644 --- a/code/modules/species/species_getters.dm +++ b/code/modules/species/species_getters.dm @@ -74,12 +74,12 @@ /decl/species/proc/get_limb_from_zone(var/limb) . = length(LAZYACCESS(limb_mapping, limb)) ? pick(limb_mapping[limb]) : limb -/decl/species/proc/get_bodytype_by_name(var/bp) - if(!bp) +/decl/species/proc/get_bodytype_by_name(var/bodytype_name) + bodytype_name = trim(lowertext(bodytype_name)) + if(!bodytype_name) return - bp = lowertext(bp) for(var/decl/bodytype/bodytype in available_bodytypes) - if(lowertext(bodytype.name) == bp) + if(lowertext(bodytype.name) == bodytype_name) return bodytype /decl/species/proc/get_bodytype_by_pronouns(var/decl/pronouns/pronouns) diff --git a/code/modules/species/species_helpers.dm b/code/modules/species/species_helpers.dm index bdd8f38a558..a12f84e5333 100644 --- a/code/modules/species/species_helpers.dm +++ b/code/modules/species/species_helpers.dm @@ -53,8 +53,8 @@ var/global/list/stored_shock_by_ref = list() if(length(base_markings)) for(var/mark_type in base_markings) var/decl/sprite_accessory/marking/mark_decl = GET_DECL(mark_type) - for(var/bp in mark_decl.body_parts) - var/obj/item/organ/external/O = GET_EXTERNAL_ORGAN(mannequin, bp) + for(var/bodypart in mark_decl.body_parts) + var/obj/item/organ/external/O = GET_EXTERNAL_ORGAN(mannequin, bodypart) if(O && !LAZYACCESS(O.markings, mark_type)) LAZYSET(O.markings, mark_type, base_markings[mark_type]) diff --git a/code/modules/spells/hand/burning_grip.dm b/code/modules/spells/hand/burning_grip.dm index e1d841090c3..67883f59b3a 100644 --- a/code/modules/spells/hand/burning_grip.dm +++ b/code/modules/spells/hand/burning_grip.dm @@ -21,8 +21,8 @@ /spell/hand/burning_grip/cast_hand(var/mob/living/carbon/human/H, var/mob/user) var/list/targets = list() - for(var/bp in H.held_item_slots) - targets |= bp + for(var/hand_slot in H.held_item_slots) + targets |= hand_slot var/obj/O = new /obj/effect/temporary(get_turf(H),3, 'icons/effects/effects.dmi', "fire_goon") O.alpha = 150 diff --git a/code/modules/sprite_accessories/_accessory.dm b/code/modules/sprite_accessories/_accessory.dm index 9ac2a1d86b8..46a0a1e9447 100644 --- a/code/modules/sprite_accessories/_accessory.dm +++ b/code/modules/sprite_accessories/_accessory.dm @@ -17,12 +17,32 @@ */ /decl/sprite_accessory + abstract_type = /decl/sprite_accessory var/name // The preview name of the accessory var/icon // the icon file the accessory is located in var/icon_state // the icon_state of the accessory var/gender = null // Restricted to specific genders. null matches any - var/list/species_allowed = list(SPECIES_HUMAN) // Restrict some styles to specific bodytypes - var/list/subspecies_allowed // Restrict some styles to specific species names + var/list/species_allowed = list(SPECIES_HUMAN) // Restrict some styles to specific root species names + var/list/subspecies_allowed // Restrict some styles to specific species names, irrespective of root species name + var/bodytypes_allowed = null // Restrict some styles to specific bodytypes + var/bodytypes_denied = null // Restrict some styles to specific bodytypes var/do_colouration = 1 // Whether or not the accessory can be affected by colouration var/blend = ICON_ADD - var/flags = 0 \ No newline at end of file + var/flags = 0 + +/decl/sprite_accessory/proc/accessory_is_available(var/mob/owner, var/decl/species/species, var/bodytype_flags, var/check_gender) + if(!isnull(check_gender) && gender && check_gender != gender) + return FALSE + if(species) + var/species_is_permitted = TRUE + if(species_allowed) + species_is_permitted = (species.get_root_species_name(owner) in species_allowed) + if(subspecies_allowed) + species_is_permitted = (species.name in subspecies_allowed) + if(!species_is_permitted) + return FALSE + if(!isnull(bodytypes_allowed) && !(bodytypes_allowed & bodytype_flags)) + return FALSE + if(!isnull(bodytypes_denied) && (bodytypes_denied & bodytype_flags)) + return FALSE + return TRUE diff --git a/code/modules/sprite_accessories/_accessory_facial.dm b/code/modules/sprite_accessories/_accessory_facial.dm index fd089367336..b1c70136c4d 100644 --- a/code/modules/sprite_accessories/_accessory_facial.dm +++ b/code/modules/sprite_accessories/_accessory_facial.dm @@ -7,6 +7,7 @@ */ /decl/sprite_accessory/facial_hair + abstract_type = /decl/sprite_accessory/facial_hair icon = 'icons/mob/human_races/species/human/facial.dmi' gender = MALE @@ -14,7 +15,10 @@ name = "Shaved" icon_state = "bald" gender = null - species_allowed = list(SPECIES_HUMAN) + species_allowed = null + subspecies_allowed = null + bodytypes_allowed = null + bodytypes_denied = null /decl/sprite_accessory/facial_hair/watson name = "Watson Mustache" @@ -55,7 +59,6 @@ /decl/sprite_accessory/facial_hair/elvis name = "Elvis Sideburns" icon_state = "facial_elvis" - species_allowed = list(SPECIES_HUMAN) /decl/sprite_accessory/facial_hair/abe name = "Abraham Lincoln Beard" diff --git a/code/modules/sprite_accessories/_accessory_hair.dm b/code/modules/sprite_accessories/_accessory_hair.dm index 5d1d34d032b..26738c69487 100644 --- a/code/modules/sprite_accessories/_accessory_hair.dm +++ b/code/modules/sprite_accessories/_accessory_hair.dm @@ -7,13 +7,18 @@ */ /decl/sprite_accessory/hair + abstract_type = /decl/sprite_accessory/hair icon = 'icons/mob/human_races/species/human/hair.dmi' /decl/sprite_accessory/hair/bald name = "Bald" icon_state = "bald" - species_allowed = list(SPECIES_HUMAN) flags = VERY_SHORT | HAIR_BALD + gender = null + species_allowed = null + subspecies_allowed = null + bodytypes_allowed = null + bodytypes_denied = null /decl/sprite_accessory/hair/short name = "Short Hair" // try to capatilize the names please~ diff --git a/code/modules/sprite_accessories/_accessory_markings.dm b/code/modules/sprite_accessories/_accessory_markings.dm index ddb1115ab34..d9d41d8c798 100644 --- a/code/modules/sprite_accessories/_accessory_markings.dm +++ b/code/modules/sprite_accessories/_accessory_markings.dm @@ -1,16 +1,33 @@ //body markings - /decl/sprite_accessory/marking icon = 'icons/mob/human_races/species/default_markings.dmi' do_colouration = 1 //Almost all of them have it, COLOR_ADD + abstract_type = /decl/sprite_accessory/marking //Empty list is unrestricted. Should only restrict the ones that make NO SENSE on other species, //like IPC optics overlay stuff. - species_allowed = list(SPECIES_HUMAN) var/layer_blend = ICON_OVERLAY var/body_parts = list() //A list of bodyparts this covers, in organ_tag defines //Reminder: BP_L_FOOT,BP_R_FOOT,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_CHEST,BP_GROIN,BP_HEAD var/draw_target = MARKING_TARGET_SKIN var/list/disallows = list() //A list of other marking types to ban from adding when this marking is already added + var/list/icons = list() + var/mask_to_bodypart = TRUE + +/decl/sprite_accessory/marking/proc/get_cached_marking_icon(var/decl/bodytype/bodytype, var/bodypart, var/color = COLOR_WHITE) + LAZYINITLIST(icons[bodytype]) + LAZYINITLIST(icons[bodytype][bodypart]) + if(!icons[bodytype][bodypart][color]) + var/icon/marking_icon = icon(icon, icon_state) // make a new one to avoid mutating the base + if(mask_to_bodypart) + marking_icon.Blend(get_limb_mask_for(bodytype, bodypart), ICON_MULTIPLY) + marking_icon.Blend(color, blend) + icons[bodytype][bodypart][color] = marking_icon + return icons[bodytype][bodypart][color] + +/decl/sprite_accessory/marking/validate() + . = ..() + if(!check_state_in_icon(icon_state, icon)) + . += "missing icon state \"[icon_state]\" in [icon]" /decl/sprite_accessory/marking/tat_hive name = "Tattoo (Hive, Back)" diff --git a/code/modules/sprite_accessories/_accessory_skin.dm b/code/modules/sprite_accessories/_accessory_skin.dm deleted file mode 100644 index 7036d2e4610..00000000000 --- a/code/modules/sprite_accessories/_accessory_skin.dm +++ /dev/null @@ -1,16 +0,0 @@ - -//skin styles - WIP -//going to have to re-integrate this with surgery -//let the icon_state hold an icon preview for now -/decl/sprite_accessory/skin - icon = 'icons/mob/human_races/species/human/body_female.dmi' - -/decl/sprite_accessory/skin/human - name = "Default human skin" - icon_state = "default" - species_allowed = list(SPECIES_HUMAN) - -/decl/sprite_accessory/skin/human_tatt01 - name = "Tatt01 human skin" - icon_state = "tatt1" - species_allowed = list(SPECIES_HUMAN) diff --git a/code/modules/submaps/_submap.dm b/code/modules/submaps/_submap.dm index 9536f9d639e..20404728d37 100644 --- a/code/modules/submaps/_submap.dm +++ b/code/modules/submaps/_submap.dm @@ -45,13 +45,13 @@ qdel(src) return - var/obj/effect/overmap/visitable/cell = global.overmap_sectors["[associated_z]"] + var/obj/effect/overmap/visitable/cell = global.overmap_sectors[num2text(associated_z)] if(istype(cell)) sync_cell(cell) // Add the spawn points to the appropriate job list. var/registered_spawnpoint - for(var/check_z in GetConnectedZlevels(associated_z)) + for(var/check_z in SSmapping.get_connected_levels(associated_z)) for(var/obj/abstract/submap_landmark/spawnpoint/landmark in LAZYACCESS(global.submap_spawnpoints_by_z, "[check_z]")) var/datum/job/submap/job = jobs[landmark.name] if(istype(job)) diff --git a/code/modules/submaps/submap_landmark.dm b/code/modules/submaps/submap_landmark.dm index cf33c19bd49..65cf96aa48e 100644 --- a/code/modules/submaps/submap_landmark.dm +++ b/code/modules/submaps/submap_landmark.dm @@ -27,14 +27,15 @@ var/global/list/submap_spawnpoints_by_z = list() INITIALIZE_IMMEDIATE(/obj/abstract/submap_landmark/spawnpoint) /obj/abstract/submap_landmark/spawnpoint + movable_flags = MOVABLE_FLAG_ALWAYS_SHUTTLEMOVE icon_state = "x3" /obj/abstract/submap_landmark/spawnpoint/Initialize() . = ..() - LAZYADD(global.submap_spawnpoints_by_z["[z]"], src) + LAZYADD(global.submap_spawnpoints_by_z[num2text(z)], src) /obj/abstract/submap_landmark/spawnpoint/Destroy() - LAZYREMOVE(global.submap_spawnpoints_by_z["[z]"], src) + LAZYREMOVE(global.submap_spawnpoints_by_z[num2text(z)], src) . = ..() /obj/abstract/submap_landmark/spawnpoint/survivor diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index ba129fa4dc4..c9886861b9d 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -300,7 +300,7 @@ var/global/list/supermatter_delam_accent_sounds = list( if(!istype(TS)) return - var/list/affected_z = GetConnectedZlevels(TS.z) + var/list/affected_z = SSmapping.get_connected_levels(TS.z) // Effect 1: Radiation, weakening to all mobs on Z level for(var/z in affected_z) @@ -539,7 +539,7 @@ var/global/list/supermatter_delam_accent_sounds = list( if(!power) animate_filter("outline", list(size = 0)) - color = color_contrast(Interpolate(0, 50, clamp( (damage - emergency_point) / (explosion_point - emergency_point),0,1))) + color = color_matrix_contrast(Interpolate(1, 5, clamp( (damage - emergency_point) / (explosion_point - emergency_point), 0, 1))) if (damage >= emergency_point && !damage_animation) start_damage_animation() diff --git a/code/modules/turbolift/turbolift_areas.dm b/code/modules/turbolift/turbolift_areas.dm index dbf568aec2e..fcc9558991b 100644 --- a/code/modules/turbolift/turbolift_areas.dm +++ b/code/modules/turbolift/turbolift_areas.dm @@ -4,6 +4,7 @@ base_turf = /turf/simulated/open requires_power = 0 sound_env = SMALL_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_LIFTS var/lift_floor_label = null var/lift_floor_name = null diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index 0e65320e500..2bc98d39530 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -34,7 +34,7 @@ var/global/list/ventcrawl_machinery = list( /mob/living/proc/is_allowed_vent_crawl_item(var/obj/item/carried_item) if(is_type_in_list(carried_item, can_enter_vent_with)) - return !get_inventory_slot(carried_item) + return !get_equipped_slot_for_item(carried_item) /mob/living/carbon/is_allowed_vent_crawl_item(var/obj/item/carried_item) return (carried_item in get_internal_organs()) || ..() @@ -45,10 +45,11 @@ var/global/list/ventcrawl_machinery = list( return TRUE if(carried_item in get_external_organs()) return TRUE - for(var/slot in list(slot_w_uniform_str, slot_glasses_str, slot_glasses_str, slot_wear_mask_str, slot_l_ear_str, slot_r_ear_str, slot_belt_str, slot_l_store_str, slot_r_store_str)) - if(get_equipped_item(slot) == carried_item) - return TRUE - if(carried_item in get_held_items()) + var/slot = get_equipped_slot_for_item(carried_item) + var/static/allowed_inventory_slots = list(slot_w_uniform_str, slot_gloves_str, slot_glasses_str, slot_wear_mask_str, slot_l_ear_str, slot_r_ear_str, slot_belt_str, slot_l_store_str, slot_r_store_str) + if(slot in allowed_inventory_slots) + return TRUE + else if (slot || (carried_item in get_held_items()) || (carried_item in worn_underwear)) return carried_item.w_class <= ITEM_SIZE_NORMAL return ..() diff --git a/code/modules/weather/weather_init.dm b/code/modules/weather/weather_init.dm index f3ac5ba7af5..019aed17e93 100644 --- a/code/modules/weather/weather_init.dm +++ b/code/modules/weather/weather_init.dm @@ -16,13 +16,13 @@ INITIALIZE_IMMEDIATE(/obj/abstract/weather_system) weather_system.set_state(initial_weather || /decl/state/weather/calm) // Track our affected z-levels. - affecting_zs = GetConnectedZlevels(target_z) + affecting_zs = SSmapping.get_connected_levels(target_z) // If we're post-init, init immediately. if(SSweather.initialized) addtimer(CALLBACK(src, .proc/init_weather), 0) -// Start the weather effects from the highest point; they will propagate downwards during update. +// Start the weather effects from the highest point; they will propagate downwards during update. /obj/abstract/weather_system/proc/init_weather() // Track all z-levels. var/highest_z = affecting_zs[1] diff --git a/code/modules/xenoarcheaology/artifacts/artifact.dm b/code/modules/xenoarcheaology/artifacts/artifact.dm index 7d207b25da9..0b57d38e860 100644 --- a/code/modules/xenoarcheaology/artifacts/artifact.dm +++ b/code/modules/xenoarcheaology/artifacts/artifact.dm @@ -67,7 +67,7 @@ touched(G.assailant) var/datum/gas_mixture/enivonment = T.return_air() - if(enivonment.return_pressure() >= SOUND_MINIMUM_PRESSURE) + if(enivonment?.return_pressure() >= SOUND_MINIMUM_PRESSURE) check_triggers(/datum/artifact_trigger/proc/on_gas_exposure, enivonment) for(var/datum/artifact_effect/effect in list(my_effect, secondary_effect)) diff --git a/code/modules/xenoarcheaology/artifacts/effects/forcefield.dm b/code/modules/xenoarcheaology/artifacts/effects/forcefield.dm index ecb080fb291..f91243ca98a 100644 --- a/code/modules/xenoarcheaology/artifacts/effects/forcefield.dm +++ b/code/modules/xenoarcheaology/artifacts/effects/forcefield.dm @@ -27,6 +27,7 @@ /datum/artifact_effect/forcefield/process() ..() + // This should probably rebuild the field as done in UpdateMove() for(var/obj/effect/energy_field/E in created_field) if(E.strength < 1) E.Strengthen(0.15) @@ -39,14 +40,29 @@ var/list/circle = getcircle(T, effect_range) //for now, just instantly respawn the fields when they get destroyed while(LAZYLEN(created_field) < length(circle)) - LAZYADD(created_field, new /obj/effect/energy_field/prepared()) + LAZYADD(created_field, new /obj/effect/energy_field/artifact(null, src)) for(var/i = 1 to min(length(created_field), length(circle))) var/obj/effect/energy_field/E = created_field[i] E.forceMove(circle[i]) E.color = field_color //Subtype with all the needed vars set, ready to block stuff -/obj/effect/energy_field/prepared +/obj/effect/energy_field/artifact strength = 1 density = 1 invisibility = 0 + is_spawnable_type = FALSE + var/datum/artifact_effect/forcefield/owner + +/obj/effect/energy_field/artifact/Initialize(var/ml, var/_owner) + owner = _owner + if(!istype(owner)) + PRINT_STACK_TRACE("Artifact forcefield created with [owner ? "invalid" : "null"] owning effect.") + return INITIALIZE_HINT_QDEL + return ..(ml) + +/obj/effect/energy_field/artifact/Destroy() + if(owner) + LAZYREMOVE(owner.created_field, src) + owner = null + return ..() diff --git a/code/modules/xenoarcheaology/artifacts/effects/heal.dm b/code/modules/xenoarcheaology/artifacts/effects/heal.dm index 931856a4a4d..57de01f9ec8 100644 --- a/code/modules/xenoarcheaology/artifacts/effects/heal.dm +++ b/code/modules/xenoarcheaology/artifacts/effects/heal.dm @@ -30,7 +30,7 @@ C.adjustBrainLoss(-force) if(strong) C.apply_radiation(-25 * weakness) - C.bodytemperature = initial(C.bodytemperature) + C.bodytemperature = C.species?.body_temperature || initial(C.bodytemperature) C.adjust_nutrition(50 * weakness) if(ishuman(C)) var/mob/living/carbon/human/H = C diff --git a/code/modules/xenoarcheaology/finds/find_types/_find.dm b/code/modules/xenoarcheaology/finds/find_types/_find.dm index 1be0aa75eb4..ce4120bf4c7 100644 --- a/code/modules/xenoarcheaology/finds/find_types/_find.dm +++ b/code/modules/xenoarcheaology/finds/find_types/_find.dm @@ -73,7 +73,7 @@ var/global/list/responsive_carriers = list( return /decl/archaeological_find/proc/generate_engravings(obj/item/I) - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[get_z(I)]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(get_z(I))] . = "[pick("Engraved","Carved","Etched")] on the item is [pick("an image of","a frieze of","a depiction of")] " if(istype(E)) . += E.get_engravings() diff --git a/code/modules/xgm/xgm_gas_mixture.dm b/code/modules/xgm/xgm_gas_mixture.dm index cada94c6908..5f1976275fc 100644 --- a/code/modules/xgm/xgm_gas_mixture.dm +++ b/code/modules/xgm/xgm_gas_mixture.dm @@ -446,10 +446,10 @@ if(full_heat_capacity + s_full_heat_capacity) temp_avg = (temperature * full_heat_capacity + other.temperature * s_full_heat_capacity) / (full_heat_capacity + s_full_heat_capacity) - //WOOT WOOT TOUCH THIS AND YOU ARE A RETARD. + //WOOT WOOT DO NOT TOUCH THIS. if(sharing_lookup_table.len >= connecting_tiles) //6 or more interconnecting tiles will max at 42% of air moved per tick. ratio = sharing_lookup_table[connecting_tiles] - //WOOT WOOT TOUCH THIS AND YOU ARE A RETARD + //WOOT WOOT DO NOT TOUCH THIS. for(var/g in avg_gas) gas[g] = max(0, (gas[g] - avg_gas[g]) * (1 - ratio) + avg_gas[g]) diff --git a/code/procs/AStar.dm b/code/procs/AStar.dm index 77ac0d2073b..e3cf62730d7 100644 --- a/code/procs/AStar.dm +++ b/code/procs/AStar.dm @@ -61,7 +61,7 @@ length to avoid portals or something i guess?? Not that they're counted right no return a.estimated_cost - b.estimated_cost /proc/AStar(var/start, var/end, adjacent, dist, var/max_nodes, var/max_node_depth = 30, var/min_target_dist = 0, var/min_node_dist, var/id, var/datum/exclude) - var/PriorityQueue/open = new /PriorityQueue(/proc/PathWeightCompare) + var/datum/priority_queue/open = new /datum/priority_queue(/proc/PathWeightCompare) var/list/closed = list() var/list/path var/list/path_node_by_position = list() diff --git a/code/procs/announce.dm b/code/procs/announce.dm index 08cc68561fd..19bdf7b4933 100644 --- a/code/procs/announce.dm +++ b/code/procs/announce.dm @@ -31,7 +31,7 @@ var/global/datum/announcement/minor/minor_announcement = new(new_sound = 'sound/ log = do_log newscast = do_newscast -/datum/announcement/proc/Announce(var/message, var/new_title = "", var/new_sound = null, var/do_newscast = newscast, var/msg_sanitized = 0, var/zlevels = global.using_map.contact_levels) +/datum/announcement/proc/Announce(var/message, var/new_title = "", var/new_sound = null, var/do_newscast = newscast, var/msg_sanitized = 0, var/zlevels = SSmapping.contact_levels) if(!message) return @@ -50,7 +50,7 @@ var/global/datum/announcement/minor/minor_announcement = new(new_sound = 'sound/ var/msg = FormMessage(message, message_title) for(var/mob/M in global.player_list) - if((get_z(M) in (zlevels | global.using_map.admin_levels)) && !isnewplayer(M) && !isdeaf(M)) + if((get_z(M) in (zlevels | SSmapping.admin_levels)) && !isnewplayer(M) && !isdeaf(M)) to_chat(M, msg) if(message_sound) sound_to(M, message_sound) diff --git a/code/procs/radio.dm b/code/procs/radio.dm index 4421164b934..7494a4525ac 100644 --- a/code/procs/radio.dm +++ b/code/procs/radio.dm @@ -51,7 +51,7 @@ // TODO: remove this when tcomms are moved to network devices. /proc/get_message_server_for_z(z) - var/list/local_zs = GetConnectedZlevels(z) + var/list/local_zs = SSmapping.get_connected_levels(z) for(var/obj/machinery/network/message_server/MS in SSmachines.machinery) if((MS.z in local_zs) && !(MS.stat & (BROKEN|NOPOWER))) return MS diff --git a/code/unit_tests/atmospherics_tests.dm b/code/unit_tests/atmospherics_tests.dm index 207fa45d02a..4dd84f63b92 100644 --- a/code/unit_tests/atmospherics_tests.dm +++ b/code/unit_tests/atmospherics_tests.dm @@ -381,7 +381,7 @@ var/fail = FALSE // make a place to test - INCREMENT_WORLD_Z_SIZE + SSmapping.increment_world_z_size(/obj/abstract/level_data/unit_test) for(var/turf/T in block(locate(1, 1, world.maxz), locate(3, 3, world.maxz))) T.ChangeTurf(/turf/simulated/floor) var/turf/T = locate(2, 2, world.maxz) diff --git a/code/unit_tests/equipment_tests.dm b/code/unit_tests/equipment_tests.dm index a2192834356..38b9e8e5f8a 100644 --- a/code/unit_tests/equipment_tests.dm +++ b/code/unit_tests/equipment_tests.dm @@ -93,3 +93,45 @@ bad_tests++ return bad_tests + +// ============================================================================ + +/datum/unit_test/equipment_slot_test + name = "EQUIPMENT: Equip procs should pass tests" + +/datum/unit_test/equipment_slot_test/proc/check_slot_successful(mob/living/carbon/human/subject, obj/item/item, which_slot, list/failure_list) + subject.equip_to_slot_if_possible(item, which_slot) + if(!subject.isEquipped(item)) + failure_list += "[item] was equipped to [which_slot] but failed isEquipped." + else if(subject.get_equipped_slot_for_item(item) != which_slot) + var/equipped_location = subject.get_equipped_slot_for_item(item) + failure_list += "[item] was expected to be equipped to [which_slot] but get_equipped_slot_for_item returned [isnull(equipped_location) ? "NULL" : equipped_location]." + subject.unEquip(item) + if(subject.isEquipped(item)) + failure_list += "[item] remained equipped to [subject.get_equipped_slot_for_item(item)] after unEquip was called." + +/datum/unit_test/equipment_slot_test/proc/check_slot_failure(mob/living/carbon/human/subject, obj/item/item, which_slot, list/failure_list) + subject.equip_to_slot_if_possible(item, which_slot) + if(subject.isEquipped(item)) + var/equipped_location = subject.get_equipped_slot_for_item(item) + failure_list += "isEquipped([item]) returned true but should have failed (was equipped to [isnull(equipped_location) ? "NULL" : equipped_location])." + else if(subject.get_equipped_slot_for_item(item)) + var/equipped_location = subject.get_equipped_slot_for_item(item) + failure_list += "[item] was equipped to [equipped_location] despite failing isEquipped (should not be equipped)." + +/datum/unit_test/equipment_slot_test/start_test() + var/mob/living/carbon/human/subject = new(get_safe_turf()) + var/obj/item/clothing/head/hairflower/flower = new + var/list/failures = list() + check_slot_successful(subject, flower, slot_head_str, failures) + check_slot_successful(subject, flower, slot_l_ear_str, failures) + check_slot_successful(subject, flower, slot_r_ear_str, failures) + check_slot_failure(subject, flower, slot_back_str, failures) + if(length(failures)) + fail("[length(failures)] problems with equipment slots:\n\t- [jointext(failures,"\n\t- ")]") + else + pass("No problems with equipment slots detected.") + QDEL_NULL(subject) + QDEL_NULL(flower) + + return TRUE \ No newline at end of file diff --git a/code/unit_tests/map_tests.dm b/code/unit_tests/map_tests.dm index a55d03c79f1..fc69510d31c 100644 --- a/code/unit_tests/map_tests.dm +++ b/code/unit_tests/map_tests.dm @@ -258,7 +258,7 @@ /datum/unit_test/map_image_map_test/start_test() var/failed = FALSE - for(var/z in global.using_map.map_levels) + for(var/z in SSmapping.map_levels) var/file_name = map_image_file_name(z) var/file_path = MAP_IMAGE_PATH + file_name if(!fexists(file_path)) @@ -538,20 +538,20 @@ //======================================================================================= -/datum/unit_test/station_pipes_shall_not_leak - name = "MAP: Station pipes shall not leak" +/datum/unit_test/pipes_shall_not_leak + name = "MAP: Pipes shall not leak unless allowed" -/datum/unit_test/station_pipes_shall_not_leak/start_test() +/datum/unit_test/pipes_shall_not_leak/start_test() var/failures = 0 for(var/obj/machinery/atmospherics/pipe/P in SSmachines.machinery) - if(P.leaking && isStationLevel(P.z)) + if(P.leaking && !(locate(/obj/abstract/landmark/allowed_leak) in get_turf(P))) failures++ log_bad("Following pipe is leaking: [log_info_line(P)]") if(failures) - fail("[failures] station pipe\s leak.") + fail("[failures] pipe\s leaking without allowed leak landmark!") else - pass("No station pipes are leaking") + pass("No pipes are leaking.") return 1 //======================================================================================= diff --git a/code/unit_tests/proximity_tests.dm b/code/unit_tests/proximity_tests.dm index 51d4ea01d33..5e60114967c 100644 --- a/code/unit_tests/proximity_tests.dm +++ b/code/unit_tests/proximity_tests.dm @@ -10,6 +10,7 @@ name = "PROXIMITY: " + name /datum/unit_test/proximity/setup_test() + ..() proximity_listener = new(get_turf(locate(/obj/abstract/landmark/proximity_spawner))) wall = get_turf(locate(/obj/abstract/landmark/proximity_wall)) diff --git a/code/unit_tests/unit_test.dm b/code/unit_tests/unit_test.dm index 355117a3870..5dfdfbfcbbc 100644 --- a/code/unit_tests/unit_test.dm +++ b/code/unit_tests/unit_test.dm @@ -62,6 +62,7 @@ var/global/ascii_reset = "[ascii_esc]\[0m" var/static/safe_landmark var/static/space_landmark var/check_cleanup + var/list/times_fired_at_setup /datum/unit_test/proc/log_debug(var/message) log_unit_test("[ascii_yellow]--- DEBUG --- \[[name]\]: [message][ascii_reset]") @@ -86,6 +87,11 @@ var/global/ascii_reset = "[ascii_esc]\[0m" // Executed before the test runs - Primarily intended for shared setup (generally in templates) /datum/unit_test/proc/setup_test() + SHOULD_CALL_PARENT(TRUE) + if(async) + LAZYINITLIST(times_fired_at_setup) + for(var/datum/controller/subsystem/subsystem_to_await in subsystems_to_await()) + times_fired_at_setup[subsystem_to_await] = subsystem_to_await.times_fired return /datum/unit_test/proc/start_test() diff --git a/code/unit_tests/zlevel_tests.dm b/code/unit_tests/zlevel_tests.dm new file mode 100644 index 00000000000..0b33829fc27 --- /dev/null +++ b/code/unit_tests/zlevel_tests.dm @@ -0,0 +1,14 @@ +/datum/unit_test/all_zlevels_will_have_a_non_filler_data_object + name = "ZLEVELS: All Z-Levels Will Have A Valid Data Object" + +/datum/unit_test/all_zlevels_will_have_a_non_filler_data_object/start_test() + var/list/failures = list() + for(var/z = 1 to world.maxz) + var/obj/abstract/level_data/level_data = SSmapping.levels_by_z[z] + if(!level_data) + failures += "z[z] has no level data object" + if(length(failures)) + fail("Some z-levels had invalid level data objects:\n[jointext(failures, "\n")]") + else + pass("All z-levels had valid level data objects.") + return 1 diff --git a/code/unit_tests/~unit_test_subsystems.dm b/code/unit_tests/~unit_test_subsystems.dm index e23ea62ca2f..57d1f69a19e 100644 --- a/code/unit_tests/~unit_test_subsystems.dm +++ b/code/unit_tests/~unit_test_subsystems.dm @@ -52,8 +52,7 @@ SUBSYSTEM_DEF(unit_tests) /datum/controller/subsystem/unit_tests/proc/load_template(datum/map_template/map_template) // Suggestion: Do smart things here to squeeze as many templates as possible into the same Z-level if(map_template.tallness == 1) - INCREMENT_WORLD_Z_SIZE - global.using_map.sealed_levels += world.maxz // TODO: make maps handle this with /obj/abstract/level_data + SSmapping.increment_world_z_size(/obj/abstract/level_data/unit_test) var/corner = locate(world.maxx/2, world.maxy/2, world.maxz) log_unit_test("Loading template '[map_template]' ([map_template.type]) at [log_info_line(corner)]") map_template.load(corner) @@ -109,7 +108,7 @@ SUBSYSTEM_DEF(unit_tests) var/datum/unit_test/test = current_async[async.len] for(var/S in test.subsystems_to_await()) var/datum/controller/subsystem/subsystem = S - if(subsystem.times_fired < 1) + if(subsystem.times_fired <= test.times_fired_at_setup[subsystem]) return async.len-- if(check_unit_test(test, end_unit_tests)) diff --git a/config/example/config.txt b/config/example/config.txt index 37ff4b1b8bd..6ccae16a1e9 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -362,8 +362,9 @@ EVENT_CUSTOM_START_MAJOR 80;100 ## Respawn delay in minutes before one may respawn as a crew member. #RESPAWN_DELAY 30 -## Strength of ambient star light. Set to 0 or less to turn off. A value of 1 is unlikely to have a noticeable effect in most lighting systems. -STARLIGHT 0 +## Percentile strength of exterior ambient light (such as starlight). 0.5 is 50% lit. +EXTERIOR_AMBIENT_LIGHT 0 + ## Defines how Law Zero is phrased. Primarily used in the Malfunction gamemode. # LAW_ZERO ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010 diff --git a/config/example/game_options.txt b/config/example/game_options.txt index ea383accca3..4a195f012dd 100644 --- a/config/example/game_options.txt +++ b/config/example/game_options.txt @@ -47,7 +47,7 @@ REVIVAL_BRAIN_LIFE -1 ## These values get directly added to values and totals in-game. To speed things up make the number negative, to slow things down, make the number positive. -## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied. +## These modify the run/walk speed of all mobs before the mob-specific modifiers are applied. RUN_DELAY 2 WALK_DELAY 4 CREEP_DELAY 6 @@ -104,3 +104,10 @@ MAX_CLIENT_VIEW_Y 30 ## Threshold of where brain damage begins to affect dexterity (70 brainloss above this means zero dexterity). Default is 30. #DEXTERITY_MALUS_BRAINLOSS_THRESHOLD 30 + +## Whether or not all human mobs have very basic darksight by default. +#GRANT_DEFAULT_DARKSIGHT + +## The range and effectiveness of default darksight if above is uncommented. +#DEFAULT_DARKSIGHT_EFFECTIVENESS 0.05 +#DEFAULT_DARKSIGHT_RANGE 2 \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 84562af656a..90c8145dcd1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -52,90 +52,42 @@ -->
-

21 December 2022

-

MistakeNot4892 updated:

+

13 February 2023

+

Chinsky updated:

    -
  • There is now a grace period on losing your brain before your mob will die.
  • +
  • Remapped Tradeship main shuttle to a slightly more spacious one
  • +
  • Steel katanas were woefully underpowered, they are now actually sharp
  • +
  • Steel is harder now
-

05 December 2022

-

PsyCommando updated:

-
    -
  • Tweaked the airlock controller UI a little bit for the advanced airlock controller. Makes it fit better in its window, and reorganized the buttons around to look a bit less messy.
  • -
  • Adjusted directional offsets for airlock devices, so they actually are aligned to walls.
  • -
  • Adjusted directional offsets of warning signs since they kept covering up airlock devices on the tradeship map.
  • -
  • Fixed sanitizing id_tags set via multitool on the airlock machinery.
  • -
  • Fixed airlock machinery generally falling out of sync with eachother.
  • -
  • Added new icons for airlock sensor and airlock access button. They have overlays and directions now.
  • -
- -

30 November 2022

-

PsyCommando updated:

+

10 February 2023

+

Chinsky updated:

    -
  • Mapped ladders no longer change the turf they're on to the map default's open turf if they're on a lattice and any open turf types already during init. This could cause exterior/unsimulated open turfs to replace a simulated open turf and cause serious atmos issues.
  • -
  • Fixed some wall-mounted machines acting as fully constructed, when a circuitboard was installed and no wiring installed.
  • +
  • Remote terminal commands now properly check access of the target machine
-

27 November 2022

+

09 February 2023

PsyCommando updated:

    -
  • Fixed bad icons on /obj/machinery/partyalarm.
  • -
  • Fixed bad icons on /obj/machinery/dummy_airlock_controller.
  • -
  • Fixed bad icons on /obj/machinery/button/holosign.
  • -
  • Fixed bad icons on /obj/item/personal_shield.
  • -
  • Fixed bad icons on /obj/item/shield/energy.
  • -
  • Fixed bad icons on /turf/simulated/floor/tiled/stone.
  • -
  • Fixed bad icons on /obj/item/bone/skull.
  • -
  • Fixed bad icons on /obj/item/bee_smoker.
  • -
  • Fixed bad icons on /obj/item/shovel/spade.
  • -
  • Fixed bad icons on /obj/structure/crystal.
  • -
  • Fixed bad icons on /obj/item/storage/belt/archaeology.
  • -
  • Fixed /obj/abstract/map_data not showing up in mapping tool.
  • -
  • Fixed /obj/item/underwear not showing up in mapping tool.
  • -
  • Fixed /obj/abstract not showing up in mapping tool.
  • -
  • Fixed easily missed bad icon_state name on /obj/item/crowbar/brace_jack.
  • -
  • Fixed easily missed bad icon_state name on /turf/simulated/floor/tiled/monofloor.
  • -
  • Fixed some metallic materials causing runtimes from not having wall icon states defined properly.
  • -
  • Made a bunch of /obj/structure/closet/crate show a more accurate icon in the map editor instead of the default blank locker icon.
  • -
  • Added simple directional icons for airlock controller buttons and sensors.
  • -
  • Allowed connecting fuel pipes to TEG circulators.
  • +
  • fixed vents being nearly silent.
-

25 November 2022

-

PsyCommando updated:

+

06 February 2023

+

Chinsky updated:

    -
  • Fix mapped network machinery fields.
  • -
  • Fixed bad switch case in robot_component/take_damage() causing BURN and ELECTROCUTE damage to get ignored.
  • +
  • Machines with network connector stock parts now expose all of their functions over network
-

23 November 2022

-

PsyCommando updated:

+

01 February 2023

+

quardbreak updated:

    -
  • Fixed /obj/item/chems being shattered in nullspace causing a runtime.
  • +
  • Fixed missing circuit recipe for radiocarbon spectrometer.
-

22 November 2022

-

PsyCommando updated:

-
    -
  • Added some fairly bad wrapped package icons, and wrapped gifts icons.
  • -
- -

20 November 2022

-

PsyCommando updated:

-
    -
  • Fix disconnected pipes + blastdoors button on desperado/mercenary base.
  • -
- -

17 November 2022

-

MistakeNot4892 updated:

-
    -
  • Liver and brain regeneration has been tweaked, and all internal organs will now regenerate slowly to a point.
  • -
- -

15 November 2022

-

PsyCommando updated:

+

18 January 2023

+

NataKilar updated:

    -
  • Fix limb reattachment surgery not properly installing any contained internal organs once the last step was completed.
  • +
  • Items no longer appear heavily damaged regardless of their health
NamePositionActivity
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 51cca5925d9..491b4aee6d4 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -14437,3 +14437,27 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2022-12-21: MistakeNot4892: - tweak: There is now a grace period on losing your brain before your mob will die. +2023-01-14: + MistakeNot4892: + - tweak: Randomize Appearance is back. +2023-01-18: + NataKilar: + - bugfix: Items no longer appear heavily damaged regardless of their health +2023-02-01: + quardbreak: + - bugfix: Fixed missing circuit recipe for radiocarbon spectrometer. +2023-02-06: + Chinsky: + - bugfix: Machines with network connector stock parts now expose all of their functions + over network +2023-02-09: + PsyCommando: + - bugfix: fixed vents being nearly silent. +2023-02-10: + Chinsky: + - bugfix: Remote terminal commands now properly check access of the target machine +2023-02-13: + Chinsky: + - tweak: Remapped Tradeship main shuttle to a slightly more spacious one + - bugfix: Steel katanas were woefully underpowered, they are now actually sharp + - tweak: Steel is harder now diff --git a/html/changelogs/AutoChangeLog-pr-2866.yml b/html/changelogs/AutoChangeLog-pr-2866.yml deleted file mode 100644 index b012b9f806c..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2866.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: MistakeNot4892 -delete-after: true -changes: - - tweak: Randomize Appearance is back. diff --git a/icons/480x480.dmi b/icons/480x480.dmi index 90ea9fbd55c..0b6d072855a 100644 Binary files a/icons/480x480.dmi and b/icons/480x480.dmi differ diff --git a/icons/effects/64x64.dmi b/icons/effects/64x64.dmi new file mode 100644 index 00000000000..5ebf9ff164e Binary files /dev/null and b/icons/effects/64x64.dmi differ diff --git a/icons/mecha/mech_equipment.dmi b/icons/mecha/mech_equipment.dmi index 7ab411ffecd..6f3198ad535 100644 Binary files a/icons/mecha/mech_equipment.dmi and b/icons/mecha/mech_equipment.dmi differ diff --git a/icons/misc/holomap_markers.dmi b/icons/misc/holomap_markers.dmi new file mode 100644 index 00000000000..3ea32c120d0 Binary files /dev/null and b/icons/misc/holomap_markers.dmi differ diff --git a/icons/mob/bandage.dmi b/icons/mob/bandage.dmi index bab279f6c1d..807318555fd 100644 Binary files a/icons/mob/bandage.dmi and b/icons/mob/bandage.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/morgan/morgan_main.dmi b/icons/mob/human_races/cyberlimbs/morgan/morgan_main.dmi index 546259706dd..dfa94b94d13 100644 Binary files a/icons/mob/human_races/cyberlimbs/morgan/morgan_main.dmi and b/icons/mob/human_races/cyberlimbs/morgan/morgan_main.dmi differ diff --git a/icons/mob/human_races/cyberlimbs/robotic.dmi b/icons/mob/human_races/cyberlimbs/robotic.dmi index d16ee148203..2c149716cd2 100644 Binary files a/icons/mob/human_races/cyberlimbs/robotic.dmi and b/icons/mob/human_races/cyberlimbs/robotic.dmi differ diff --git a/icons/mob/human_races/species/default_markings.dmi b/icons/mob/human_races/species/default_markings.dmi index d38fccc8db6..0b2f3d0e074 100644 Binary files a/icons/mob/human_races/species/default_markings.dmi and b/icons/mob/human_races/species/default_markings.dmi differ diff --git a/icons/mob/human_races/species/golem/body.dmi b/icons/mob/human_races/species/golem/body.dmi index b3775425bbd..4a7e14a05b8 100644 Binary files a/icons/mob/human_races/species/golem/body.dmi and b/icons/mob/human_races/species/golem/body.dmi differ diff --git a/icons/mob/human_races/species/human/body_female.dmi b/icons/mob/human_races/species/human/body_female.dmi index bc073eeaf5a..e0dc8a7a036 100644 Binary files a/icons/mob/human_races/species/human/body_female.dmi and b/icons/mob/human_races/species/human/body_female.dmi differ diff --git a/icons/mob/human_races/species/human/body_male.dmi b/icons/mob/human_races/species/human/body_male.dmi index 9071e875780..7e030274282 100644 Binary files a/icons/mob/human_races/species/human/body_male.dmi and b/icons/mob/human_races/species/human/body_male.dmi differ diff --git a/icons/mob/human_races/species/human/deformed_body_female.dmi b/icons/mob/human_races/species/human/deformed_body_female.dmi index da386c18ad1..a1fa8ba191f 100644 Binary files a/icons/mob/human_races/species/human/deformed_body_female.dmi and b/icons/mob/human_races/species/human/deformed_body_female.dmi differ diff --git a/icons/mob/human_races/species/human/deformed_body_male.dmi b/icons/mob/human_races/species/human/deformed_body_male.dmi index 573dc76e9f5..7527d698a8b 100644 Binary files a/icons/mob/human_races/species/human/deformed_body_male.dmi and b/icons/mob/human_races/species/human/deformed_body_male.dmi differ diff --git a/icons/mob/human_races/species/humanoid/body.dmi b/icons/mob/human_races/species/humanoid/body.dmi index 989dcb243af..65f0f5676da 100644 Binary files a/icons/mob/human_races/species/humanoid/body.dmi and b/icons/mob/human_races/species/humanoid/body.dmi differ diff --git a/icons/mob/human_races/species/monkey/monkey_body.dmi b/icons/mob/human_races/species/monkey/monkey_body.dmi index 778798ae48d..11779ee5b99 100644 Binary files a/icons/mob/human_races/species/monkey/monkey_body.dmi and b/icons/mob/human_races/species/monkey/monkey_body.dmi differ diff --git a/icons/mob/surgery.dmi b/icons/mob/surgery.dmi index 8457a59526b..eb38e6236eb 100644 Binary files a/icons/mob/surgery.dmi and b/icons/mob/surgery.dmi differ diff --git a/icons/obj/action_buttons/organs.dmi b/icons/obj/action_buttons/organs.dmi index 31555e745ad..7c37127dae9 100644 Binary files a/icons/obj/action_buttons/organs.dmi and b/icons/obj/action_buttons/organs.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 4675377c351..aed58717933 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/guns/machine.dmi b/icons/obj/guns/machine.dmi new file mode 100644 index 00000000000..cf566eea211 Binary files /dev/null and b/icons/obj/guns/machine.dmi differ diff --git a/icons/obj/machines/stationmap.dmi b/icons/obj/machines/stationmap.dmi new file mode 100644 index 00000000000..f57bf08913e Binary files /dev/null and b/icons/obj/machines/stationmap.dmi differ diff --git a/icons/turf/wall_texture.dmi b/icons/turf/wall_texture.dmi index 265e997b932..8a8de81c25a 100644 Binary files a/icons/turf/wall_texture.dmi and b/icons/turf/wall_texture.dmi differ diff --git a/maps/antag_spawn/ert/ert_base.dmm b/maps/antag_spawn/ert/ert_base.dmm index 610deb5bc54..75d2ed24e47 100644 --- a/maps/antag_spawn/ert/ert_base.dmm +++ b/maps/antag_spawn/ert/ert_base.dmm @@ -2968,11 +2968,9 @@ /obj/machinery/light{ dir = 8 }, -/turf/simulated/floor/tiled/white, -/area/map_template/rescue_base/start) -"gn" = ( -/obj/machinery/atmospherics/portables_connector, -/obj/machinery/portable_atmospherics/canister/oxygen/prechilled, +/obj/machinery/sleeper/standard{ + dir = 8 + }, /turf/simulated/floor/tiled/white, /area/map_template/rescue_base/start) "go" = ( @@ -3011,18 +3009,6 @@ "gw" = ( /turf/simulated/floor/tiled/white, /area/map_template/rescue_base/start) -"gx" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5 - }, -/turf/simulated/floor/tiled/white, -/area/map_template/rescue_base/start) -"gy" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9 - }, -/turf/simulated/floor/tiled/white, -/area/map_template/rescue_base/start) "gz" = ( /obj/machinery/door/airlock/centcom{ name = "Cell" @@ -3070,12 +3056,6 @@ }, /turf/simulated/floor/tiled/white, /area/map_template/rescue_base/start) -"gF" = ( -/obj/machinery/sleeper/standard{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/map_template/rescue_base/start) "gG" = ( /obj/machinery/recharger/wallcharger{ pixel_x = -25 @@ -5452,7 +5432,7 @@ eQ eQ eU gm -gx +gw gw gw gR @@ -5516,8 +5496,8 @@ eQ eQ eQ eU -gn -gy +gw +gw gw gw gw @@ -5583,7 +5563,7 @@ eQ eU go gw -gF +gw gO gS ha diff --git a/maps/antag_spawn/mercenary/mercenary.dm b/maps/antag_spawn/mercenary/mercenary.dm index 5a6933d8ce5..3801977b9d7 100644 --- a/maps/antag_spawn/mercenary/mercenary.dm +++ b/maps/antag_spawn/mercenary/mercenary.dm @@ -2,7 +2,6 @@ name = "Mercenary Base" suffixes = list("mercenary/mercenary_base.dmm") shuttles_to_initialise = list(/datum/shuttle/autodock/overmap/merc_shuttle) - template_flags = TEMPLATE_FLAG_TEST_DUPLICATES apc_test_exempt_areas = list( /area/map_template/merc_spawn = NO_SCRUBBER|NO_VENT ) diff --git a/maps/antag_spawn/ninja/ninja_base.dmm b/maps/antag_spawn/ninja/ninja_base.dmm index 5cfebb4754c..5ad112b8ff8 100644 --- a/maps/antag_spawn/ninja/ninja_base.dmm +++ b/maps/antag_spawn/ninja/ninja_base.dmm @@ -92,13 +92,6 @@ icon_state = "white" }, /area/map_template/ninja_dojo/dojo) -"ap" = ( -/obj/machinery/atmospherics/portables_connector, -/obj/machinery/portable_atmospherics/canister/oxygen/prechilled, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) "aq" = ( /obj/structure/table/glass, /turf/unsimulated/floor{ @@ -129,22 +122,6 @@ icon_state = "white" }, /area/map_template/ninja_dojo/dojo) -"au" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) -"av" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9 - }, -/turf/unsimulated/floor{ - icon_state = "white" - }, -/area/map_template/ninja_dojo/dojo) "aw" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers, @@ -1922,7 +1899,7 @@ ad ad aj ao -au +ao ao aK aT @@ -1964,8 +1941,8 @@ ad ad ad aj -ap -av +ao +ao ao aL aG diff --git a/maps/away/bearcat/bearcat-2.dmm b/maps/away/bearcat/bearcat-2.dmm index 40637183149..739657c85f4 100644 --- a/maps/away/bearcat/bearcat-2.dmm +++ b/maps/away/bearcat/bearcat-2.dmm @@ -3735,6 +3735,7 @@ }, /obj/effect/floor_decal/corner/blue, /obj/machinery/portable_atmospherics/canister/oxygen, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless, /area/ship/scrap/maintenance/atmos) "hi" = ( @@ -3749,6 +3750,7 @@ /obj/effect/floor_decal/corner/blue{ dir = 10 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless, /area/ship/scrap/maintenance/atmos) "hj" = ( @@ -3771,6 +3773,7 @@ dir = 1 }, /mob/living/simple_animal/hostile/carp, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless, /area/ship/scrap/maintenance/atmos) "hl" = ( @@ -4445,6 +4448,7 @@ dir = 4 }, /obj/machinery/portable_atmospherics/powered/pump/filled, +/obj/machinery/atmospherics/pipe/simple/visible/universal, /turf/simulated/floor/tiled/airless, /area/ship/scrap/maintenance/atmos) "iu" = ( @@ -4526,14 +4530,14 @@ /turf/simulated/floor/tiled/airless, /area/ship/scrap/maintenance/atmos) "iE" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/blue{ - dir = 4 - }, /obj/effect/floor_decal/corner/blue, /obj/effect/floor_decal/corner/yellow{ dir = 4 }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/blue{ + dir = 4 + }, /turf/simulated/floor/tiled/airless, /area/ship/scrap/maintenance/atmos) "iF" = ( @@ -4857,6 +4861,7 @@ "js" = ( /obj/machinery/atmospherics/valve/open, /obj/item/shard/borosilicate, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/ship/scrap/maintenance/engine/aft) "jt" = ( @@ -4969,6 +4974,7 @@ /area/ship/scrap/maintenance/engine/aft) "jH" = ( /obj/machinery/atmospherics/pipe/manifold/visible/fuel, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/ship/scrap/maintenance/engine/aft) "jI" = ( @@ -5020,6 +5026,7 @@ }, /obj/effect/floor_decal/industrial/warning, /mob/living/simple_animal/hostile/carp, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/ship/scrap/maintenance/engine/aft) "jQ" = ( diff --git a/maps/away/casino/casino.dmm b/maps/away/casino/casino.dmm index cf98413623f..3347559d787 100644 --- a/maps/away/casino/casino.dmm +++ b/maps/away/casino/casino.dmm @@ -1860,6 +1860,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/casino/casino_maintenance) "fq" = ( @@ -2814,6 +2817,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/casino/casino_crew_atmos) "ij" = ( @@ -3106,6 +3110,7 @@ /obj/machinery/atmospherics/omni/filter{ dir = 8 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/casino/casino_crew_atmos) "iY" = ( @@ -3116,6 +3121,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/universal{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/casino/casino_crew_atmos) "iZ" = ( @@ -3173,6 +3179,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/cyan{ dir = 9 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/casino/casino_crew_atmos) "ji" = ( @@ -5338,6 +5345,11 @@ }, /turf/simulated/floor/airless, /area/casino/casino_bow) +"TO" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/red, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/casino/casino_crew_atmos) "Ub" = ( /obj/structure/window/basic{ dir = 4 @@ -9506,7 +9518,7 @@ gM gg ix iI -iW +TO iV jy jN diff --git a/maps/away/derelict/derelict-station.dmm b/maps/away/derelict/derelict-station.dmm index 9668178555d..4d0f32bf0c5 100644 --- a/maps/away/derelict/derelict-station.dmm +++ b/maps/away/derelict/derelict-station.dmm @@ -2382,6 +2382,7 @@ /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/constructionsite/atmospherics) "iv" = ( @@ -2717,6 +2718,7 @@ /obj/machinery/atmospherics/pipe/simple/visible{ dir = 5 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/constructionsite/atmospherics) "jr" = ( @@ -3420,6 +3422,11 @@ }, /turf/simulated/floor/tiled/dark, /area/constructionsite/teleporter) +"nn" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled/dark/airless, +/area/constructionsite/atmospherics) "ob" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ id_tag = "constructionsite_vent" @@ -3454,6 +3461,11 @@ /obj/structure/wall_frame, /turf/simulated/floor/airless, /area/constructionsite/hallway/fore) +"Yw" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/airless, +/area/constructionsite/atmospherics) (1,1,1) = {" aa @@ -24565,9 +24577,9 @@ hr hr hr hr -hV -ie +nn ie +Yw hr hs hr @@ -25974,10 +25986,10 @@ hr hr hs hr +nn hV -hV -ie ie +Yw hs hr hs diff --git a/maps/away/errant_pisces/errant_pisces.dmm b/maps/away/errant_pisces/errant_pisces.dmm index c4fd39ce10a..e1ecd33f77a 100644 --- a/maps/away/errant_pisces/errant_pisces.dmm +++ b/maps/away/errant_pisces/errant_pisces.dmm @@ -800,12 +800,14 @@ /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/errant_pisces/atmos) "cw" = ( /obj/machinery/atmospherics/omni/mixer{ dir = 1 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/errant_pisces/atmos) "cx" = ( @@ -903,6 +905,7 @@ /obj/effect/floor_decal/industrial/warning{ dir = 6 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/errant_pisces/atmos) "cN" = ( @@ -2062,6 +2065,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, /turf/simulated/floor/plating, /area/errant_pisces/solar_starboard) "fp" = ( @@ -2080,6 +2086,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plating, /area/errant_pisces/solar_starboard) "fq" = ( @@ -2091,6 +2100,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plating, /area/errant_pisces/solar_starboard) "fr" = ( @@ -2169,6 +2181,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/plating, /area/errant_pisces/solar_port) "fC" = ( @@ -2576,7 +2591,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, /turf/simulated/floor/tiled, /area/errant_pisces/hallway) "gA" = ( @@ -2768,6 +2785,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 5 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, /turf/simulated/floor/wood, /area/errant_pisces/rooms) "hg" = ( @@ -2779,17 +2799,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/errant_pisces/rooms) "hh" = ( +/obj/effect/wallframe_spawn/reinforced, +/obj/machinery/door/firedoor, /obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + icon_state = "1-2" }, -/turf/simulated/floor/tiled, -/area/errant_pisces/hallway) +/turf/simulated/floor/plating, +/area/errant_pisces/bridge) "hi" = ( /obj/structure/cable/green{ icon_state = "1-2" @@ -2813,6 +2835,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/errant_pisces/dorms) "hk" = ( @@ -2822,6 +2847,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, /turf/simulated/floor/tiled, /area/errant_pisces/dorms) "hl" = ( @@ -2872,6 +2900,7 @@ /obj/structure/cable/green{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/wood, /area/errant_pisces/rooms) "hu" = ( @@ -4777,6 +4806,7 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/errant_pisces/general_storage) "nb" = ( @@ -4787,6 +4817,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/airlock/freezer, /obj/effect/decal/cleanable/blood, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/freezer, /area/errant_pisces/prod_storage) "nc" = ( @@ -5198,6 +5229,12 @@ /obj/structure/cable/green{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, /turf/simulated/floor/plating, /area/errant_pisces/aux_power) "nN" = ( @@ -5206,6 +5243,12 @@ }, /obj/machinery/door/airlock, /obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plating, /area/errant_pisces/aux_power) "nO" = ( @@ -5215,8 +5258,12 @@ /obj/structure/cable/green{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/errant_pisces/aft_hallway) "nP" = ( @@ -5564,6 +5611,9 @@ }, /obj/structure/cable/green, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "0-2" + }, /turf/simulated/floor/tiled, /area/errant_pisces/bridge) "oM" = ( @@ -5692,6 +5742,9 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled, /area/errant_pisces/bridge) "ph" = ( @@ -5789,6 +5842,9 @@ pixel_x = -25; rcon_setting = 3 }, +/obj/structure/cable/green{ + icon_state = "1-6" + }, /turf/simulated/floor/tiled, /area/errant_pisces/bridge) "py" = ( @@ -5847,6 +5903,9 @@ }, /obj/structure/table/steel, /obj/random/snack, +/obj/structure/cable/green{ + icon_state = "6-9" + }, /turf/simulated/floor/tiled, /area/errant_pisces/bridge) "pK" = ( @@ -5981,6 +6040,9 @@ /obj/machinery/computer/ship/sensors{ dir = 4 }, +/obj/structure/cable/green{ + icon_state = "2-9" + }, /turf/simulated/floor/tiled, /area/errant_pisces/bridge) "qb" = ( @@ -6118,6 +6180,7 @@ /area/errant_pisces/fishing_wing) "qx" = ( /obj/machinery/shipsensors, +/obj/structure/cable/green, /turf/simulated/floor/reinforced/airless, /area/errant_pisces/bridge) "qy" = ( @@ -6372,6 +6435,11 @@ }, /turf/simulated/floor/tiled/white, /area/errant_pisces/head_m) +"QS" = ( +/obj/machinery/atmospherics/pipe/simple/visible/blue, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/errant_pisces/atmos) "Ti" = ( /obj/machinery/computer/modular{ dir = 4 @@ -25239,7 +25307,7 @@ aY bh bA bV -bV +QS cw cM cZ @@ -26267,7 +26335,7 @@ gd gk gy fZ -hh +gd fZ fZ fZ @@ -26671,7 +26739,7 @@ gd gm gA fZ -hh +gd fZ fZ hM @@ -28920,7 +28988,7 @@ oS oS pK qa -po +hh qx pp qH diff --git a/maps/away/liberia/liberia.dmm b/maps/away/liberia/liberia.dmm index fd83eeaa378..32eb3e83115 100644 --- a/maps/away/liberia/liberia.dmm +++ b/maps/away/liberia/liberia.dmm @@ -4198,7 +4198,7 @@ "hz" = ( /obj/machinery/vending/cigarette{ dir = 1; - products = list(/obj/item/storage/fancy/cigarettes = 10, /obj/item/storage/box/matches = 10, /obj/item/flame/lighter/zippo = 4, /obj/item/clothing/mask/smokable/cigarette/cigar/havana = 2) + products = list(/obj/item/storage/fancy/cigarettes=10,/obj/item/storage/box/matches=10,/obj/item/flame/lighter/zippo=4,/obj/item/clothing/mask/smokable/cigarette/cigar/havana=2) }, /turf/simulated/floor/wood/walnut, /area/liberia/bar) @@ -6279,6 +6279,12 @@ }, /turf/simulated/floor/tiled, /area/liberia/hallway) +"oJ" = ( +/obj/abstract/level_data/player_level{ + name = "Liberia"; +}, +/turf/space, +/area/space) "oM" = ( /obj/effect/floor_decal/solarpanel, /obj/machinery/power/solar{ @@ -8839,7 +8845,7 @@ aa "} (2,1,1) = {" aa -aa +oJ aa aa aa diff --git a/maps/away/liberia/liberia_jobs.dm b/maps/away/liberia/liberia_jobs.dm index 7b0844ca79d..296b2fb57a3 100644 --- a/maps/away/liberia/liberia_jobs.dm +++ b/maps/away/liberia/liberia_jobs.dm @@ -36,7 +36,6 @@ // Spawn points. /obj/abstract/submap_landmark/spawnpoint/liberia name = "Merchant" - movable_flags = MOVABLE_FLAG_EFFECTMOVE /decl/hierarchy/outfit/job/merchant name = "Job - Merchant - Liberia" diff --git a/maps/away/lost_supply_base/lost_supply_base.dm b/maps/away/lost_supply_base/lost_supply_base.dm index 1627d9e7243..d7784e76fd6 100644 --- a/maps/away/lost_supply_base/lost_supply_base.dm +++ b/maps/away/lost_supply_base/lost_supply_base.dm @@ -3,7 +3,7 @@ /obj/effect/overmap/visitable/sector/lost_supply_base name = "supply station" - desc = "This looks like abandoned and heavy damaged supply station." + desc = "This looks like an abandoned and heavily damaged supply station." icon_state = "object" initial_generic_waypoints = list( @@ -18,7 +18,7 @@ description = "An abandoned supply base." suffixes = list("lost_supply_base/lost_supply_base.dmm") cost = 1 - generate_mining_by_z = 1 + level_data_type = /obj/abstract/level_data/mining_level area_usage_test_exempted_root_areas = list(/area/lost_supply_base) apc_test_exempt_areas = list( /area/lost_supply_base/solar = NO_SCRUBBER|NO_VENT diff --git a/maps/away/lost_supply_base/lost_supply_base.dmm b/maps/away/lost_supply_base/lost_supply_base.dmm index 793ec245d7a..ef689993464 100644 --- a/maps/away/lost_supply_base/lost_supply_base.dmm +++ b/maps/away/lost_supply_base/lost_supply_base.dmm @@ -761,6 +761,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/lost_supply_base) "cf" = ( @@ -941,6 +942,7 @@ /area/lost_supply_base) "cG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/lost_supply_base) "cH" = ( @@ -1002,6 +1004,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/lost_supply_base) "cT" = ( @@ -1026,12 +1029,14 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/lost_supply_base) "cY" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/lost_supply_base) "cZ" = ( @@ -1041,6 +1046,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/wall, /area/lost_supply_base) "da" = ( @@ -1849,6 +1855,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless{ icon_state = "steel_burned1" }, @@ -1897,6 +1904,7 @@ pixel_x = 5; pixel_y = -3 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless, /area/lost_supply_base) "fT" = ( @@ -2008,6 +2016,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless, /area/lost_supply_base) "gh" = ( @@ -2109,6 +2118,14 @@ icon_state = "steel_broken0" }, /area/lost_supply_base/supply) +"nL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/airless, +/area/lost_supply_base) "Jd" = ( /obj/machinery/computer/modular{ dir = 1 @@ -8474,7 +8491,7 @@ bg bB bN bU -bU +nL cr aG cS diff --git a/maps/away/magshield/magshield.dmm b/maps/away/magshield/magshield.dmm index d90190d2602..203c739a187 100644 --- a/maps/away/magshield/magshield.dmm +++ b/maps/away/magshield/magshield.dmm @@ -400,6 +400,7 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/magshield/smes_storage) "bj" = ( @@ -1046,6 +1047,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/magshield/smes_storage) "cV" = ( @@ -1428,6 +1430,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/magshield/north) "ej" = ( @@ -1483,6 +1486,7 @@ icon_state = "1-4" }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/magshield/north) "eo" = ( @@ -2054,12 +2058,6 @@ }, /turf/simulated/floor/airless, /area/magshield/east) -"fV" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/red{ - dir = 1 - }, -/turf/simulated/floor/airless, -/area/magshield/east) "fW" = ( /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 4 @@ -2149,12 +2147,6 @@ }, /turf/simulated/floor/airless, /area/magshield/east) -"gl" = ( -/obj/machinery/atmospherics/pipe/simple/visible/red{ - dir = 9 - }, -/turf/simulated/floor/airless, -/area/magshield/east) "gm" = ( /obj/structure/cable{ icon_state = "1-2" @@ -2444,6 +2436,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/magshield/east) "hh" = ( @@ -2730,6 +2723,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled, /area/magshield/west) "hZ" = ( @@ -2765,6 +2759,7 @@ /area/magshield/west) "ie" = ( /obj/machinery/seed_storage, +/obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/tiled, /area/magshield/east) "if" = ( @@ -3394,6 +3389,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/magshield/south) "kb" = ( @@ -3755,13 +3751,13 @@ /turf/simulated/floor/tiled, /area/magshield/south) "le" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/turf/simulated/floor/tiled, -/area/magshield/south) +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/airless, +/area/magshield/smes_storage) "lf" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -3897,6 +3893,11 @@ /obj/effect/shuttle_landmark/nav_magshield/nav3, /turf/space, /area/space) +"qp" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/obj/abstract/landmark/allowed_leak, +/turf/space, +/area/space) "uL" = ( /obj/effect/wallframe_spawn/reinforced, /turf/simulated/floor/tiled, @@ -3909,6 +3910,51 @@ }, /turf/simulated/floor/airless, /area/magshield/east) +"JW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled, +/area/magshield/south) +"KZ" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/obj/abstract/landmark/allowed_leak, +/turf/space, +/area/space) +"Oa" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled/dark, +/area/magshield/west) +"TY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/airless, +/area/magshield/north) +"Uw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled, +/area/magshield/south) (1,1,1) = {" aa @@ -19371,7 +19417,7 @@ hM hM hM hM -it +Oa it it iK @@ -20144,7 +20190,7 @@ bc bc bO bc -bc +qp aa ao aa @@ -20346,10 +20392,10 @@ bc bc bc bc -bc +qp aa aa -bN +KZ ab de de @@ -20547,7 +20593,7 @@ bc bc bc bc -bc +qp aa aa aa @@ -21165,7 +21211,7 @@ dl dj dH dg -ej +TY dg dj de @@ -23574,7 +23620,7 @@ aD aU bi bg -aU +le aU aU bZ @@ -27058,7 +27104,7 @@ iq iq iq iq -le +kz iq ip ip @@ -27865,7 +27911,7 @@ iq iq iq iq -kx +JW ip jl jl @@ -28066,7 +28112,7 @@ jg ix jZ kt -ix +Uw ku kc jD @@ -28446,7 +28492,7 @@ fi fi fU fi -fU +fi fi fi gF @@ -28646,9 +28692,9 @@ fh fi fi fi -fV -ge -gl +fU +fi +fi fi fi fi diff --git a/maps/away/mining/mining-signal.dmm b/maps/away/mining/mining-signal.dmm index ec101d0ae48..de1ec66f91e 100644 --- a/maps/away/mining/mining-signal.dmm +++ b/maps/away/mining/mining-signal.dmm @@ -1426,6 +1426,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/green{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/white/airless, /area/outpost/abandoned) "eR" = ( @@ -1516,6 +1517,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/red, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating{ icon_state = "dmg1" }, @@ -2439,6 +2441,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_casing/pistol/magnum, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/dark, /area/outpost/abandoned) "rb" = ( diff --git a/maps/away/mining/mining.dm b/maps/away/mining/mining.dm index 097de0d2ac5..c07027f296a 100644 --- a/maps/away/mining/mining.dm +++ b/maps/away/mining/mining.dm @@ -29,7 +29,7 @@ suffixes = list("mining/mining-asteroid.dmm") cost = 1 accessibility_weight = 10 - generate_mining_by_z = 1 + level_data_type = /obj/abstract/level_data/mining_level/asteroid apc_test_exempt_areas = list( /area/outpost/abandoned = NO_SCRUBBER, /area/mine/explored = NO_SCRUBBER|NO_VENT|NO_APC, @@ -97,8 +97,7 @@ description = "A mineral-rich, formerly-volcanic site on a planetoid." suffixes = list("mining/mining-signal.dmm") cost = 1 - generate_mining_by_z = 1 - base_turf_for_zs = /turf/simulated/floor/asteroid + level_data_type = /obj/abstract/level_data/mining_level/asteroid area_usage_test_exempted_root_areas = list(/area/mine, /area/outpost) apc_test_exempt_areas = list( /area/mine/explored = NO_SCRUBBER|NO_VENT|NO_APC, @@ -164,8 +163,7 @@ suffixes = list("mining/mining-orb.dmm") cost = 1 accessibility_weight = 10 - generate_mining_by_z = 1 - base_turf_for_zs = /turf/simulated/floor/asteroid + level_data_type = /obj/abstract/level_data/mining_level/asteroid area_usage_test_exempted_root_areas = list(/area/mine) area_usage_test_exempted_areas = list(/area/djstation) apc_test_exempt_areas = list( diff --git a/maps/away/slavers/slavers_base.dm b/maps/away/slavers/slavers_base.dm index 390296e5dc2..797e3b7096a 100644 --- a/maps/away/slavers/slavers_base.dm +++ b/maps/away/slavers/slavers_base.dm @@ -20,7 +20,7 @@ description = "Asteroid with slavers base inside." suffixes = list("slavers/slavers_base.dmm") cost = 1 - generate_mining_by_z = 1 + level_data_type = /obj/abstract/level_data/mining_level area_usage_test_exempted_root_areas = list(/area/slavers_base) apc_test_exempt_areas = list( /area/slavers_base/hangar = NO_SCRUBBER diff --git a/maps/away/slavers/slavers_base.dmm b/maps/away/slavers/slavers_base.dmm index 25da7e728a3..61083e29ea9 100644 --- a/maps/away/slavers/slavers_base.dmm +++ b/maps/away/slavers/slavers_base.dmm @@ -371,6 +371,9 @@ /obj/structure/cable/cyan{ icon_state = "2-8" }, +/obj/structure/cable/cyan{ + icon_state = "4-8" + }, /turf/simulated/floor/tiled/airless, /area/slavers_base/cells) "bp" = ( @@ -457,9 +460,10 @@ /turf/simulated/floor/tiled/airless, /area/slavers_base/cells) "by" = ( -/obj/effect/wallframe_spawn/reinforced, -/turf/simulated/floor/tiled/airless, -/area/slavers_base/cells) +/obj/machinery/atmospherics/pipe/manifold/visible/black, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/airless/ceiling, +/area/slavers_base/powatm) "bz" = ( /obj/structure/closet/crate/freezer/rations, /obj/effect/decal/cleanable/dirt, @@ -727,11 +731,11 @@ "cc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, -/obj/structure/cable, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/airless, /area/slavers_base/cells) "cd" = ( @@ -2102,12 +2106,14 @@ /obj/machinery/atmospherics/pipe/simple/visible/black{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless/ceiling, /area/slavers_base/powatm) "fN" = ( /obj/machinery/atmospherics/pipe/simple/visible/black{ dir = 10 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless/ceiling, /area/slavers_base/powatm) "fO" = ( @@ -2218,6 +2224,7 @@ /obj/machinery/atmospherics/omni/filter{ dir = 8 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless/ceiling, /area/slavers_base/powatm) "gf" = ( @@ -3884,6 +3891,18 @@ }, /turf/simulated/floor/tiled/white, /area/slavers_base/dorms) +"nm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/airless, +/area/slavers_base/demo) +"EJ" = ( +/obj/machinery/atmospherics/pipe/simple/visible/black{ + dir = 4 + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/airless/ceiling, +/area/slavers_base/powatm) (1,1,1) = {" aa @@ -14907,7 +14926,7 @@ eF da da fL -gc +by da da da @@ -15513,7 +15532,7 @@ eH da da da -gd +EJ da da da @@ -20138,7 +20157,7 @@ aM aM aM bo -by +cx aM aM aM @@ -20975,7 +20994,7 @@ hr hH ie hd -iI +nm iZ jm jx diff --git a/maps/away/smugglers/smugglers.dm b/maps/away/smugglers/smugglers.dm index 4f570bdaa0e..44f24440d9b 100644 --- a/maps/away/smugglers/smugglers.dm +++ b/maps/away/smugglers/smugglers.dm @@ -14,7 +14,7 @@ description = "Yarr." suffixes = list("smugglers/smugglers.dmm") cost = 1 - generate_mining_by_z = 1 + level_data_type = /obj/abstract/level_data/mining_level area_usage_test_exempted_root_areas = list(/area/smugglers) apc_test_exempt_areas = list( /area/smugglers/base = NO_SCRUBBER|NO_VENT, diff --git a/maps/away/smugglers/smugglers.dmm b/maps/away/smugglers/smugglers.dmm index f5539d4c17e..e2c7e60eb45 100644 --- a/maps/away/smugglers/smugglers.dmm +++ b/maps/away/smugglers/smugglers.dmm @@ -83,6 +83,7 @@ icon_state = "door_closed"; name = "Internal Airlock" }, +/obj/machinery/atmospherics/pipe/simple/visible/black, /turf/simulated/floor, /area/smugglers/base) "ar" = ( diff --git a/maps/away/unishi/unishi-3.dmm b/maps/away/unishi/unishi-3.dmm index 5d2e981c0aa..5a1a0d149d2 100644 --- a/maps/away/unishi/unishi-3.dmm +++ b/maps/away/unishi/unishi-3.dmm @@ -872,9 +872,7 @@ /area/unishi/living) "cD" = ( /obj/structure/bed/chair/padded/black, -/obj/machinery/computer/modular/telescreen/preset/generic{ - dir = 2 - }, +/obj/machinery/computer/modular/telescreen/preset/generic, /turf/simulated/floor/tiled, /area/unishi/living) "cE" = ( @@ -1274,11 +1272,11 @@ /area/unishi/living) "dE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/item/caution, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/unishi/living) "dF" = ( @@ -1961,6 +1959,12 @@ /obj/random/clothing, /turf/simulated/floor/tiled, /area/unishi/living) +"yC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/unishi/living) "zD" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/random/cash, @@ -1970,6 +1974,14 @@ /obj/random/hat, /turf/simulated/floor/wood, /area/unishi/living) +"AF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled, +/area/unishi/living) "AK" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 @@ -1977,6 +1989,16 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/tiled, /area/unishi/living) +"RG" = ( +/obj/structure/closet/crate/bin, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/unishi/living) "Um" = ( /obj/machinery/light/small{ dir = 4 @@ -6222,9 +6244,9 @@ aO aO aO aO -aO -aO -aO +aP +aP +aP aO aO aO @@ -6932,7 +6954,7 @@ bn ds bn dE -bn +AF dR dU dY @@ -7549,7 +7571,7 @@ bf dW ea bf -bq +RG bf es be @@ -7651,7 +7673,7 @@ aP aP aP aP -aP +yC aP aP aP @@ -7854,9 +7876,9 @@ aO aO aO aO -aO -aO -aO +aP +aP +aP aO aO aO diff --git a/maps/away_sites_testing/away_sites_testing.dm b/maps/away_sites_testing/away_sites_testing.dm index 822221dec65..3f324d268ea 100644 --- a/maps/away_sites_testing/away_sites_testing.dm +++ b/maps/away_sites_testing/away_sites_testing.dm @@ -5,6 +5,7 @@ #include "../../mods/content/government/away_sites/icarus/icarus.dm" #include "../../mods/content/government/ruins/ec_old_crash/ec_old_crash.dm" + #include "../../mods/content/generic_shuttles/tanker/tanker.dm" #include "../../mods/content/corporate/away_sites/lar_maria/lar_maria.dm" #include "../away/bearcat/bearcat.dm" diff --git a/maps/away_sites_testing/away_sites_testing_define.dm b/maps/away_sites_testing/away_sites_testing_define.dm index 18f0b37ffc0..a75e88dd2e7 100644 --- a/maps/away_sites_testing/away_sites_testing_define.dm +++ b/maps/away_sites_testing/away_sites_testing_define.dm @@ -12,11 +12,11 @@ var/list/unsorted_sites = list_values(SSmapping.get_templates_by_category(MAP_TEMPLATE_CATEGORY_AWAYSITE)) var/list/sorted_sites = sortTim(unsorted_sites, /proc/cmp_sort_templates_tallest_to_shortest) for (var/datum/map_template/A in sorted_sites) - A.load_new_z() - testing("Spawning [A] in [english_list(GetConnectedZlevels(world.maxz))]") + A.load_new_z(centered = FALSE) + testing("Spawning [A] in [english_list(SSmapping.get_connected_levels(world.maxz))]") if(A.template_flags & TEMPLATE_FLAG_TEST_DUPLICATES) - A.load_new_z() - testing("Spawning [A] in [english_list(GetConnectedZlevels(world.maxz))]") + A.load_new_z(centered = FALSE) + testing("Spawning [A] in [english_list(SSmapping.get_connected_levels(world.maxz))]") /proc/cmp_sort_templates_tallest_to_shortest(var/datum/map_template/a, var/datum/map_template/b) return b.tallness - a.tallness diff --git a/maps/away_sites_testing/blank.dmm b/maps/away_sites_testing/blank.dmm index 4031d6f40ec..f52568add50 100644 --- a/maps/away_sites_testing/blank.dmm +++ b/maps/away_sites_testing/blank.dmm @@ -12,6 +12,10 @@ /obj/abstract/landmark/latejoin, /turf/simulated/floor/tiled, /area/space) +"R" = ( +/obj/abstract/level_data/player_level, +/turf/space, +/area/space) (1,1,1) = {" a @@ -27,7 +31,7 @@ a "} (2,1,1) = {" a -a +R a a a diff --git a/maps/example/example-1.dmm b/maps/example/example-1.dmm index 01f93e4b6f6..f7e6c7d9ef4 100644 --- a/maps/example/example-1.dmm +++ b/maps/example/example-1.dmm @@ -500,7 +500,9 @@ /turf/simulated/floor/tiled/dark/monotile, /area/example/first) "xq" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Example First Deck"; +}, /turf/space, /area/space) "xR" = ( diff --git a/maps/example/example-2.dmm b/maps/example/example-2.dmm index 1871de67fd5..bd41ffb1ab8 100644 --- a/maps/example/example-2.dmm +++ b/maps/example/example-2.dmm @@ -328,7 +328,9 @@ /turf/simulated/floor/tiled/steel_grid, /area/example/second) "ug" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Example Second Deck"; +}, /turf/space, /area/space) "uk" = ( diff --git a/maps/example/example-3.dmm b/maps/example/example-3.dmm index ac8499fa29a..8cc54b16aed 100644 --- a/maps/example/example-3.dmm +++ b/maps/example/example-3.dmm @@ -227,7 +227,9 @@ /turf/simulated/floor, /area/example/third) "MO" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Example Third Deck"; +}, /turf/space, /area/space) "Nz" = ( diff --git a/maps/example/example_areas.dm b/maps/example/example_areas.dm index 4850ad5ed1e..2391adc3a8d 100644 --- a/maps/example/example_areas.dm +++ b/maps/example/example_areas.dm @@ -1,3 +1,6 @@ +/area/example + holomap_color = HOLOMAP_AREACOLOR_CREW + /area/example/first name = "\improper Testing Site First Floor" icon_state = "fsmaint" diff --git a/maps/exodus/exodus-1.dmm b/maps/exodus/exodus-1.dmm index 0d0840ab77e..6815df4a3fa 100644 --- a/maps/exodus/exodus-1.dmm +++ b/maps/exodus/exodus-1.dmm @@ -5677,7 +5677,9 @@ /turf/simulated/floor/tiled/monotile, /area/exodus/maintenance/telecomms) "AE" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Exodus Underlevel"; +}, /turf/space, /area/space) "AG" = ( diff --git a/maps/exodus/exodus-2.dmm b/maps/exodus/exodus-2.dmm index 3fafa753f2f..adcf87ecfc4 100644 --- a/maps/exodus/exodus-2.dmm +++ b/maps/exodus/exodus-2.dmm @@ -63398,7 +63398,9 @@ /turf/simulated/floor/tiled/steel_grid, /area/ship/exodus_pod_mining) "doN" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Exodus Operations Deck"; +}, /turf/space, /area/space) "drB" = ( diff --git a/maps/exodus/exodus-admin.dmm b/maps/exodus/exodus-admin.dmm index 49cfb8fb2f7..9e6dcf91984 100644 --- a/maps/exodus/exodus-admin.dmm +++ b/maps/exodus/exodus-admin.dmm @@ -3205,7 +3205,9 @@ }, /area/tdome/tdomeadmin) "sKA" = ( -/obj/abstract/level_data/admin_level, +/obj/abstract/level_data/admin_level{ + name = "Centcomm"; +}, /turf/space, /area/space) "sMD" = ( diff --git a/maps/exodus/exodus-transit.dmm b/maps/exodus/exodus-transit.dmm index fd6f8c1e314..f2b410ac743 100644 --- a/maps/exodus/exodus-transit.dmm +++ b/maps/exodus/exodus-transit.dmm @@ -42,7 +42,9 @@ /turf/space, /area/space) "QP" = ( -/obj/abstract/level_data/admin_level, +/obj/abstract/level_data/admin_level{ + name = "Exodus Transit Level"; +}, /turf/space, /area/space) diff --git a/maps/exodus/exodus_areas.dm b/maps/exodus/exodus_areas.dm index acbed92e3d3..b7bd015f601 100644 --- a/maps/exodus/exodus_areas.dm +++ b/maps/exodus/exodus_areas.dm @@ -12,6 +12,7 @@ /area/exodus secure = TRUE + holomap_color = HOLOMAP_AREACOLOR_CREW //COMMAND. @@ -42,10 +43,12 @@ /area/exodus/crew_quarters/heads/chief name = "\improper Engineering - CE's Office" req_access = list(access_ce) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/exodus/crew_quarters/heads/hos name = "\improper Security - HoS' Office" req_access = list(access_hos) + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/exodus/crew_quarters/heads/hop name = "\improper Command - HoP's Office" @@ -54,10 +57,12 @@ /area/exodus/crew_quarters/heads/hor name = "\improper Research - RD's Office" req_access = list(access_rd) + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/exodus/crew_quarters/heads/cmo name = "\improper Command - CMO's Office" req_access = list(access_cmo) + holomap_color = HOLOMAP_AREACOLOR_MEDICAL //TCOMS. @@ -157,6 +162,7 @@ icon_state = "engineering" ambience = list('sound/ambience/ambisin1.ogg','sound/ambience/ambisin2.ogg','sound/ambience/ambisin3.ogg','sound/ambience/ambisin4.ogg') req_access = list(access_engine) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING //Generic /area/exodus/engineering/foyer @@ -183,6 +189,7 @@ /area/exodus/engineering/engine_airlock name = "\improper Engine Room Airlock" icon_state = "engine" + holomap_color = HOLOMAP_AREACOLOR_AIRLOCK /area/exodus/engineering/engine_room name = "\improper Engine Room" @@ -224,6 +231,7 @@ name = "\improper Engineering Construction Area" icon_state = "yellow" req_access = list(access_construction) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING //ATMOSPHERICS. @@ -242,6 +250,7 @@ /area/exodus/medical req_access = list(access_medical) + holomap_color = HOLOMAP_AREACOLOR_MEDICAL //Reception and such @@ -389,6 +398,7 @@ name = "\improper Research and Development" icon_state = "research" req_access = list(access_research) + holomap_color = HOLOMAP_AREACOLOR_SCIENCE //Labs @@ -456,6 +466,7 @@ /area/exodus/security area_flags = AREA_FLAG_SECURITY req_access = list(access_security) + holomap_color = HOLOMAP_AREACOLOR_SECURITY //Lobby and such @@ -561,6 +572,7 @@ name = "\improper Quartermasters" icon_state = "quart" req_access = list(access_cargo) + holomap_color = HOLOMAP_AREACOLOR_CARGO /area/exodus/quartermaster/office name = "\improper Supply Office" @@ -607,6 +619,7 @@ name = "\improper Engineering Washroom" icon_state = "toilet" sound_env = SMALL_ENCLOSED + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/exodus/crew_quarters/locker name = "\improper Locker Room" @@ -627,9 +640,9 @@ icon_state = "fitness" /area/exodus/library - name = "\improper Library" - icon_state = "library" - sound_env = LARGE_SOFTFLOOR + name = "\improper Library" + icon_state = "library" + sound_env = LARGE_SOFTFLOOR //Service and such @@ -779,6 +792,7 @@ turf_initializer = /decl/turf_initializer/maintenance forced_ambience = list('sound/ambience/maintambience.ogg') req_access = list(access_maint_tunnels) + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/exodus/maintenance/atmos_control name = "\improper Atmospherics Maintenance" diff --git a/maps/kleibkhar/kleibkhar-1.dmm b/maps/kleibkhar/kleibkhar-1.dmm index c1b035026b5..7fab282c973 100644 --- a/maps/kleibkhar/kleibkhar-1.dmm +++ b/maps/kleibkhar/kleibkhar-1.dmm @@ -337,6 +337,10 @@ }, /turf/exterior/concrete/reinforced, /area/exoplanet/kleibkhar/mines/exits) +"M" = ( +/obj/abstract/level_data/exoplanet/kleibkhar/underground/bottom, +/turf/exterior/planet_edge, +/area/exoplanet/kleibkhar/mines/depth_2) (1,1,1) = {" h @@ -538,7 +542,7 @@ h h h h -h +M "} (2,1,1) = {" h diff --git a/maps/kleibkhar/kleibkhar-2.dmm b/maps/kleibkhar/kleibkhar-2.dmm index 80f2c107c59..430d8dc1055 100644 --- a/maps/kleibkhar/kleibkhar-2.dmm +++ b/maps/kleibkhar/kleibkhar-2.dmm @@ -93,6 +93,10 @@ }, /turf/exterior/concrete/reinforced, /area/exoplanet/kleibkhar/mines/exits) +"ao" = ( +/obj/abstract/level_data/exoplanet/kleibkhar/underground, +/turf/exterior/planet_edge, +/area/exoplanet/kleibkhar/mines/depth_1) "ap" = ( /obj/machinery/light/small/emergency/cabled, /obj/effect/decal/cleanable/dirt, @@ -771,7 +775,7 @@ aj aj aj aj -aj +ao "} (2,1,1) = {" aj diff --git a/maps/kleibkhar/kleibkhar-3.dmm b/maps/kleibkhar/kleibkhar-3.dmm index 7fdb2bf6494..31f32035301 100644 --- a/maps/kleibkhar/kleibkhar-3.dmm +++ b/maps/kleibkhar/kleibkhar-3.dmm @@ -4128,6 +4128,10 @@ }, /turf/exterior/concrete, /area/exoplanet/kleibkhar) +"jQ" = ( +/obj/abstract/level_data/exoplanet/kleibkhar, +/turf/exterior/planet_edge, +/area/exoplanet/kleibkhar) "ry" = ( /turf/simulated/floor/tiled/techfloor, /area/kleibkhar/outpost/computer) @@ -4354,7 +4358,7 @@ aq aq aq aq -aq +jQ "} (2,1,1) = {" aq diff --git a/maps/kleibkhar/kleibkhar-4.dmm b/maps/kleibkhar/kleibkhar-4.dmm index ec99b614a51..2cd77cc5446 100644 --- a/maps/kleibkhar/kleibkhar-4.dmm +++ b/maps/kleibkhar/kleibkhar-4.dmm @@ -6,11 +6,8 @@ /turf/exterior/open, /area/exoplanet/kleibkhar/sky) "ac" = ( -/obj/abstract/map_data{ - height = 4 - }, /obj/effect/overmap/visitable/sector/exoplanet/kleibkhar, -/turf/exterior/open, +/turf/exterior/planet_edge, /area/exoplanet/kleibkhar/sky) "ad" = ( /obj/structure/railing/mapped{ @@ -601,6 +598,16 @@ }, /turf/simulated/floor, /area/kleibkhar/atmos_pump) +"bn" = ( +/obj/abstract/level_data/exoplanet/kleibkhar/sky, +/turf/exterior/planet_edge, +/area/exoplanet/kleibkhar/sky) +"bo" = ( +/obj/abstract/map_data{ + height = 4 + }, +/turf/exterior/planet_edge, +/area/exoplanet/kleibkhar/sky) (1,1,1) = {" aa @@ -801,8 +808,8 @@ aa aa aa aa -aa -aa +ac +bn "} (2,1,1) = {" aa @@ -1004,7 +1011,7 @@ aa aa aa aa -aa +bo "} (3,1,1) = {" aa @@ -2227,7 +2234,7 @@ aa aa aa ab -ac +ab ab ab ab diff --git a/maps/kleibkhar/kleibkhar_defines.dm b/maps/kleibkhar/kleibkhar_defines.dm index ca1fc081d5a..b74fc023cee 100644 --- a/maps/kleibkhar/kleibkhar_defines.dm +++ b/maps/kleibkhar/kleibkhar_defines.dm @@ -31,6 +31,7 @@ starting_money = 5000 department_money = 0 salary_modifier = 0.2 + num_exoplanets = 0 /datum/map/kleibkhar/get_map_info() return "Kleibkhar Independent Colony. A diverse new commercial venture on the fringe of known space." diff --git a/maps/kleibkhar/kleibkhar_exoplanet.dm b/maps/kleibkhar/kleibkhar_exoplanet.dm index 75eaab07715..64ea96894eb 100644 --- a/maps/kleibkhar/kleibkhar_exoplanet.dm +++ b/maps/kleibkhar/kleibkhar_exoplanet.dm @@ -1,7 +1,6 @@ /obj/effect/overmap/visitable/sector/exoplanet/kleibkhar name = "\proper Kleibkhar" desc = "A habitable border-world, home to a recent dime-a-dozen corporate colony." - lightlevel = 1.0 daycycle = 25 MINUTES daycycle_column_delay = 10 SECONDS night = FALSE @@ -29,7 +28,7 @@ megafauna_types = list(/mob/living/simple_animal/hostile/retaliate/parrot/space/megafauna, /mob/living/simple_animal/hostile/retaliate/goose/dire) /obj/effect/overmap/visitable/sector/exoplanet/kleibkhar/Initialize(var/mapload, var/z_level) - . = ..(mapload, global.using_map.station_levels[4]) + . = ..() docking_codes = "[global.using_map.dock_name]" // Build Level workaround @@ -49,56 +48,6 @@ generate_planet_image() START_PROCESSING(SSobj, src) -/obj/effect/overmap/visitable/sector/exoplanet/kleibkhar/update_daynight() - var/light = 0.1 - if(!night) - light = lightlevel - for(var/turf/exterior/T in block(locate(daycolumn, TRANSITIONEDGE, max(map_z)), locate(daycolumn, maxy - TRANSITIONEDGE, max(map_z)))) - T.set_light(MINIMUM_USEFUL_LIGHT_RANGE, light) - daycolumn++ - if(daycolumn > maxx) - daycolumn = 0 - -/obj/effect/overmap/visitable/sector/exoplanet/kleibkhar/generate_planet_image() - skybox_image = image('icons/skybox/planet.dmi', "") - - skybox_image.overlays += get_base_image() - - if(water_color) - var/image/water = image('icons/skybox/planet.dmi', "water") - water.color = water_color - water.appearance_flags = PIXEL_SCALE - water.transform = water.transform.Turn(45) - skybox_image.overlays += water - - if(atmosphere && atmosphere.return_pressure() > SOUND_MINIMUM_PRESSURE) - - var/atmo_color = get_atmosphere_color() - if(!atmo_color) - atmo_color = COLOR_WHITE - - var/image/clouds = image('icons/skybox/planet.dmi', "weak_clouds") - - if(water_color) - clouds.overlays += image('icons/skybox/planet.dmi', "clouds") - - clouds.color = atmo_color - skybox_image.overlays += clouds - - var/image/atmo = image('icons/skybox/planet.dmi', "atmoring") - skybox_image.underlays += atmo - - var/image/shadow = image('icons/skybox/planet.dmi', "shadow") - shadow.blend_mode = BLEND_MULTIPLY - skybox_image.overlays += shadow - - var/image/light = image('icons/skybox/planet.dmi', "lightrim") - skybox_image.overlays += light - - skybox_image.pixel_x = rand(0,64) - skybox_image.pixel_y = rand(128,256) - skybox_image.appearance_flags = RESET_COLOR - /obj/effect/overmap/visitable/sector/exoplanet/kleibkhar/generate_map() for(var/zlevel in map_z) var/list/edges diff --git a/maps/kleibkhar/kleibkhar_overmap.dm b/maps/kleibkhar/kleibkhar_overmap.dm index a3815951acf..2302026db6b 100644 --- a/maps/kleibkhar/kleibkhar_overmap.dm +++ b/maps/kleibkhar/kleibkhar_overmap.dm @@ -7,17 +7,12 @@ map_size_x = 50 map_size_y = 50 - var/map_file = "maps/kleibkhar/kleibkhar-overmap.dmm" + // var/map_file = "maps/kleibkhar/kleibkhar-overmap.dmm" -/datum/overmap/kleibkhar/generate_overmap() - testing("Building overmap [name]...") - INCREMENT_WORLD_Z_SIZE - assigned_z = world.maxz - testing("Putting [name] on [assigned_z].") - maploader.load_map(file(map_file), 1, 1, assigned_z) - - global.using_map.sealed_levels |= assigned_z - testing("Overmap build for [name] complete.") +// /datum/overmap/kleibkhar/generate_overmap() +// . = ..() +// maploader.load_map(file(map_file), 1, 1, assigned_z) +// testing("Overmap build for [name] complete.") /obj/effect/shuttle_landmark/supply/station landmark_tag = "nav_cargo_station" diff --git a/maps/kleibkhar/kleibkhar_species.dm b/maps/kleibkhar/kleibkhar_species.dm index 66ddd8c467d..2cd56805b1c 100644 --- a/maps/kleibkhar/kleibkhar_species.dm +++ b/maps/kleibkhar/kleibkhar_species.dm @@ -1,23 +1,6 @@ /decl/species/unathi spawn_flags = SPECIES_CAN_JOIN | SPECIES_NO_ROBOTIC_INTERNAL_ORGANS | SPECIES_IS_WHITELISTED -/decl/species/vox - spawn_flags = SPECIES_IS_WHITELISTED | SPECIES_IS_RESTRICTED - -/decl/species/tajaran - spawn_flags = SPECIES_IS_WHITELISTED | SPECIES_IS_RESTRICTED - -/decl/species/mantid - spawn_flags = SPECIES_IS_RESTRICTED | SPECIES_IS_WHITELISTED - -/decl/species/adherent - spawn_flags = SPECIES_IS_RESTRICTED | SPECIES_IS_WHITELISTED - -/decl/species/human/tritonian - spawn_flags = SPECIES_IS_RESTRICTED | SPECIES_IS_WHITELISTED - -/decl/species/skrell - spawn_flags = SPECIES_IS_WHITELISTED | SPECIES_IS_RESTRICTED - +///Fix key collision between /decl/language/cortical and /decl/language/skrell/casteless /decl/language/skrell/casteless key = "m" \ No newline at end of file diff --git a/maps/kleibkhar/kleibkhar_zlevels.dm b/maps/kleibkhar/kleibkhar_zlevels.dm index 0922ea386df..70051287fa1 100644 --- a/maps/kleibkhar/kleibkhar_zlevels.dm +++ b/maps/kleibkhar/kleibkhar_zlevels.dm @@ -1,11 +1,5 @@ /datum/map/kleibkhar #ifndef UNIT_TEST - station_levels = list(1, 2, 3, 4) - contact_levels = list(1, 2, 3, 4) - player_levels = list(1, 2, 3, 4) - saved_levels = list(3, 4) - mining_levels = list(1, 2) - // Hotloading module default_levels = list( "1" = "maps/kleibkhar/kleibkhar-1.dmm", @@ -15,21 +9,7 @@ "5" = "maps/utility/cargo_shuttle_tmpl.dmm", ) - // A list of turfs and their default turfs for serialization optimization. - base_turf_by_z = list( - "1" = /turf/exterior/barren/mining, - "2" = /turf/exterior/barren/mining, - "3" = /turf/exterior/kleibkhar_grass, - "4" = /turf/exterior/open, - "5" = /turf/space, - ) #else - station_levels = list(4, 5, 6, 7) - contact_levels = list(4, 5, 6, 7) - player_levels = list(4, 5, 6, 7) - saved_levels = list(6, 7) - mining_levels = list(4, 5) - default_levels = list( "4" = "maps/kleibkhar/kleibkhar-1.dmm", "5" = "maps/kleibkhar/kleibkhar-2.dmm", @@ -37,13 +17,26 @@ "7" = "maps/kleibkhar/kleibkhar-4.dmm", "8" = "maps/utility/cargo_shuttle_tmpl.dmm", ) +#endif - // A list of turfs and their default turfs for serialization optimization. - base_turf_by_z = list( - "4" = /turf/exterior/barren/mining, - "5" = /turf/exterior/barren/mining, - "6" = /turf/exterior/kleibkhar_grass, - "7" = /turf/exterior/open, - "8" = /turf/space, +/obj/abstract/level_data/exoplanet/kleibkhar + level_flags = (ZLEVEL_CONTACT|ZLEVEL_PLAYER|ZLEVEL_SAVED) + ambient_light_level = 1.0 + base_turf = /turf/exterior/kleibkhar_grass + exterior_atmosphere = list( + /decl/material/gas/oxygen = MOLES_O2STANDARD, + /decl/material/gas/nitrogen = MOLES_N2STANDARD ) -#endif \ No newline at end of file + +/obj/abstract/level_data/exoplanet/kleibkhar/sky + ambient_light_level = 1.0 + base_turf = /turf/exterior/open + +/obj/abstract/level_data/exoplanet/kleibkhar/underground + level_flags = (ZLEVEL_CONTACT|ZLEVEL_PLAYER|ZLEVEL_MINING) + ambient_light_level = 0.1 + base_turf = /turf/exterior/barren/mining + +/obj/abstract/level_data/exoplanet/kleibkhar/underground/bottom + ambient_light_level = 0.0 + base_turf = /turf/exterior/barren/mining \ No newline at end of file diff --git a/maps/ministation/ministation.dmm b/maps/ministation/ministation.dmm index ecd5be3df5b..7771ca36273 100644 --- a/maps/ministation/ministation.dmm +++ b/maps/ministation/ministation.dmm @@ -635,33 +635,19 @@ }, /turf/simulated/floor/carpet/blue, /area/ministation/bridge) -"bJ" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 - }, -/obj/machinery/meter, -/turf/simulated/floor/tiled, -/area/ministation/engine) "bK" = ( /obj/machinery/alarm{ dir = 4; pixel_x = -23 }, /obj/machinery/keycard_auth{ - dir = 1 + pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 5 }, /turf/simulated/floor/tiled, /area/ministation/bridge) -"bL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) "bM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -694,7 +680,7 @@ /area/ministation/bridge) "bQ" = ( /obj/machinery/keycard_auth{ - dir = 1 + pixel_y = -24 }, /obj/machinery/light{ dir = 4; @@ -818,6 +804,12 @@ /obj/item/storage/ore, /turf/simulated/floor/airless, /area/space) +"cf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "cg" = ( /obj/machinery/light{ dir = 8 @@ -880,7 +872,9 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/n) "cs" = ( @@ -939,7 +933,20 @@ /turf/simulated/wall, /area/ministation/cargo) "cA" = ( -/obj/machinery/door/airlock/external/glass, +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "mining_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "cargo_airlock"; + name = "interior access button"; + pixel_x = 20; + pixel_y = -10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plating, /area/ministation/cargo) "cB" = ( @@ -947,6 +954,9 @@ icon_state = "4-8" }, /obj/random/trash, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/maint/sw) "cC" = ( @@ -994,24 +1004,14 @@ /obj/random/trash, /turf/simulated/floor/plating, /area/ministation/maint/w) -"cI" = ( -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/machinery/camera/network/engineering, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) "cJ" = ( /turf/simulated/floor/plating, /area/ministation/maint/ne) "cK" = ( -/obj/machinery/door/airlock/external/glass{ - autoset_access = 0; - name = "External Airlock Hatch"; - req_access = list("ACCESS_EXTERNAL") - }, +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/plating, -/area/ministation/maint/ne) +/area/ministation/ai_sat) "cL" = ( /obj/effect/wallframe_spawn/reinforced, /turf/simulated/floor/plating, @@ -1058,6 +1058,9 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "mining_vent" + }, /turf/simulated/floor/plating, /area/ministation/cargo) "cU" = ( @@ -1345,22 +1348,39 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/nw) -"dM" = ( -/obj/structure/sign/warning/radioactive{ - dir = 4 +"dL" = ( +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + dir = 0; + id_tag = "sat1_airlock"; + pixel_y = 24; + tag_airpump = "sat1_vent"; + tag_chamber_sensor = "sat1_sensor"; + tag_exterior_door = "sat1_airlock_exterior"; + tag_interior_door = "sat1_airlock_interior" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "sat1_vent" }, -/turf/simulated/wall/r_wall/prepainted, -/area/ministation/engine) +/obj/machinery/airlock_sensor{ + id_tag = "sat1_sensor"; + pixel_y = 20 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "dN" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/door/airlock/hatch/maintenance, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/maint/nw) "dO" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 }, /turf/simulated/floor/plating, /area/ministation/maint/w) @@ -1414,6 +1434,11 @@ /obj/structure/cable, /turf/simulated/floor/plating, /area/ministation/maint/sec) +"dW" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) "dX" = ( /obj/machinery/papershredder, /turf/simulated/floor/tiled, @@ -1429,6 +1454,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/security) +"ea" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 2 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "eb" = ( /obj/structure/cable, /obj/structure/cable{ @@ -1501,13 +1533,6 @@ }, /turf/simulated/floor, /area/ministation/science) -"ei" = ( -/obj/machinery/door/airlock/external/shuttle{ - autoset_access = 0; - name = "Arrivals Shuttle Airlock" - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "ej" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, @@ -1515,6 +1540,9 @@ "ek" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/blood/oil, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 1 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "el" = ( @@ -1545,8 +1573,8 @@ /turf/simulated/floor/plating, /area/ministation/hall/s) "eq" = ( -/obj/machinery/atmospherics/pipe/simple/visible{ - dir = 6 +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200 }, /turf/simulated/floor/plating, /area/ministation/maint/w) @@ -1602,6 +1630,15 @@ }, /turf/simulated/wall/r_wall, /area/ministation/security) +"ex" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "ez" = ( /obj/structure/bed, /turf/simulated/floor, @@ -1611,6 +1648,10 @@ /obj/machinery/faxmachine, /turf/simulated/floor/tiled, /area/ministation/court) +"eC" = ( +/obj/machinery/door/airlock/hatch/maintenance, +/turf/simulated/floor/plating, +/area/ministation/court) "eD" = ( /obj/machinery/light{ dir = 4; @@ -1629,6 +1670,7 @@ dir = 4; pixel_x = -22 }, +/obj/vehicle/train/cargo/engine, /turf/simulated/floor/tiled, /area/ministation/cargo) "eF" = ( @@ -1644,6 +1686,23 @@ }, /turf/simulated/floor/tiled, /area/ministation/cargo) +"eJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/wall/r_wall, +/area/ministation/ai_sat) +"eK" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 1; + id_tag = "stern_engineering_vent" + }, +/turf/simulated/floor/plating, +/area/ministation/engine) "eL" = ( /obj/machinery/light{ dir = 1 @@ -1669,6 +1728,15 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"eP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) "eQ" = ( /obj/machinery/door/airlock/hatch/maintenance, /obj/structure/cable{ @@ -1773,7 +1841,7 @@ dir = 8 }, /turf/simulated/floor/tiled, -/area/ministation/court) +/area/ministation/disused_office) "fb" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -1870,6 +1938,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/cargo) "fo" = ( @@ -1892,6 +1961,11 @@ /obj/machinery/status_display/supply_display{ pixel_y = -32 }, +/obj/machinery/atmospherics/portables_connector{ + pixel_x = -3; + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/tiled, /area/ministation/cargo) "fr" = ( @@ -1993,6 +2067,15 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"fB" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "fC" = ( /obj/machinery/power/apc{ areastring = null; @@ -2025,6 +2108,14 @@ }, /turf/simulated/floor/tiled, /area/ministation/cargo) +"fG" = ( +/obj/machinery/door/airlock/glass/command{ + autoset_access = 0; + name = "Telecommunications glass airlock"; + req_access = list("ACCESS_TELECOMS") + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "fH" = ( /obj/effect/floor_decal/industrial/warning{ dir = 9 @@ -2035,27 +2126,23 @@ /turf/simulated/floor/tiled, /area/ministation/security) "fI" = ( -/obj/machinery/door/airlock/glass/security{ - autoset_access = 0; - name = "Brig Access Airlock"; - req_access = list(list("ACCESS_SECURITY","ACCESS_LAWYER")) - }, -/obj/machinery/door/firedoor{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/ministation/security) -"fJ" = ( /obj/machinery/door/firedoor{ dir = 8 }, /obj/machinery/door/airlock/glass/security{ - autoset_access = 0; name = "Brig Access Airlock"; - req_access = list(list("ACCESS_SECURITY","ACCESS_LAWYER")) + req_access = list(list("ACCESS_SECURITY","ACCESS_LAWYER")); + autoset_access = 0 }, /turf/simulated/floor/tiled, -/area/ministation/security) +/area/ministation/court) +"fJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "fK" = ( /obj/structure/cable{ icon_state = "1-2" @@ -2268,11 +2355,17 @@ "gk" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "gl" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "go" = ( @@ -2295,6 +2388,12 @@ /obj/machinery/fabricator, /turf/simulated/floor/tiled, /area/ministation/cargo) +"gr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "gs" = ( /obj/abstract/landmark/start{ name = "Cargo Technician" @@ -2353,6 +2452,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"gA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "gB" = ( /obj/machinery/door/airlock/glass/command{ autoset_access = 0; @@ -2473,7 +2579,6 @@ /obj/machinery/door/firedoor{ dir = 8 }, -/obj/machinery/door/airlock/glass/mining, /turf/simulated/floor/tiled, /area/ministation/cargo) "gP" = ( @@ -2506,6 +2611,25 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"gU" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "pqm_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "pqm_airlock"; + name = "interior access button"; + pixel_x = 10; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) "gV" = ( /obj/machinery/light/small{ dir = 8 @@ -2520,12 +2644,6 @@ /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /turf/simulated/floor/tiled, /area/ministation/security) -"gY" = ( -/obj/structure/sign/warning/radioactive{ - dir = 8 - }, -/turf/simulated/wall, -/area/ministation/engine) "ha" = ( /obj/machinery/firealarm{ dir = 8; @@ -2569,9 +2687,12 @@ /turf/simulated/floor/tiled, /area/ministation/security) "he" = ( -/obj/effect/wallframe_spawn/reinforced, -/turf/simulated/floor/plating, -/area/ministation/hall/n) +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled, +/area/ministation/disused) "hf" = ( /obj/structure/table, /obj/item/wrench, @@ -2592,6 +2713,15 @@ /obj/structure/closet/l3closet/scientist, /turf/simulated/floor/tiled/white, /area/ministation/science) +"hi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "hj" = ( /obj/structure/cable{ icon_state = "1-2" @@ -2617,7 +2747,10 @@ /turf/simulated/floor/tiled/dark, /area/ministation/science) "ho" = ( -/obj/vehicle/train/cargo/engine, +/obj/machinery/atmospherics/portables_connector{ + pixel_x = -3 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/tiled, /area/ministation/cargo) "hp" = ( @@ -2636,10 +2769,10 @@ pixel_y = -32 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /turf/simulated/floor/tiled, @@ -2652,10 +2785,6 @@ dir = 8 }, /obj/effect/floor_decal/corner/paleblue/full, -/obj/machinery/door/airlock/medical{ - id_tag = "medleave"; - name = "medbay airlock" - }, /turf/simulated/floor/tiled/white, /area/ministation/medical) "hs" = ( @@ -2735,13 +2864,6 @@ }, /turf/simulated/floor/tiled, /area/ministation/security) -"hy" = ( -/obj/machinery/atmospherics/binary/circulator{ - anchored = 1; - dir = 1 - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) "hz" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -2766,7 +2888,7 @@ /area/ministation/detective) "hC" = ( /obj/structure/table/woodentable, -/obj/item/camera/detective, +/obj/item/camera, /obj/machinery/atmospherics/unary/vent_pump/on, /obj/item/taperecorder, /obj/item/folder/yellow, @@ -2779,6 +2901,13 @@ }, /turf/simulated/floor/carpet/red, /area/ministation/detective) +"hE" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "hF" = ( /obj/machinery/button/blast_door{ id_tag = "scishut"; @@ -2888,8 +3017,12 @@ pixel_y = 30 }, /obj/machinery/door/airlock/external/bolted{ - id_tag = "cargo_bay_door"; - name = "Cargo Docking Airlock" + id_tag = "cargo_airlock_interior"; + name = "Cargo Docking Airlock"; + autoset_access = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 }, /turf/simulated/floor/plating, /area/ministation/cargo) @@ -2897,11 +3030,18 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "hR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 8 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "hS" = ( @@ -2909,6 +3049,9 @@ /obj/structure/closet/crate, /obj/item/stack/material/ore/slag, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "hT" = ( @@ -2918,6 +3061,9 @@ /obj/machinery/camera/network/mining{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "hU" = ( @@ -3008,9 +3154,13 @@ /turf/simulated/floor/carpet/red, /area/ministation/detective) "ie" = ( -/obj/effect/floor_decal/industrial/loading, -/turf/simulated/floor/reinforced/airless, -/area/ministation/engine) +/obj/machinery/door/airlock/external/bolted{ + id_tag = "cargo_airlock_exterior"; + name = "Cargo Docking Airlock"; + autoset_access = 0 + }, +/turf/simulated/floor/plating, +/area/ministation/cargo) "if" = ( /obj/machinery/door/window/eastright, /obj/machinery/door/blast/shutters/open{ @@ -3293,6 +3443,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/floor_decal/industrial/outline/yellow, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 8 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "iV" = ( @@ -3300,6 +3454,9 @@ /obj/structure/closet/crate, /obj/item/stack/material/ore/glass, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "iW" = ( @@ -3309,13 +3466,16 @@ }, /obj/structure/closet/crate, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "iX" = ( /turf/simulated/wall, /area/ministation/commons) "iY" = ( -/obj/machinery/door/window/eastright, +/obj/machinery/door/airlock/double/glass/civilian, /turf/simulated/floor/tiled, /area/ministation/commons) "iZ" = ( @@ -3347,6 +3507,10 @@ }, /turf/simulated/floor/tiled, /area/ministation/security) +"jc" = ( +/obj/effect/shuttle_landmark/escape_shuttle/station, +/turf/space, +/area/space) "jd" = ( /obj/machinery/computer/station_alert/security{ dir = 8 @@ -3642,25 +3806,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/wood, /area/ministation/detective) -"jM" = ( -/obj/machinery/door/airlock/hatch{ - id_tag = "engine_access_hatch"; - locked = 1 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/ministation/engine) -"jN" = ( -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) "jO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3718,25 +3863,39 @@ pixel_y = -30 }, /obj/machinery/door/airlock/external/bolted{ - id_tag = "cargo_bay_door"; - name = "Cargo Docking Airlock" + id_tag = "cargo_airlock_interior"; + name = "Cargo Docking Airlock"; + autoset_access = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 }, /turf/simulated/floor/plating, /area/ministation/cargo) "jV" = ( /obj/effect/floor_decal/industrial/outline/yellow, /obj/machinery/light, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 8 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "jW" = ( /obj/structure/closet/crate, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "jX" = ( /obj/structure/closet/crate, /obj/item/stack/material/ore/iron, /obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, /turf/simulated/floor/tiled, /area/ministation/cargo) "jY" = ( @@ -3848,6 +4007,13 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/detective) +"km" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor, +/area/ministation/atmospherics) "kn" = ( /obj/effect/floor_decal/industrial/warning{ dir = 9 @@ -3998,6 +4164,17 @@ /obj/machinery/light, /turf/simulated/floor/tiled, /area/ministation/commons) +"kG" = ( +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) +"kH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor, +/area/ministation/atmospherics) "kI" = ( /obj/abstract/landmark/start{ name = "Assistant" @@ -4032,7 +4209,6 @@ /turf/simulated/floor/tiled, /area/ministation/commons) "kK" = ( -/obj/machinery/door/window/eastleft, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -4143,10 +4319,12 @@ /turf/simulated/floor/tiled/white, /area/ministation/science) "kX" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/emergency, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/abstract/landmark{ + name = "Observer-Start" + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "kY" = ( /obj/structure/closet, /obj/item/clothing/mask/gas/clown_hat, @@ -4166,7 +4344,10 @@ /turf/simulated/floor/plating, /area/ministation/hall/w) "lb" = ( -/obj/structure/reagent_dispensers/watertank, +/obj/machinery/atmospherics/portables_connector{ + pixel_x = -3 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/plating, /area/ministation/maint/w) "lc" = ( @@ -4179,14 +4360,14 @@ /turf/simulated/floor/plating, /area/ministation/maint/w) "ld" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/random/trash, /obj/random/trash, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, /turf/simulated/floor/plating, /area/ministation/maint/w) "le" = ( @@ -4256,8 +4437,8 @@ /turf/simulated/floor/plating, /area/ministation/ai_sat) "ln" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /turf/simulated/floor/tiled, /area/ministation/engine) "lo" = ( @@ -4302,16 +4483,6 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) -"lu" = ( -/obj/machinery/door/airlock/hatch{ - id_tag = "engine_access_hatch"; - locked = 1 - }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/ministation/engine) "lv" = ( /obj/structure/closet/emcloset, /obj/effect/floor_decal/industrial/warning{ @@ -4429,20 +4600,46 @@ dir = 1 }, /obj/structure/closet/crate/bin/ministation, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "lL" = ( /obj/machinery/vending/snack, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "lM" = ( /obj/machinery/vending/cola, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "lN" = ( /obj/machinery/space_heater, /turf/simulated/floor/plating, /area/ministation/maint/w) +"lO" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sat1_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sat1_airlock"; + name = "exterior access button"; + pixel_x = -10; + pixel_y = 20; + command = "cycle_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "lP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -4466,6 +4663,12 @@ /obj/random/gloves, /turf/simulated/floor/plating, /area/ministation/maint/w) +"lS" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "lT" = ( /obj/machinery/firealarm{ dir = 8; @@ -4508,6 +4711,7 @@ /turf/simulated/floor/tiled, /area/ministation/commons) "lY" = ( +/obj/structure/closet/wardrobe/mixed, /turf/simulated/floor/tiled, /area/ministation/commons) "lZ" = ( @@ -4593,17 +4797,10 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/w) -"ml" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/binary/pump, -/obj/effect/engine_setup/pump_max, -/turf/simulated/floor/tiled, -/area/ministation/engine) "mo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plating, /area/ministation/maint/w) "mp" = ( @@ -4738,9 +4935,11 @@ /turf/simulated/floor/tiled/white, /area/ministation/science) "mI" = ( -/obj/machinery/door/airlock, -/turf/simulated/floor, -/area/ministation/science) +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 2 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "mJ" = ( /turf/simulated/floor/reinforced, /area/ministation/science) @@ -4760,20 +4959,14 @@ /obj/machinery/suit_cycler/ministation, /turf/simulated/floor/tiled, /area/ministation/eva) -"mN" = ( -/obj/machinery/door/airlock/external/escapepod{ - id_tag = "escape_pod_1_berth_hatch"; - name = "Escape Shuttle Docking Airlock" - }, -/turf/simulated/floor/plating, -/area/ministation/hall/w) "mO" = ( +/obj/abstract/landmark/latejoin, /turf/simulated/floor/plating, /area/ministation/hall/w) "mP" = ( -/obj/machinery/door/airlock/external/glass{ - autoset_access = 0; - name = "Dock Airlock" +/obj/machinery/door/airlock/external{ + name = "Arrival Airlock"; + autoset_access = 0 }, /turf/simulated/floor/plating, /area/ministation/hall/w) @@ -4785,11 +4978,26 @@ /obj/effect/floor_decal/industrial/loading{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "mS" = ( /turf/simulated/floor/tiled, /area/ministation/hall/w) +"mV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"mW" = ( +/obj/effect/floor_decal/corner/beige{ + dir = 5 + }, +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "mY" = ( /obj/machinery/atmospherics/portables_connector{ dir = 8 @@ -4798,7 +5006,7 @@ /turf/simulated/floor/plating, /area/ministation/maint/w) "mZ" = ( -/obj/item/twohanded/spear, +/obj/machinery/network/relay, /turf/simulated/floor/plating, /area/ministation/maint/w) "na" = ( @@ -5029,13 +5237,17 @@ }, /obj/item/clothing/glasses/meson, /obj/item/flashlight, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/maint/w) "nF" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/obj/random/trash, +/obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/plating, /area/ministation/maint/w) "nI" = ( @@ -5230,12 +5442,14 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, -/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod_berth{ +/obj/machinery/embedded_controller/radio/airlock/docking_port{ dir = 4; - frequency = null; - id_tag = "escape_pod_1_berth"; - pixel_x = -30; - tag_door = "escape_pod_1_berth_hatch" + id_tag = "station1"; + tag_airpump = "escape1_vent"; + tag_chamber_sensor = "escape1_sensor"; + tag_exterior_door = "escape1_airlock_exterior"; + tag_interior_door = "escape1_airlock_interior"; + pixel_x = -20 }, /turf/simulated/floor/tiled, /area/ministation/hall/w) @@ -5287,12 +5501,10 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/plating, /area/ministation/maint/w) "on" = ( @@ -5440,6 +5652,9 @@ /obj/structure/extinguisher_cabinet{ pixel_x = 27 }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "oK" = ( @@ -5447,6 +5662,10 @@ dir = 4; pixel_x = -22 }, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 8 + }, /turf/simulated/floor/plating, /area/ministation/hall/w) "oL" = ( @@ -5460,6 +5679,9 @@ dir = 8; pixel_x = 24 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, /turf/simulated/floor/plating, /area/ministation/janitor) "oN" = ( @@ -5579,6 +5801,9 @@ /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 8 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "pi" = ( @@ -5590,6 +5815,9 @@ /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/hall/w) "pj" = ( @@ -5600,6 +5828,10 @@ icon_state = "1-4" }, /obj/machinery/light/small, +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/plating, /area/ministation/maint/w) "pk" = ( @@ -5655,6 +5887,13 @@ /obj/item/grenade/chem_grenade/cleaner, /turf/simulated/floor/tiled, /area/ministation/janitor) +"pp" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ministation/maint/ne) "pq" = ( /obj/machinery/atmospherics/portables_connector{ dir = 1 @@ -6053,6 +6292,13 @@ /obj/effect/wallframe_spawn/no_grille, /turf/simulated/floor/tiled, /area/ministation/eva) +"qj" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "qk" = ( /turf/simulated/wall, /area/ministation/hall/e) @@ -6109,9 +6355,10 @@ dir = 8 }, /obj/effect/floor_decal/corner/paleblue/full, -/obj/machinery/door/airlock/medical{ - id_tag = "medleave"; - name = "medbay airlock" +/obj/machinery/door/airlock/double/medical{ + name = "medbay airlock"; + autoset_access = 0; + id_tag = "medleave" }, /turf/simulated/floor/tiled/white, /area/ministation/medical) @@ -6479,6 +6726,9 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 2 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "rr" = ( @@ -6577,6 +6827,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/eva) +"rE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "rF" = ( /obj/item/soap{ icon_state = "soap-oval" @@ -6706,6 +6963,9 @@ "rW" = ( /obj/machinery/light, /obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "rX" = ( @@ -6713,6 +6973,9 @@ dir = 1; pixel_y = -22 }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/hall/w) "rY" = ( @@ -6799,9 +7062,9 @@ id_tag = "quarantine"; name = "quarantine shutters" }, -/obj/machinery/door/airlock/medical{ - autoset_access = 0; - name = "Medbay Lobby airlock" +/obj/machinery/door/airlock/double/medical{ + name = "Medbay Lobby airlock"; + autoset_access = 0 }, /turf/simulated/floor/tiled/white, /area/ministation/medical) @@ -6813,10 +7076,6 @@ id_tag = "quarantine"; name = "quarantine shutters" }, -/obj/machinery/door/airlock/medical{ - autoset_access = 0; - name = "Medbay Lobby airlock" - }, /turf/simulated/floor/tiled/white, /area/ministation/medical) "sk" = ( @@ -6942,16 +7201,6 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/e) -"sE" = ( -/obj/machinery/emitter{ - anchored = 1; - id_tag = "EngineEmitter"; - state = 2 - }, -/obj/structure/cable, -/obj/machinery/power/terminal, -/turf/simulated/floor/tiled, -/area/ministation/engine) "sF" = ( /obj/machinery/light{ dir = 1 @@ -7782,13 +8031,6 @@ /obj/effect/floor_decal/industrial/hatch/yellow, /turf/simulated/floor/tiled, /area/ministation/hall/w) -"uG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/engineering, -/turf/simulated/floor/tiled, -/area/ministation/hall/s) "uI" = ( /turf/simulated/wall/r_wall, /area/ministation/hop) @@ -8122,6 +8364,9 @@ /turf/simulated/floor/tiled/white, /area/ministation/medical) "vI" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, /obj/machinery/computer/modular/preset/engineering{ dir = 8 }, @@ -8309,6 +8554,18 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"wf" = ( +/obj/effect/decal/cleanable/filth, +/obj/machinery/power/apc{ + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "wh" = ( /obj/machinery/door/firedoor{ dir = 8 @@ -9090,6 +9347,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/structure/closet/wardrobe/mixed, /turf/simulated/floor/tiled/white, /area/ministation/medical) "yg" = ( @@ -9110,16 +9368,6 @@ }, /turf/simulated/floor/tiled/white, /area/ministation/medical) -"yi" = ( -/turf/simulated/shuttle/wall, -/area/ministation/arrival_shuttle) -"yj" = ( -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"yk" = ( -/obj/structure/shuttle/window, -/turf/simulated/floor/shuttle/black, -/area/ministation/arrival_shuttle) "yl" = ( /obj/structure/displaycase, /obj/item/clothing/mask/gas/owl_mask{ @@ -9327,51 +9575,37 @@ }, /turf/simulated/floor/tiled/white, /area/ministation/medical) -"yL" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"yM" = ( -/obj/machinery/computer/arcade/battle, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "yN" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/ministation/maint/sw) "yO" = ( -/obj/structure/sign/warning/radioactive{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 }, -/turf/simulated/wall, -/area/ministation/engine) +/turf/simulated/floor/tiled, +/area/ministation/cargo) +"yP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5; + pixel_x = 2; + pixel_y = 1 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "yQ" = ( /obj/structure/cable{ icon_state = "1-4" }, /turf/simulated/floor/airless, /area/space) -"yR" = ( -/obj/machinery/computer/cryopod{ - dir = 2 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "yS" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"yT" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 +/obj/abstract/landmark{ + name = "bluespace_a" }, -/turf/simulated/floor/airless, -/area/ministation/arrival_shuttle) +/turf/space, +/area/space) "yU" = ( /obj/machinery/alarm{ dir = 4; @@ -9485,6 +9719,12 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/wood, /area/ministation/cafe) +"zg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "zh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/civilian{ @@ -9517,35 +9757,6 @@ /obj/effect/wallframe_spawn/reinforced, /turf/simulated/floor/plating, /area/ministation/hydro) -"zl" = ( -/obj/structure/table/reinforced, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"zm" = ( -/obj/structure/bed/chair/shuttle/white{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"zo" = ( -/obj/structure/bed/chair/shuttle/white{ - dir = 8 - }, -/obj/abstract/landmark/latejoin, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"zp" = ( -/obj/structure/shuttle/engine/heater{ - dir = 4 - }, -/obj/structure/window/borosilicate_reinforced{ - dir = 8 - }, -/turf/simulated/floor/airless, -/area/ministation/arrival_shuttle) "zq" = ( /obj/structure/cable{ icon_state = "1-2" @@ -9713,22 +9924,11 @@ "zQ" = ( /turf/simulated/wall, /area/ministation/hydro) -"zR" = ( -/obj/machinery/computer/modular/preset/civilian{ - dir = 4 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"zS" = ( -/obj/abstract/landmark{ - name = "Observer-Start" - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "zT" = ( /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plating, /area/ministation/maint/sw) "zU" = ( @@ -9795,16 +9995,17 @@ }, /area/ministation/telecomms) "Ad" = ( -/obj/effect/wallframe_spawn/reinforced, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 2; - icon_state = "pdoor0"; - id_tag = "EngineBlast"; - name = "Engine Monitoring Room Blast Doors"; - opacity = 0 +/obj/structure/rack{ + dir = 8 }, -/turf/simulated/floor/plating, +/obj/item/storage/belt/utility, +/obj/item/wrench, +/obj/item/weldingtool, +/obj/item/clothing/head/welding, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "Ae" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -9908,8 +10109,17 @@ /turf/simulated/floor/plating, /area/ministation/maint/sw) "Aq" = ( -/obj/structure/sign/warning/secure_area, -/turf/simulated/wall, +/obj/structure/rack{ + dir = 8 + }, +/obj/item/storage/belt/utility, +/obj/item/wrench, +/obj/item/weldingtool, +/obj/item/clothing/head/welding/engie, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "Ar" = ( /obj/structure/lattice, @@ -9919,6 +10129,11 @@ /obj/machinery/atmospherics/pipe/simple/visible, /turf/space, /area/space) +"As" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/tiled, +/area/ministation/engine) "At" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -27 @@ -10028,6 +10243,26 @@ temperature = 263 }, /area/ministation/telecomms) +"AN" = ( +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + dir = 0; + id_tag = "pfm_airlock"; + pixel_y = 24; + tag_airpump = "pfm_vent"; + tag_chamber_sensor = "pfm_sensor"; + tag_exterior_door = "pfm_airlock_exterior"; + tag_interior_door = "pfm_airlock_interior" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "pfm_vent" + }, +/obj/machinery/airlock_sensor{ + id_tag = "pfm_sensor"; + pixel_y = 20 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) "AO" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch/maintenance, @@ -10119,9 +10354,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/plating, /area/ministation/maint/se) "AZ" = ( @@ -10133,8 +10366,21 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/cafe) +"Ba" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "Bb" = ( /turf/simulated/floor/plating, /area/ministation/maint/se) @@ -10142,6 +10388,9 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, /turf/simulated/floor/plating, /area/ministation/maint/sw) "Bd" = ( @@ -10151,6 +10400,9 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/maint/sw) "Bf" = ( @@ -10163,15 +10415,6 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/sw) -"Bg" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) "Bh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 @@ -10190,6 +10433,17 @@ }, /turf/simulated/wall/r_wall, /area/ministation/ai_sat) +"Bj" = ( +/obj/machinery/airlock_sensor{ + id_tag = "escape3_sensor"; + pixel_y = 20 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "escape1_vent" + }, +/turf/simulated/floor/plating, +/area/ministation/hall/w) "Bl" = ( /obj/structure/rack, /obj/item/beartrap, @@ -10200,7 +10454,18 @@ /obj/machinery/door/airlock/external/glass{ autoset_access = 0; name = "External Airlock Hatch"; - req_access = list("ACCESS_EXTERNAL") + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sqm_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sqm_airlock"; + name = "interior access button"; + pixel_x = -10; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 }, /turf/simulated/floor/plating, /area/ministation/maint/se) @@ -10282,16 +10547,27 @@ /obj/item/flashlight/lamp, /turf/simulated/floor/holofloor/lino, /area/ministation/telecomms) +"Bz" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sat2_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sat2_airlock"; + name = "exterior access button"; + pixel_x = -10; + pixel_y = 20; + command = "cycle_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "BA" = ( /obj/effect/wallframe_spawn/reinforced, /turf/simulated/floor/plating, /area/ministation/maint/sw) -"BB" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/ministation/engine) "BC" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 @@ -10338,10 +10614,10 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/door/airlock/double, /turf/simulated/floor/plating, /area/ministation/ai_sat) "BJ" = ( @@ -10374,6 +10650,12 @@ /obj/effect/wallframe_spawn/reinforced, /turf/simulated/floor/plating, /area/ministation/maint/se) +"BN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "BO" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/simple/visible{ @@ -10480,6 +10762,23 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/holofloor/lino, /area/ministation/telecomms) +"Ca" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sqm_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sqm_airlock"; + name = "exterior access button"; + pixel_x = 10; + pixel_y = 20; + command = "cycle_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/maint/se) "Cb" = ( /obj/machinery/alarm{ pixel_y = 20 @@ -10572,6 +10871,10 @@ }, /turf/simulated/floor/holofloor/lino, /area/ministation/telecomms) +"Cm" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "Cn" = ( /turf/simulated/wall, /area/ministation/atmospherics) @@ -10757,6 +11060,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plating, /area/ministation/maint/sw) "CO" = ( @@ -10858,20 +11162,25 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/w) +"Da" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) +"Db" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "Dc" = ( /obj/machinery/newscaster{ pixel_y = 32 }, /obj/structure/table, /turf/simulated/floor/carpet/green, -/area/ministation/court) -"Dd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/floor_decal/industrial/radiation{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/ministation/engine) +/area/ministation/disused_office) "De" = ( /obj/structure/table, /obj/item/multitool, @@ -10924,6 +11233,14 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"Dj" = ( +/obj/random/trash, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -22 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "Dk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/camera/autoname{ @@ -11031,7 +11348,16 @@ /obj/machinery/door/airlock/external/glass{ autoset_access = 0; name = "External Airlock Hatch"; - req_access = list("ACCESS_EXTERNAL") + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "pqm_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "pqm_airlock"; + name = "exterior access button"; + pixel_x = -10; + pixel_y = 20; + command = "cycle_exterior" }, /turf/simulated/floor/plating, /area/ministation/maint/sw) @@ -11045,6 +11371,9 @@ /obj/structure/cable{ icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, /turf/simulated/floor/plating, /area/ministation/maint/sw) "Dw" = ( @@ -11061,12 +11390,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, -/obj/structure/sign/warning/engineering_access{ - pixel_y = -32 - }, /turf/simulated/floor/tiled, /area/ministation/hall/s) "Dy" = ( @@ -11079,11 +11402,15 @@ /obj/structure/cable{ icon_state = "2-8" }, -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"DA" = ( +/obj/item/radio/intercom{ + dir = 1; + pixel_y = -32 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "DC" = ( /turf/simulated/floor/tiled, /area/ministation/engine) @@ -11101,14 +11428,34 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/simulated/wall/r_wall, +/turf/simulated/wall, /area/ministation/engine) "DG" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube1" + }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, -/turf/simulated/wall/r_wall, +/obj/effect/floor_decal/corner/yellow{ + dir = 9 + }, +/turf/simulated/floor/tiled, /area/ministation/hall/s) +"DH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor, +/area/ministation/atmospherics) +"DI" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) "DJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -11300,7 +11647,6 @@ name = "Engineering RC"; pixel_y = 30 }, -/obj/structure/reagent_dispensers/fueltank, /turf/simulated/floor/tiled, /area/ministation/engine) "DZ" = ( @@ -11337,6 +11683,9 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/effect/floor_decal/industrial/warning{ dir = 1 }, @@ -11463,13 +11812,7 @@ /turf/simulated/floor/tiled, /area/ministation/engine) "Ev" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/belt/utility, -/obj/item/wrench, -/obj/item/weldingtool, -/obj/item/clothing/head/welding/engie, +/obj/structure/cable, /turf/simulated/floor/tiled, /area/ministation/engine) "Ew" = ( @@ -11610,10 +11953,6 @@ /obj/structure/sign/warning/engineering_access{ pixel_y = -32 }, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, /turf/simulated/floor/tiled, /area/ministation/hall/s) "EU" = ( @@ -11654,8 +11993,6 @@ dir = 8; icon_state = "tube1" }, -/obj/machinery/atmospherics/portables_connector, -/obj/effect/engine_setup/coolant_canister, /turf/simulated/floor/tiled, /area/ministation/engine) "EY" = ( @@ -11712,7 +12049,7 @@ pixel_y = -24 }, /turf/simulated/floor/tiled, -/area/ministation/court) +/area/ministation/disused_office) "Fh" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 @@ -11784,6 +12121,9 @@ /obj/machinery/portable_atmospherics/powered/scrubber, /turf/simulated/floor/tiled, /area/ministation/engine) +"Fq" = ( +/turf/simulated/wall/r_wall, +/area/ministation/court) "Fr" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 @@ -11841,18 +12181,6 @@ /obj/effect/floor_decal/corner/yellow/three_quarters{ dir = 8 }, -/obj/machinery/button/blast_door{ - desc = "A remote control-switch for engine core."; - id_tag = "EngineVent"; - name = "Engine Ventillatory Control"; - pixel_x = -24; - pixel_y = 10 - }, -/obj/machinery/button/mass_driver{ - id_tag = "enginecore"; - name = "Emergency Core Eject"; - pixel_x = -24 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FA" = ( @@ -11931,9 +12259,6 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 6 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FL" = ( @@ -11943,9 +12268,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FN" = ( @@ -11953,7 +12275,7 @@ dir = 10 }, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "FO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -11961,9 +12283,6 @@ /obj/effect/floor_decal/corner/yellow{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FP" = ( @@ -11972,18 +12291,12 @@ /obj/machinery/door/firedoor{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor, /area/ministation/engine) "FQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FR" = ( @@ -11993,13 +12306,6 @@ /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, -/obj/machinery/meter, /turf/simulated/floor/tiled, /area/ministation/engine) "FS" = ( @@ -12017,16 +12323,12 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, /turf/simulated/floor, /area/ministation/engine) "FU" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/visible/yellow, /turf/simulated/floor/tiled, /area/ministation/engine) "FV" = ( @@ -12039,7 +12341,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/visible/yellow, /turf/simulated/floor/tiled, /area/ministation/engine) "FW" = ( @@ -12047,9 +12348,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FX" = ( @@ -12063,9 +12361,6 @@ /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FY" = ( @@ -12075,18 +12370,13 @@ /obj/machinery/camera/network/engineering{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "FZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 10 - }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/engine) "Ga" = ( @@ -12112,39 +12402,21 @@ dir = 8; pixel_x = -24 }, -/obj/machinery/computer/modular/preset/engineering{ - dir = 1 - }, +/obj/structure/closet/crate/bin/ministation, /turf/simulated/floor/tiled, /area/ministation/engine) "Gd" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/blast_door{ - desc = "A remote control-switch for the engine charging port."; - id_tag = "SupermatterPort"; - name = "Reactor Blast Doors"; - pixel_x = -6; - pixel_y = 7 - }, -/obj/machinery/button/blast_door{ - desc = "A remote control-switch for the engine control room blast doors."; - id_tag = "EngineBlast"; - name = "Engine Monitoring Room Blast Doors"; - pixel_y = -3 - }, -/obj/machinery/button/toggle{ - desc = "A remote control-switch for the engine emitter."; - id_tag = "EngineEmitter"; - name = "Engine Emitter"; - pixel_x = 6; - pixel_y = 7 +/obj/structure/rack{ + dir = 8 }, +/obj/item/clothing/suit/storage/hazardvest, +/obj/item/tank/emergency/oxygen/engi, /turf/simulated/floor/tiled, /area/ministation/engine) "Ge" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/engine) "Gf" = ( @@ -12155,12 +12427,11 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/floor_decal/industrial/radiation, /turf/simulated/floor/tiled, /area/ministation/engine) "Gg" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/engine) "Gh" = ( @@ -12173,10 +12444,6 @@ "Gi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/obj/machinery/door/airlock/hatch/maintenance{ - name = "Engine Access" - }, /turf/simulated/floor/tiled, /area/ministation/engine) "Gj" = ( @@ -12188,9 +12455,6 @@ icon_state = "1-2" }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch/maintenance{ - name = "Engine Access" - }, /turf/simulated/floor/tiled, /area/ministation/engine) "Gk" = ( @@ -12204,7 +12468,7 @@ "Gl" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/engine) "Gm" = ( @@ -12212,28 +12476,45 @@ /turf/simulated/wall, /area/ministation/engine) "Gn" = ( -/obj/machinery/atmospherics/portables_connector, -/obj/effect/engine_setup/coolant_canister, -/turf/simulated/floor/tiled/techfloor, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/smes/buildable/preset, +/turf/simulated/floor/tiled, /area/ministation/engine) "Gp" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/space, -/area/space) +/turf/simulated/floor/tiled, +/area/ministation/engine) "Gq" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/space, -/area/space) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/floor_decal/corner/yellow{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Gr" = ( /obj/effect/floor_decal/corner/yellow{ dir = 9 }, /turf/simulated/floor/tiled, /area/ministation/engine) +"Gs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Gt" = ( /obj/structure/cable{ icon_state = "4-8" @@ -12241,6 +12522,9 @@ /turf/simulated/floor/tiled, /area/ministation/engine) "Gu" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, /obj/machinery/power/smes/buildable/preset, /turf/simulated/floor/tiled, /area/ministation/engine) @@ -12262,12 +12546,22 @@ /turf/simulated/floor/plating, /area/space) "Gx" = ( -/obj/machinery/atmospherics/binary/pump, -/obj/effect/engine_setup/pump_max, -/turf/simulated/floor/tiled/techfloor, +/obj/structure/cable{ + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "Gy" = ( -/turf/simulated/floor/tiled/techfloor/grid, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, /area/ministation/engine) "Gz" = ( /obj/structure/cable{ @@ -12276,7 +12570,14 @@ /obj/effect/floor_decal/corner/yellow{ dir = 6 }, -/turf/simulated/floor/tiled/techfloor, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"GA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "GB" = ( /obj/structure/cable{ @@ -12285,13 +12586,29 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/engine) "GC" = ( -/obj/machinery/door/airlock/external, +/obj/machinery/door/airlock/external{ + autoset_access = 0; + id_tag = "starboard_engineering_airlock_interior"; + locked = 1 + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/machinery/button/access/interior{ + id_tag = "starboard_engineering_airlock"; + name = "interior access button"; + pixel_x = -10; + pixel_y = 20 + }, /turf/simulated/floor, /area/ministation/engine) "GD" = ( @@ -12301,13 +12618,28 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "starboard_engineering_vent"; + dir = 8 + }, /turf/simulated/floor/plating, /area/ministation/engine) "GF" = ( -/obj/machinery/door/airlock/external, +/obj/machinery/door/airlock/external{ + locked = 1; + id_tag = "starboard_engineering_airlock_exterior"; + autoset_access = 0 + }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/button/access/interior{ + id_tag = "starboard_engineering_airlock"; + name = "exterior access button"; + pixel_x = 10; + pixel_y = 20; + command = "cycle_exterior" + }, /turf/simulated/floor/plating, /area/ministation/engine) "GH" = ( @@ -12371,34 +12703,88 @@ /turf/simulated/floor/plating, /area/space) "GQ" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/space, +/obj/machinery/power/tracker, +/turf/simulated/floor/plating, +/area/space) +"GR" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/space) +"GS" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/space) +"GT" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, /area/space) -"GU" = ( -/obj/machinery/door/airlock/glass, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "GV" = ( -/obj/machinery/door/airlock/external/glass, -/obj/machinery/atmospherics/pipe/simple/visible/black{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external/glass{ + id_tag = "port_engineering_airlock_interior"; + autoset_access = 0; + locked = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, +/obj/machinery/button/access/interior{ + id_tag = "port_engineering_airlock"; + name = "interior access button"; + pixel_x = 10; + pixel_y = 20 + }, /turf/simulated/floor/plating, /area/ministation/engine) "GW" = ( /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/airlock_sensor{ + id_tag = "port_engineering_sensor"; + pixel_y = 20 + }, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "port_engineering_airlock"; + pixel_y = 24; + tag_airpump = "port_engineering_vent"; + tag_chamber_sensor = "port_engineering_sensor"; + tag_exterior_door = "port_engineering_airlock_exterior"; + tag_interior_door = "port_engineering_airlock_interior" + }, /turf/simulated/floor/plating, /area/ministation/engine) "GX" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/black{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/machinery/meter, -/turf/simulated/floor/tiled/techfloor, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "GY" = ( /obj/machinery/power/solar_control{ @@ -12423,7 +12809,10 @@ pixel_x = 27; pixel_y = -3 }, -/turf/simulated/floor/tiled/techfloor, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "Hb" = ( /obj/effect/floor_decal/industrial/warning{ @@ -12447,22 +12836,43 @@ }, /turf/simulated/floor/tiled, /area/ministation/engine) +"He" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/space) "Hf" = ( -/obj/machinery/atmospherics/binary/pump{ +/obj/structure/cable, +/obj/machinery/power/solar_control{ dir = 1 }, -/turf/simulated/floor/tiled/techfloor, +/turf/simulated/floor/tiled, /area/ministation/engine) "Hg" = ( +/obj/structure/reagent_dispensers/fueltank, /obj/machinery/camera/network/engineering, -/obj/machinery/portable_atmospherics/canister/nitrogen/engine_setup, -/turf/simulated/floor/tiled/techfloor, +/turf/simulated/floor/tiled, /area/ministation/engine) "Hh" = ( /obj/structure/reagent_dispensers/watertank, /obj/machinery/camera/network/engineering, /turf/simulated/floor, /area/ministation/engine) +"Hi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Hj" = ( /obj/machinery/light/small, /obj/effect/floor_decal/industrial/warning{ @@ -12528,53 +12938,46 @@ /turf/space, /area/space) "Hs" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/light{ dir = 8; icon_state = "tube1" }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan, -/turf/simulated/floor/tiled/techfloor, +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/tiled, /area/ministation/engine) "Ht" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/space, -/area/space) +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Hu" = ( /obj/machinery/alarm{ pixel_y = 23 }, /obj/effect/decal/cleanable/blood/oil, -/turf/simulated/floor/tiled/techfloor/grid, +/turf/simulated/floor/tiled, /area/ministation/engine) "Hv" = ( /obj/machinery/door/firedoor{ dir = 8 }, -/turf/simulated/floor/tiled/techfloor/grid, +/turf/simulated/floor/tiled, /area/ministation/engine) "Hw" = ( /obj/machinery/light{ dir = 1 }, -/obj/machinery/air_sensor{ - id_tag = "engine_sensor" - }, -/turf/simulated/floor/reinforced/airless, +/turf/simulated/floor/tiled, /area/ministation/engine) "Hx" = ( /obj/effect/floor_decal/corner/yellow{ dir = 5 }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/door/blast/regular/open{ - density = 0; - dir = 4; - id_tag = "SupermatterPort"; - name = "Reactor Blast Door" - }, -/obj/effect/wallframe_spawn/reinforced_borosilicate, /turf/simulated/floor/tiled, /area/ministation/engine) "Hy" = ( @@ -12583,8 +12986,10 @@ dir = 4; icon_state = "tube1" }, +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, /turf/simulated/floor/tiled, /area/ministation/engine) "Hz" = ( @@ -12602,42 +13007,40 @@ /turf/space, /area/space) "HB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-4" }, /obj/item/stool, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; dir = 4 }, -/turf/simulated/floor/tiled/techfloor, +/turf/simulated/floor/tiled, /area/ministation/engine) "HC" = ( -/obj/machinery/atmospherics/unary/vent_pump/engine{ - external_pressure_bound = 100; - external_pressure_bound_default = 0; - icon_state = "map_vent_in"; - id_tag = "cooling_out"; - initialize_directions = 1; - pump_direction = 0; - use_power = 1; - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/simulated/floor/reinforced/airless, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, /area/ministation/engine) "HD" = ( -/obj/machinery/door/blast/regular/open{ - dir = 2; - id_tag = "SupermatterPort"; - name = "Reactor Blast Door" +/obj/machinery/door/firedoor{ + dir = 8 }, -/obj/effect/wallframe_spawn/reinforced_borosilicate, -/turf/simulated/floor/plating, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "HE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ +/obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, /turf/simulated/floor/tiled, @@ -12647,8 +13050,8 @@ dir = 5 }, /obj/item/stool, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, /turf/simulated/floor/tiled, /area/ministation/engine) @@ -12656,12 +13059,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 9 +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, /turf/simulated/floor/tiled, /area/ministation/engine) "HH" = ( @@ -12675,22 +13075,55 @@ /obj/item/stack/cable_coil, /obj/item/stock_parts/circuitboard/airlock_electronics, /obj/item/stock_parts/circuitboard/airlock_electronics, -/turf/simulated/floor/tiled/techfloor, +/obj/item/scanner/gas, +/turf/simulated/floor/tiled, /area/ministation/engine) "HJ" = ( /obj/structure/table, /obj/item/folder/yellow, /obj/item/clothing/head/earmuffs, -/turf/simulated/floor/tiled/techfloor, +/obj/item/stack/material/rods/fifty, +/turf/simulated/floor/tiled, /area/ministation/engine) "HK" = ( -/obj/structure/table, -/obj/item/scanner/gas, -/obj/item/stack/material/rods/fifty, -/turf/simulated/floor/tiled/techfloor, +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/turf/simulated/floor/tiled, /area/ministation/engine) "HL" = ( -/turf/simulated/wall/r_wall/prepainted, +/obj/structure/cable, +/obj/machinery/power/smes/buildable/preset, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"HM" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"HN" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"HO" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar_control{ + dir = 8 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "HP" = ( /obj/structure/table, @@ -12718,22 +13151,29 @@ /turf/space, /area/space) "HT" = ( -/obj/machinery/atmospherics/unary/outlet_injector{ - dir = 8; - icon_state = "map_injector"; - id_tag = "cooling_in"; - name = "Coolant Injector"; - pixel_y = 1; - power_rating = 30000; - use_power = 1; - volume_rate = 700 - }, -/turf/simulated/floor/reinforced/airless, -/area/ministation/engine) +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/space) "HU" = ( -/obj/machinery/door/blast/regular{ - id_tag = "EngineVent"; - name = "Reactor Vent" +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + id_tag = "stern_engineering_airlock_interior"; + locked = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/machinery/button/access/interior{ + id_tag = "stern_engineering_airlock"; + name = "interior access button"; + pixel_x = 20; + pixel_y = 10 }, /turf/simulated/floor/plating, /area/ministation/engine) @@ -12744,23 +13184,33 @@ /turf/space, /area/space) "HW" = ( -/obj/structure/grille, -/obj/structure/lattice, -/turf/space, -/area/space) -"HY" = ( -/obj/effect/floor_decal/corner/yellow{ - dir = 5 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/blast/regular/open{ - density = 0; +/obj/machinery/airlock_sensor{ + id_tag = "stern_engineering_sensor"; + pixel_y = 10; + pixel_x = -20 + }, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "stern_engineering_airlock"; + pixel_y = null; + tag_airpump = "stern_engineering_vent"; + tag_chamber_sensor = "stern_engineering_sensor"; + tag_exterior_door = "stern_engineering_airlock_exterior"; + tag_interior_door = "stern_engineering_airlock_interior"; dir = 4; - id_tag = "SupermatterPort"; - name = "Reactor Blast Door" + pixel_x = -20 }, -/obj/effect/wallframe_spawn/reinforced_borosilicate, -/turf/simulated/floor/tiled, +/turf/simulated/floor/plating, /area/ministation/engine) +"HY" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/solar, +/turf/simulated/floor/plating, +/area/space) "HZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -12772,12 +13222,18 @@ /turf/simulated/floor/plating, /area/ministation/maint/se) "Ia" = ( -/obj/effect/wallframe_spawn/reinforced, +/obj/structure/window/basic{ + dir = 1 + }, +/obj/structure/curtain/open/bed{ + icon_state = "closed"; + opacity = 1 + }, /turf/simulated/floor/plating, -/area/ministation/court) +/area/ministation/disused_office) "Ib" = ( /turf/simulated/wall, -/area/ministation/court) +/area/ministation/disused_office) "Ic" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -12807,14 +13263,10 @@ /turf/simulated/floor/tiled, /area/ministation/hall/n) "If" = ( -/obj/machinery/mass_driver{ - id_tag = "enginecore" - }, -/obj/machinery/power/supermatter, -/obj/effect/engine_setup/core, -/obj/effect/decal/warning_stripes, -/turf/simulated/floor/reinforced/airless, -/area/ministation/engine) +/obj/structure/cable, +/obj/machinery/power/solar, +/turf/simulated/floor/plating, +/area/space) "Ig" = ( /obj/structure/lattice, /obj/structure/transit_tube{ @@ -12834,11 +13286,21 @@ /turf/simulated/floor/plating, /area/ministation/ai_sat) "Ik" = ( -/obj/machinery/door/airlock/external/glass, /obj/machinery/door/airlock/external/glass{ autoset_access = 0; name = "External Airlock Hatch"; - req_access = list("ACCESS_EXTERNAL") + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sat2_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sat2_airlock"; + name = "interior access button"; + pixel_x = 10; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 }, /turf/simulated/floor/plating, /area/ministation/ai_sat) @@ -12864,8 +13326,11 @@ /obj/structure/bed/chair/wood/maple{ dir = 8 }, +/obj/abstract/landmark/start{ + name = "Enclave Representative" + }, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "Ip" = ( /obj/machinery/atmospherics/binary/pump/on{ dir = 4 @@ -12879,6 +13344,9 @@ "Is" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, /turf/simulated/floor/plating, /area/ministation/maint/w) "It" = ( @@ -12891,6 +13359,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plating, /area/ministation/ai_sat) "Iv" = ( @@ -12932,7 +13401,7 @@ /area/ministation/court) "IC" = ( /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "ID" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/plating, @@ -12950,9 +13419,9 @@ /turf/simulated/floor/plating, /area/ministation/ai_sat) "IH" = ( -/obj/machinery/door/airlock, -/turf/simulated/floor/plating, -/area/ministation/ai_sat) +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "II" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor/plating, @@ -12976,15 +13445,6 @@ /obj/structure/rack, /turf/simulated/floor/plating, /area/ministation/ai_sat) -"IM" = ( -/obj/machinery/door/firedoor{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) "IN" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 1 @@ -12995,12 +13455,16 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, -/obj/machinery/embedded_controller/radio/simple_docking_controller{ +/obj/machinery/embedded_controller/radio/airlock/docking_port{ dir = 4; id_tag = "cargo_bay"; - pixel_x = -15; - tag_door = "cargo_bay_door" + tag_airpump = "cargo_vent"; + tag_chamber_sensor = "cargo_sensor"; + tag_exterior_door = "cargo_airlock_exterior"; + tag_interior_door = "cargo_airlock_interior"; + pixel_x = -20 }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/cargo) "IQ" = ( @@ -13039,12 +13503,44 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ministation/ai_core) +"IZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Jc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/cyan, -/turf/simulated/floor/tiled/techfloor, +/obj/effect/decal/cleanable/blood/oil, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 4 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) +"Jd" = ( +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + dir = 0; + id_tag = "sat3_airlock"; + pixel_y = 24; + tag_airpump = "sat3_vent"; + tag_chamber_sensor = "sat3_sensor"; + tag_exterior_door = "sat3_airlock_exterior"; + tag_interior_door = "sat3_airlock_interior" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "sat3_vent" + }, +/obj/machinery/airlock_sensor{ + id_tag = "sat3_sensor"; + pixel_y = 20 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "Je" = ( /obj/machinery/light/small{ dir = 1 @@ -13052,15 +13548,17 @@ /obj/machinery/alarm{ pixel_y = 23 }, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/cafe) "Jf" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/plating, /area/ministation/maint/sw) "Jg" = ( @@ -13148,6 +13646,14 @@ "Jt" = ( /turf/simulated/floor/plating, /area/space) +"Ju" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -22 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "Jv" = ( /obj/machinery/light/small, /turf/simulated/floor/plating, @@ -13252,6 +13758,11 @@ "JN" = ( /turf/simulated/wall/r_wall, /area/ministation/ai_upload) +"JO" = ( +/obj/structure/cable, +/obj/machinery/power/tracker, +/turf/simulated/floor/plating, +/area/space) "JP" = ( /obj/structure/transit_tube{ icon_state = "N-SE" @@ -13613,6 +14124,15 @@ }, /turf/simulated/floor/plating, /area/ministation/ai_sat) +"KI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) "KJ" = ( /obj/structure/cable{ icon_state = "1-4" @@ -14005,12 +14525,6 @@ "LM" = ( /turf/simulated/floor/wood/mahogany, /area/ministation/library) -"LO" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) "LP" = ( /obj/effect/floor_decal/corner/purple{ dir = 6 @@ -14058,6 +14572,10 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"LU" = ( +/obj/random/trash, +/turf/simulated/floor/plating, +/area/ministation/disused) "LV" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 @@ -14191,6 +14709,12 @@ }, /turf/simulated/floor/tiled/white, /area/ministation/science) +"Mj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "Mk" = ( /obj/structure/cable{ icon_state = "1-2" @@ -14199,8 +14723,11 @@ /turf/simulated/floor/plating, /area/ministation/maint/ne) "Ml" = ( -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200 + }, +/turf/simulated/floor, +/area/ministation/atmospherics) "Mm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -14244,12 +14771,6 @@ }, /turf/simulated/floor/airless, /area/space) -"Mv" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) "Mw" = ( /obj/machinery/cryopod{ dir = 1 @@ -14274,6 +14795,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"MC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4; + level = 2 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "MD" = ( /obj/item/stool/padded, /obj/structure/sign/warning/nosmoking_2{ @@ -14282,6 +14810,19 @@ /obj/random_multi/single_item/captains_spare_id, /turf/simulated/floor/tiled/white, /area/ministation/medical) +"MF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) +"MG" = ( +/obj/structure/bed/chair, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "MH" = ( /obj/structure/table, /obj/item/implantcase/tracking, @@ -14301,10 +14842,33 @@ /obj/item/bedsheet/purple, /turf/simulated/floor/wood/mahogany, /area/ministation/library) +"MK" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/turf/simulated/floor, +/area/ministation/atmospherics) "MM" = ( -/obj/structure/reagent_dispensers/watertank, +/obj/machinery/door/firedoor{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/ministation/engine) +"MN" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) "MO" = ( /obj/effect/decal/cleanable/blood/oil, /turf/simulated/floor/plating, @@ -14318,6 +14882,10 @@ /area/ministation/library) "MQ" = ( /obj/structure/closet, +/obj/item/gun/launcher/crossbow, +/obj/item/arrow, +/obj/item/arrow, +/obj/item/cell/crap, /obj/item/storage/briefcase, /obj/machinery/firealarm{ dir = 4; @@ -14330,18 +14898,18 @@ dir = 10 }, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "MT" = ( /obj/machinery/door/firedoor{ dir = 8 }, -/obj/machinery/door/airlock/glass/mining, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/door/airlock/double/glass/mining, /turf/simulated/floor/tiled, /area/ministation/cargo) "MU" = ( @@ -14358,6 +14926,16 @@ }, /turf/simulated/floor/tiled, /area/ministation/bridge) +"MY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "Na" = ( /obj/effect/floor_decal/corner/blue{ dir = 5 @@ -14377,16 +14955,12 @@ }, /turf/simulated/floor/wood/yew, /area/ministation/court) -"Nf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/radiation{ - dir = 8 +"Ne" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 6 }, -/turf/simulated/floor/tiled, -/area/ministation/engine) +/turf/simulated/floor/plating, +/area/ministation/maint/w) "Nh" = ( /obj/structure/sign/directions/engineering{ pixel_x = -32; @@ -14399,7 +14973,13 @@ /turf/simulated/floor/tiled, /area/ministation/hall/s) "Ni" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock{ + pixel_x = 1 + }, /turf/simulated/floor/tiled, /area/ministation/engine) "Nj" = ( @@ -14410,24 +14990,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/ministation/hall/n) -"Nl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) -"Nn" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, -/obj/machinery/door/airlock/hatch/maintenance{ - name = "Engine Access" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) "No" = ( /obj/machinery/light{ dir = 8 @@ -14448,10 +15010,34 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"Ns" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "Nt" = ( /obj/structure/flora/pottedplant/smalltree, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"Nu" = ( +/obj/machinery/airlock_sensor{ + id_tag = "escape2_sensor"; + pixel_y = -20 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "escape1_vent" + }, +/turf/simulated/floor/plating, +/area/ministation/hall/w) +"Nv" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled, +/area/ministation/disused) "Nw" = ( /turf/simulated/floor/tiled, /area/ministation/court) @@ -14498,6 +15084,9 @@ icon_state = "0-4" }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/maint/sw) "NH" = ( @@ -14512,6 +15101,12 @@ }, /turf/simulated/floor/tiled, /area/ministation/bridge) +"NI" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "NJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -14532,13 +15127,17 @@ /obj/effect/decal/cleanable/blood/oil, /turf/simulated/floor/plating, /area/ministation/maint/sw) +"NL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "NO" = ( -/obj/abstract/level_data/main_level, -/turf/space, -/area/space) -"NP" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging, +/obj/abstract/level_data/main_level{ + name = "Outpost Zebra"; +}, /turf/space, /area/space) "NR" = ( @@ -14553,30 +15152,43 @@ /turf/simulated/floor/tiled, /area/ministation/hall/n) "NT" = ( -/obj/machinery/generator{ - anchored = 1; - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) +"NU" = ( +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + dir = 1; + id_tag = "sat2_airlock"; + pixel_y = -24; + tag_airpump = "sat2_vent"; + tag_chamber_sensor = "sat2_sensor"; + tag_exterior_door = "sat2_airlock_exterior"; + tag_interior_door = "sat2_airlock_interior" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "sat2_vent" }, -/obj/structure/cable, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) -"NY" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/omni/filter{ - tag_east = 4; - tag_north = 2; - use_power = 0; - tag_south = 1 +/obj/machinery/airlock_sensor{ + id_tag = "sat2_sensor"; + pixel_y = -20; + pixel_x = -10 }, -/obj/effect/engine_setup/filter, -/turf/simulated/floor/tiled, -/area/ministation/engine) -"Oa" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 +/turf/simulated/floor/plating, +/area/ministation/ai_sat) +"NW" = ( +/obj/effect/decal/cleanable/dirt{ + dir = 9 }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ministation/engine) +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) +"NX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/se) "Oc" = ( /obj/effect/floor_decal/corner/blue{ dir = 10 @@ -14590,15 +15202,17 @@ }, /turf/simulated/floor/wood/yew, /area/ministation/court) -"Oe" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 10 +"Of" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 }, -/turf/space, -/area/space) +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "Oh" = ( /obj/machinery/light/small, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, /turf/simulated/floor, /area/ministation/atmospherics) "Oi" = ( @@ -14607,12 +15221,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, /area/ministation/hall/n) -"Oj" = ( -/obj/structure/grille, -/obj/structure/grille, -/obj/structure/lattice, -/turf/space, -/area/space) "Om" = ( /obj/item/stool, /obj/machinery/alarm{ @@ -14638,18 +15246,26 @@ }, /area/ministation/maint/w) "Oq" = ( -/obj/machinery/door/airlock/glass/security{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/airlock/double/glass/security{ id_tag = "secdoor"; name = "security outer airlock" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/ministation/security) "Or" = ( /obj/random/trash, +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/plating, /area/ministation/maint/se) +"Os" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/wall, +/area/ministation/hall/w) "Ou" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -14683,11 +15299,12 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/se) -"Oy" = ( -/obj/structure/sign/warning/radioactive, -/turf/simulated/wall/r_wall/prepainted, -/area/ministation/engine) "OB" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "_North APC"; + pixel_y = 24 + }, /obj/structure/cable{ icon_state = "0-2" }, @@ -14696,7 +15313,7 @@ pixel_x = 24 }, /turf/simulated/floor/plating, -/area/ministation/court) +/area/ministation/disused_office) "OC" = ( /obj/machinery/door/airlock/hatch/maintenance, /obj/structure/cable{ @@ -14707,15 +15324,11 @@ "OD" = ( /obj/machinery/door/airlock/hatch/maintenance, /turf/simulated/floor/plating, -/area/ministation/court) +/area/ministation/disused_office) "OF" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /turf/simulated/floor, /area/ministation/atmospherics) -"OG" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging, -/turf/space, -/area/space) "OL" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled/white, @@ -14730,20 +15343,66 @@ }, /turf/simulated/floor/wood/mahogany, /area/ministation/library) +"OO" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sat3_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sat3_airlock"; + name = "exterior access button"; + pixel_x = -10; + pixel_y = 20; + command = "cycle_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "OP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /turf/simulated/floor/tiled, /area/ministation/court) +"OQ" = ( +/obj/machinery/door/airlock/glass/command{ + autoset_access = 0; + name = "Telecommunications relay airlock"; + req_access = list("ACCESS_TELECOMS") + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "OR" = ( -/obj/machinery/door/airlock/external/glass, +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "mining_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "cargo_airlock"; + name = "exterior access button"; + pixel_x = -20; + pixel_y = 10; + command = "cycle_exterior" + }, /turf/simulated/floor/airless, /area/ministation/cargo) -"OS" = ( -/obj/machinery/computer/arcade/orion_trail, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) +"OT" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + locked = 1; + id_tag = "escape1_airlock_interior" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/hall/w) "OU" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 @@ -14782,7 +15441,18 @@ /turf/simulated/floor/tiled, /area/ministation/hall/s) "OX" = ( -/obj/machinery/door/airlock/external, +/obj/machinery/door/airlock/external{ + autoset_access = 0; + id_tag = "atmos_airlock_interior"; + locked = 1 + }, +/obj/machinery/button/access/interior{ + id_tag = "atmos_airlock"; + name = "interior access button"; + pixel_x = 20; + pixel_y = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor, /area/ministation/atmospherics) "OY" = ( @@ -14815,11 +15485,12 @@ /turf/simulated/floor/tiled/white, /area/ministation/hall/e) "Pe" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black{ +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ dir = 10 }, -/turf/simulated/wall, -/area/ministation/engine) +/turf/simulated/floor/tiled, +/area/ministation/cargo) "Pg" = ( /obj/structure/cable{ icon_state = "1-2" @@ -14859,6 +15530,7 @@ /obj/structure/sign/warning/airlock{ pixel_x = 32 }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/tiled, /area/ministation/cargo) "Po" = ( @@ -14872,6 +15544,29 @@ "Pp" = ( /turf/space, /area/ministation/supply_dock) +"Pr" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + locked = 1; + id_tag = "pfm_airlock_exterior" + }, +/obj/machinery/button/access/interior{ + id_tag = "pfm_airlock"; + name = "exterior access button"; + pixel_x = -10; + pixel_y = 20; + command = "cycle_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) +"Pu" = ( +/obj/item/radio/intercom{ + dir = 4; + pixel_x = -25 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "Px" = ( /obj/structure/table/woodentable/walnut, /obj/item/folder/red, @@ -14887,9 +15582,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "PA" = ( @@ -14929,12 +15621,6 @@ /obj/random/trash, /turf/simulated/floor/tiled, /area/ministation/engine) -"PG" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 10 - }, -/turf/space, -/area/space) "PH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -14956,9 +15642,6 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/ministation/engine) "PM" = ( @@ -14973,6 +15656,15 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"PN" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + locked = 1; + id_tag = "escape1_airlock_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/hall/w) "PP" = ( /obj/structure/closet, /obj/random/maintenance, @@ -15011,17 +15703,33 @@ dir = 4; level = 2 }, +/obj/item/modular_computer/tablet/preset/custom_loadout/cheap, +/obj/item/mollusc/clam, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "PX" = ( -/obj/machinery/portable_atmospherics/canister/empty, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 2 + }, /turf/simulated/floor/tiled, -/area/ministation/engine) -"PZ" = ( -/obj/machinery/door/airlock/external/glass, -/obj/machinery/atmospherics/pipe/simple/visible/green, +/area/ministation/hall/w) +"PY" = ( +/obj/machinery/airlock_sensor{ + id_tag = "escape1_sensor"; + pixel_y = -20 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "escape1_vent" + }, /turf/simulated/floor/plating, -/area/ministation/engine) +/area/ministation/hall/w) +"Qb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor, +/area/ministation/atmospherics) "Qh" = ( /obj/structure/bed/chair/wood/walnut{ dir = 4 @@ -15031,6 +15739,16 @@ }, /turf/simulated/floor/wood/yew, /area/ministation/court) +"Qi" = ( +/obj/effect/decal/cleanable/filth, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "Qk" = ( /obj/structure/cable{ icon_state = "1-2" @@ -15043,10 +15761,16 @@ "Qm" = ( /obj/machinery/cryopod/robot, /obj/machinery/computer/cryopod/robot{ - dir = 1 + pixel_y = -32 }, /turf/simulated/floor/tiled/white, /area/ministation/science) +"Qp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/hall/w) "Qq" = ( /obj/machinery/power/apc{ dir = 1; @@ -15059,6 +15783,14 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/ne) +"Qr" = ( +/obj/effect/decal/cleanable/filth, +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "Qu" = ( /obj/structure/cable{ icon_state = "1-8" @@ -15081,6 +15813,9 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/maint/se) "Qz" = ( @@ -15088,6 +15823,13 @@ /obj/structure/sign/botany, /turf/simulated/floor/tiled, /area/ministation/hydro) +"QA" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "QB" = ( /obj/machinery/light, /turf/simulated/floor/tiled, @@ -15113,10 +15855,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, /area/ministation/hall/s) -"QH" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/wall/r_wall, -/area/ministation/hall/s) "QI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -15126,6 +15864,12 @@ }, /turf/simulated/floor/plating, /area/ministation/ai_sat) +"QJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "QL" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor, @@ -15135,10 +15879,6 @@ }, /turf/simulated/floor/plating, /area/ministation/security) -"QM" = ( -/obj/structure/sign/warning/vent_port, -/turf/simulated/wall/r_wall/prepainted, -/area/ministation/engine) "QN" = ( /obj/structure/sign/id_office{ dir = 1; @@ -15173,6 +15913,15 @@ }, /turf/simulated/floor/tiled, /area/ministation/security) +"QS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "QU" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 @@ -15207,13 +15956,17 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"QZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "Ra" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ - dir = 5 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 }, -/obj/structure/lattice, -/turf/space, -/area/space) +/turf/simulated/wall/r_wall, +/area/ministation/ai_core) "Rb" = ( /obj/machinery/cryopod{ dir = 1 @@ -15248,6 +16001,17 @@ }, /turf/simulated/floor/plating, /area/ministation/library) +"Rh" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "cargo_vent" + }, +/obj/machinery/airlock_sensor{ + id_tag = "cargo2_sensor"; + pixel_y = -20 + }, +/turf/simulated/floor/plating, +/area/ministation/cargo) "Ri" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -15273,6 +16037,35 @@ }, /turf/simulated/floor/tiled/white, /area/ministation/science) +"Rm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) +"Rn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 2 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) +"Rq" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "cargo_vent" + }, +/obj/machinery/airlock_sensor{ + id_tag = "cargo_sensor"; + pixel_y = -20 + }, +/turf/simulated/floor/plating, +/area/ministation/cargo) "Rr" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, @@ -15310,6 +16103,16 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/wood, /area/ministation/cafe) +"Rx" = ( +/turf/simulated/wall, +/area/ministation/court) +"Ry" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "RB" = ( /obj/effect/decal/cleanable/blood/oil, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -15321,14 +16124,24 @@ /turf/simulated/floor/plating, /area/ministation/maint/se) "RC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/obj/effect/floor_decal/industrial/radiation, -/turf/simulated/floor/tiled, -/area/ministation/engine) +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "RD" = ( /turf/simulated/wall/r_wall, /area/ministation/cryo) +"RF" = ( +/obj/random/trash, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "RG" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/wood/mahogany, @@ -15347,12 +16160,23 @@ /turf/simulated/floor/tiled, /area/ministation/hall/s) "RJ" = ( -/obj/machinery/door/airlock/external/glass, -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external/glass{ + id_tag = "port_engineering_airlock_exterior"; + locked = 1; + autoset_access = 0 + }, +/obj/machinery/button/access/interior{ + id_tag = "port_engineering_airlock"; + name = "exterior access button"; + pixel_x = -10; + pixel_y = 20; + command = "cycle_exterior" }, /turf/simulated/floor/plating, -/area/space) +/area/ministation/engine) "RK" = ( /obj/structure/cable{ icon_state = "4-8" @@ -15362,10 +16186,15 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/sw) -"RL" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) +"RM" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock{ + pixel_x = 1 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "RN" = ( /obj/effect/floor_decal/corner/paleblue{ dir = 10 @@ -15381,6 +16210,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/blood/oil, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/plating, /area/ministation/maint/sw) "RP" = ( @@ -15418,6 +16248,12 @@ }, /turf/simulated/floor/tiled/white, /area/ministation/science) +"RW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "RY" = ( /obj/machinery/door/airlock/hatch/maintenance, /turf/simulated/wall, @@ -15478,6 +16314,13 @@ /obj/effect/decal/cleanable/blood/oil, /turf/simulated/floor/plating, /area/ministation/maint/w) +"Sn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "So" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/decal/cleanable/dirt, @@ -15494,14 +16337,35 @@ /turf/simulated/floor/tiled/white, /area/ministation/medical) "Sq" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"Sr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor, +/area/ministation/atmospherics) +"Ss" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) +"Sv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "Sy" = ( /obj/structure/cable{ icon_state = "4-8" @@ -15516,6 +16380,17 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"SA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "SC" = ( /obj/machinery/light/small{ dir = 8 @@ -15550,12 +16425,25 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/ministation/maint/sw) +"SI" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "SN" = ( /obj/machinery/camera/autoname{ dir = 1 }, /turf/simulated/floor/tiled, -/area/ministation/court) +/area/ministation/disused_office) +"SO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "SP" = ( /obj/item/stool/padded, /turf/simulated/floor/wood/mahogany, @@ -15567,9 +16455,15 @@ /turf/simulated/floor/tiled, /area/ministation/cargo) "ST" = ( -/obj/structure/lattice, -/turf/simulated/wall, -/area/space) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "SV" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 @@ -15592,7 +16486,17 @@ /obj/machinery/door/airlock/external/glass{ autoset_access = 0; name = "External Airlock Hatch"; - req_access = list("ACCESS_EXTERNAL") + locked = 1; + id_tag = "pfm_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "pfm_airlock"; + name = "interior access button"; + pixel_x = 10; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 }, /turf/simulated/floor/plating, /area/ministation/maint/nw) @@ -15605,30 +16509,40 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector, /turf/simulated/floor, /area/ministation/atmospherics) +"Ta" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "Tb" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/ministation/janitor) -"Te" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +"Tc" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/binary/pump{ - dir = 1; - name = "waste pump" +/turf/simulated/floor/plating, +/area/ministation/maint/ne) +"Td" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 1 }, -/obj/effect/engine_setup/pump_max, -/turf/simulated/floor/tiled, -/area/ministation/engine) -"Tf" = ( -/obj/machinery/atmospherics/pipe/simple/visible/black{ - dir = 4 +/turf/simulated/floor/plating, +/area/ministation/ai_sat) +"Te" = ( +/obj/machinery/alarm{ + dir = 4; + pixel_x = -22 }, -/turf/simulated/wall, -/area/ministation/engine) +/turf/simulated/floor/plating, +/area/ministation/disused) "Tg" = ( /obj/structure/cable{ icon_state = "2-4" @@ -15674,36 +16588,43 @@ }, /turf/simulated/floor/tiled, /area/ministation/court) -"Tw" = ( -/obj/item/radio/intercom{ - dir = 4; - pixel_x = -25 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) -"Tx" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ +"Ts" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden{ dir = 6 }, -/turf/space, -/area/space) +/turf/simulated/floor/plating, +/area/ministation/maint/w) +"Tv" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 1; + id_tag = "atmos_vent" + }, +/obj/machinery/airlock_sensor{ + id_tag = "atmos_sensor"; + pixel_y = 10; + pixel_x = -20 + }, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "atmos_airlock"; + pixel_y = null; + tag_airpump = "atmos_vent"; + tag_chamber_sensor = "atmos_sensor"; + tag_exterior_door = "atmos_airlock_exterior"; + tag_interior_door = "atmos_airlock_interior"; + dir = 4; + pixel_x = -20 + }, +/turf/simulated/floor, +/area/ministation/atmospherics) "Ty" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor, /area/ministation/atmospherics) -"TA" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging, -/obj/structure/lattice, -/turf/space, -/area/space) -"TB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) "TC" = ( /obj/machinery/firealarm{ dir = 1; @@ -15717,6 +16638,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"TD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "TF" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -15724,6 +16652,12 @@ }, /turf/simulated/floor/wood/yew, /area/ministation/court) +"TG" = ( +/obj/effect/decal/cleanable/filth, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ministation/disused) "TH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -15764,6 +16698,13 @@ /obj/item/stool, /turf/simulated/floor/plating, /area/ministation/maint/se) +"TP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "TQ" = ( /obj/machinery/light_switch{ dir = 8; @@ -15783,10 +16724,24 @@ }, /turf/simulated/floor/airless, /area/ministation/atmospherics) -"TU" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction, -/turf/space, -/area/space) +"TT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external/glass{ + locked = 1; + id_tag = "stern_engineering_airlock_exterior"; + autoset_access = 0 + }, +/obj/machinery/button/access/interior{ + id_tag = "stern_engineering_airlock"; + name = "exterior access button"; + pixel_x = -20; + pixel_y = -10; + command = "cycle_exterior" + }, +/turf/simulated/floor/plating, +/area/ministation/engine) "TV" = ( /obj/machinery/door/firedoor{ dir = 8 @@ -15800,6 +16755,26 @@ }, /turf/simulated/floor/tiled, /area/ministation/security) +"TW" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "sqm_vent"; + dir = 8 + }, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + dir = 0; + id_tag = "sqm_airlock"; + pixel_y = 24; + tag_airpump = "sqm_vent"; + tag_chamber_sensor = "sqm_sensor"; + tag_exterior_door = "sqm_airlock_exterior"; + tag_interior_door = "sqm_airlock_interior" + }, +/obj/machinery/airlock_sensor{ + id_tag = "sqm_sensor"; + pixel_y = 20 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/se) "TX" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -15822,6 +16797,18 @@ /obj/effect/decal/cleanable/blood/oil, /turf/simulated/floor/plating, /area/ministation/maint/w) +"Uc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"Ud" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/plating, +/area/ministation/disused) "Ue" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -15834,7 +16821,10 @@ /area/ministation/maint/se) "Um" = ( /obj/random/trash, -/turf/simulated/floor/tiled/techfloor, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, /area/ministation/engine) "Un" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -15880,26 +16870,24 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/wood/mahogany, /area/ministation/library) -"Uy" = ( -/obj/machinery/atmospherics/unary/vent_pump{ - dir = 1; - external_pressure_bound = 0; - external_pressure_bound_default = 0; - icon_state = "map_vent_in"; - initialize_directions = 1; - internal_pressure_bound = 4000; - internal_pressure_bound_default = 4000; - pressure_checks = 2; - pressure_checks_default = 2; - pump_direction = 0; - use_power = 1 +"Ux" = ( +/turf/simulated/floor/plating, +/area/ministation/disused) +"Uz" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "Dock Airlock"; + locked = 1 }, /turf/simulated/floor/plating, -/area/ministation/engine) +/area/ministation/hall/w) "UA" = ( /obj/machinery/camera/network/ministation/sat{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, /turf/simulated/floor/plating, /area/ministation/ai_sat) "UB" = ( @@ -15940,26 +16928,20 @@ /turf/simulated/floor/plating, /area/ministation/court) "UK" = ( -/obj/structure/closet, -/obj/random/maintenance, -/obj/random/suit, -/obj/random/gloves, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/portables_connector{ + pixel_x = -3 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, /turf/simulated/floor/plating, /area/ministation/maint/sw) "UL" = ( /obj/effect/decal/cleanable/filth, /turf/simulated/floor/plating, /area/ministation/maint/ne) -"UN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) "UO" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 }, /turf/simulated/floor, /area/ministation/atmospherics) @@ -15979,7 +16961,30 @@ }, /turf/simulated/floor/tiled, /area/ministation/bridge) +"UT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 200; + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "UV" = ( +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "mining_airlock"; + pixel_y = null; + tag_airpump = "mining_vent"; + tag_chamber_sensor = "mining_sensor"; + tag_exterior_door = "mining_airlock_exterior"; + tag_interior_door = "mining_airlock_interior"; + dir = 4; + pixel_x = -20 + }, +/obj/machinery/airlock_sensor{ + id_tag = "mining_sensor"; + pixel_y = 10; + pixel_x = -20 + }, /turf/simulated/floor/plating, /area/ministation/cargo) "Va" = ( @@ -15993,6 +16998,10 @@ }, /turf/simulated/floor, /area/ministation/atmospherics) +"Vc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "Vd" = ( /obj/structure/filing_cabinet, /obj/machinery/firealarm{ @@ -16001,13 +17010,17 @@ }, /turf/simulated/floor/tiled, /area/ministation/court) +"Ve" = ( +/obj/abstract/landmark/start{ + name = "Station Engineer" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Vf" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/ministation/maint/w) -"Vh" = ( -/turf/simulated/floor/reinforced/airless, -/area/ministation/engine) "Vi" = ( /obj/machinery/light_switch{ pixel_y = 25 @@ -16033,7 +17046,7 @@ dir = 4 }, /turf/simulated/floor/tiled, -/area/ministation/court) +/area/ministation/disused_office) "Vn" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4; @@ -16053,6 +17066,12 @@ /obj/structure/bookcase/skill_books/random, /turf/simulated/floor/wood/mahogany, /area/ministation/library) +"Vs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "Vt" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -16096,28 +17115,57 @@ /obj/effect/decal/cleanable/filth, /turf/simulated/floor/tiled, /area/ministation/hall/e) +"Vy" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "Vz" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/simulated/floor/airless, /area/space) -"VE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) +"VA" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sat1_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sat1_airlock"; + name = "interior access button"; + pixel_x = 10; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) +"VD" = ( +/obj/effect/wallframe_spawn/reinforced, +/turf/simulated/floor/plating, +/area/ministation/disused) +"VF" = ( +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/ministation/disused) "VG" = ( /obj/effect/wallframe_spawn/reinforced, /obj/structure/sign/warning/airlock, /turf/simulated/floor/plating, /area/ministation/engine) -"VH" = ( -/obj/structure/sign/warning/secure_area{ - dir = 4 - }, -/turf/simulated/wall/r_wall/prepainted, -/area/ministation/engine) +"VJ" = ( +/obj/machinery/door/airlock/hatch/maintenance, +/turf/simulated/floor/plating, +/area/ministation/maint/ne) "VK" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -16159,6 +17207,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/commons) +"VS" = ( +/obj/effect/decal/cleanable/filth, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "VU" = ( /obj/structure/rack, /obj/item/radio/intercom{ @@ -16184,13 +17239,6 @@ }, /turf/simulated/floor/wood/mahogany, /area/ministation/library) -"VX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/binary/circulator{ - anchored = 1 - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) "VZ" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 8 @@ -16204,6 +17252,10 @@ "Wb" = ( /turf/simulated/wall, /area/ministation/cryo) +"Wc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) "Wd" = ( /obj/machinery/alarm{ dir = 1; @@ -16211,6 +17263,12 @@ }, /turf/simulated/floor/plating, /area/ministation/detective) +"Wg" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "Wi" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4; @@ -16218,13 +17276,6 @@ }, /turf/simulated/floor/tiled, /area/ministation/security) -"Wj" = ( -/obj/abstract/landmark{ - name = "carpspawn" - }, -/obj/abstract/ministation/random_asteroid_spawner, -/turf/space, -/area/space) "Wk" = ( /obj/machinery/door/airlock/glass/atmos, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -16241,10 +17292,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/engine) -"Wp" = ( -/obj/abstract/ministation/random_asteroid_spawner, -/turf/space, -/area/space) +"Wo" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/tiled, +/area/ministation/hall/w) "Wr" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/light{ @@ -16260,8 +17314,8 @@ /turf/simulated/floor/wood/mahogany, /area/ministation/library) "Wt" = ( -/obj/machinery/atmospherics/pipe/manifold/visible{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 }, /turf/simulated/floor/plating, /area/ministation/maint/w) @@ -16282,6 +17336,7 @@ /area/ministation/atmospherics) "WC" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/hidden, /turf/simulated/floor/plating, /area/ministation/maint/se) "WD" = ( @@ -16290,7 +17345,7 @@ pixel_x = 32 }, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "WF" = ( /obj/structure/closet/secure_closet/security, /turf/simulated/floor/tiled, @@ -16300,10 +17355,10 @@ /turf/simulated/floor/plating, /area/ministation/maint/e) "WH" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/visible/universal, /turf/simulated/floor/plating, /area/ministation/maint/w) "WL" = ( @@ -16344,6 +17399,13 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"WP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/se) "WQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -16357,12 +17419,16 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"WS" = ( +/obj/effect/wallframe_spawn/no_grille, +/turf/simulated/floor/tiled, +/area/ministation/disused) "WT" = ( /obj/structure/bed/padded, /obj/item/bedsheet/green, /obj/random_multi/single_item/captains_spare_id, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "WU" = ( /turf/simulated/floor, /area/space) @@ -16384,10 +17450,6 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/se) -"WX" = ( -/obj/machinery/cryopod, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "WY" = ( /obj/effect/wallframe_spawn/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ @@ -16399,9 +17461,13 @@ /turf/simulated/floor/tiled, /area/ministation/security) "WZ" = ( -/obj/item/chems/syringe/drugs, +/obj/machinery/light/small, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/obj/machinery/atmospherics/portables_connector{ + dir = 8 + }, /turf/simulated/floor/plating, -/area/ministation/maint/w) +/area/ministation/ai_sat) "Xd" = ( /obj/structure/bed/chair{ dir = 4 @@ -16431,10 +17497,33 @@ }, /turf/simulated/floor, /area/ministation/atmospherics) +"Xk" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "Xl" = ( /obj/structure/lattice, /turf/simulated/wall/r_wall, /area/ministation/cryo) +"Xo" = ( +/obj/effect/decal/cleanable/filth, +/obj/effect/decal/cleanable/filth, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) +"Xp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "Xr" = ( /obj/abstract/landmark{ name = "bluespace_a" @@ -16451,10 +17540,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/door/airlock/glass/security{ - id_tag = "secdoor"; - name = "security outer airlock" - }, /turf/simulated/floor/tiled, /area/ministation/security) "Xt" = ( @@ -16481,13 +17566,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, /area/ministation/hall/n) -"Xz" = ( -/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ - dir = 8 - }, -/obj/structure/lattice, -/turf/space, -/area/space) "XA" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 @@ -16497,10 +17575,46 @@ }, /turf/simulated/floor/tiled/white, /area/ministation/medical) -"XB" = ( -/obj/structure/sign/warning/vent_port, -/turf/simulated/wall, +"XD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/ministation/maint/nw) +"XE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/airlock_sensor{ + id_tag = "starboard_engineering_sensor"; + pixel_y = 20 + }, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + id_tag = "starboard_engineering_airlock"; + pixel_y = 24; + tag_airpump = "starboard_engineering_vent"; + tag_chamber_sensor = "starboard_engineering_sensor"; + tag_exterior_door = "starboard_engineering_airlock_exterior"; + tag_interior_door = "starboard_engineering_airlock_interior" + }, +/turf/simulated/floor/plating, /area/ministation/engine) +"XF" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) +"XJ" = ( +/obj/structure/closet, +/obj/random/maintenance, +/obj/random/suit, +/obj/random/gloves, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) "XL" = ( /obj/machinery/alarm{ pixel_y = 23 @@ -16543,6 +17657,22 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"XT" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) +"XV" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/w) "XX" = ( /obj/machinery/alarm{ dir = 8; @@ -16605,6 +17735,11 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/w) +"Yh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ministation/disused) "Yi" = ( /obj/structure/cable{ icon_state = "4-8" @@ -16618,14 +17753,6 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/nw) -"Yl" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/portables_connector, -/obj/effect/engine_setup/empty_canister, -/turf/simulated/floor/tiled, -/area/ministation/engine) "Ym" = ( /obj/structure/cable{ icon_state = "1-2" @@ -16639,22 +17766,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled, /area/ministation/hall/n) -"Yn" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/floor_decal/corner/yellow{ - dir = 10 - }, -/obj/structure/sign/engineering{ - dir = 1; - pixel_y = -32 - }, -/turf/simulated/floor/tiled, -/area/ministation/hall/s) "Yo" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 @@ -16664,17 +17775,27 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/e) -"Yt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +"Yp" = ( +/obj/random/trash, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 4 +/turf/simulated/floor/plating, +/area/ministation/disused) +"Yq" = ( +/turf/simulated/wall{ + can_open = 1 }, -/obj/structure/closet/radiation, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/turf/simulated/floor/tiled, +/area/ministation/maint/ne) +"Yt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "port_engineering_vent" + }, +/turf/simulated/floor/plating, /area/ministation/engine) "Yv" = ( /obj/structure/cable{ @@ -16706,7 +17827,16 @@ dir = 4 }, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) +"YA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) "YB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 @@ -16723,6 +17853,25 @@ }, /turf/simulated/floor/tiled, /area/ministation/eva) +"YG" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + req_access = list("ACCESS_EXTERNAL"); + locked = 1; + id_tag = "sat3_airlock_interior" + }, +/obj/machinery/button/access/interior{ + id_tag = "sat3_airlock"; + name = "interior access button"; + pixel_x = 10; + pixel_y = 20 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ministation/ai_sat) "YH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ @@ -16745,16 +17894,7 @@ pixel_y = -32 }, /turf/simulated/floor/tiled, -/area/ministation/court) -"YL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 5 - }, -/turf/simulated/floor/tiled/techfloor, -/area/ministation/engine) +/area/ministation/disused_office) "YM" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -16773,7 +17913,7 @@ dir = 1 }, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "YQ" = ( /obj/structure/closet/lawcloset, /obj/machinery/light{ @@ -16800,6 +17940,9 @@ /obj/machinery/camera/network/ministation/sat, /turf/simulated/floor/plating, /area/ministation/ai_sat) +"YW" = ( +/turf/simulated/wall, +/area/ministation/disused) "YY" = ( /obj/structure/closet/wardrobe/lawyer_black, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -16816,17 +17959,47 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/s) +"Za" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ministation/engine) +"Zb" = ( +/obj/effect/wallframe_spawn/reinforced, +/turf/space, +/area/ministation/hall/w) +"Ze" = ( +/obj/machinery/door/airlock/external{ + locked = 1; + id_tag = "atmos_airlock_exterior"; + autoset_access = 0 + }, +/obj/machinery/button/access/interior{ + id_tag = "atmos_airlock"; + name = "exterior access button"; + pixel_x = -20; + pixel_y = -10; + command = "cycle_exterior" + }, +/turf/simulated/floor, +/area/ministation/atmospherics) "Zf" = ( /obj/effect/decal/cleanable/filth, /turf/simulated/floor/plating, /area/ministation/maint/w) -"Zi" = ( -/obj/machinery/door/airlock/hatch/maintenance{ - name = "Engine Access" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/techfloor/grid, +"Zh" = ( +/obj/machinery/network/relay, +/turf/simulated/floor/tiled, /area/ministation/engine) +"Zj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) "Zk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -16844,7 +18017,7 @@ dir = 5 }, /turf/simulated/floor/tiled, -/area/ministation/court) +/area/ministation/disused_office) "Zm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -16854,12 +18027,46 @@ }, /turf/simulated/floor/tiled, /area/ministation/hop) +"Zo" = ( +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + dir = 0; + id_tag = "pqm_airlock"; + pixel_y = 24; + tag_airpump = "pqm_vent"; + tag_chamber_sensor = "pqm_sensor"; + tag_exterior_door = "pqm_airlock_exterior"; + tag_interior_door = "pqm_airlock_interior" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "pqm_vent" + }, +/obj/machinery/airlock_sensor{ + id_tag = "pqm_sensor"; + pixel_y = 20 + }, +/turf/simulated/floor/plating, +/area/ministation/maint/sw) "Zr" = ( /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/simulated/floor/plating, /area/ministation/maint/ne) +"Zs" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/turf/simulated/floor/plating, +/area/ministation/disused) "Zt" = ( /obj/structure/bed/chair/wood/walnut{ dir = 4 @@ -16898,6 +18105,10 @@ }, /turf/simulated/floor/plating, /area/ministation/maint/se) +"ZA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "ZB" = ( /obj/structure/closet, /obj/random/maintenance, @@ -16940,7 +18151,7 @@ /area/ministation/cryo) "ZK" = ( /obj/machinery/computer/cryopod{ - dir = 2 + pixel_y = 32 }, /obj/machinery/alarm{ dir = 8; @@ -16951,6 +18162,12 @@ }, /turf/simulated/floor/tiled/dark, /area/ministation/cryo) +"ZL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ministation/cargo) "ZN" = ( /obj/effect/floor_decal/corner/red{ dir = 5 @@ -16962,6 +18179,12 @@ }, /turf/simulated/floor/tiled, /area/ministation/hall/n) +"ZO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor, +/area/ministation/atmospherics) "ZP" = ( /obj/effect/wallframe_spawn/no_grille, /turf/simulated/floor/plating, @@ -17000,19 +18223,13 @@ /obj/item/paper_bin, /obj/item/pen, /turf/simulated/floor/carpet/green, -/area/ministation/court) +/area/ministation/disused_office) "ZW" = ( /obj/machinery/light/small{ dir = 4 }, /turf/simulated/floor/wood/mahogany, /area/ministation/library) -"ZY" = ( -/obj/structure/cryofeed{ - dir = 4 - }, -/turf/simulated/floor/shuttle/blue, -/area/ministation/arrival_shuttle) "ZZ" = ( /obj/structure/table/woodentable_reinforced/walnut, /obj/item/bell, @@ -18088,71 +19305,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -18298,13 +19450,10 @@ aa aa aa aa -NO aa aa aa aa -"} -(6,1,1) = {" aa aa aa @@ -18345,71 +19494,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -18431,10 +19515,13 @@ aa aa aa aa +NO aa aa aa aa +"} +(6,1,1) = {" aa aa aa @@ -18560,8 +19647,6 @@ aa aa aa aa -"} -(7,1,1) = {" aa aa aa @@ -18602,71 +19687,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -18757,6 +19777,8 @@ aa aa aa aa +"} +(7,1,1) = {" aa aa aa @@ -18817,8 +19839,6 @@ aa aa aa aa -"} -(8,1,1) = {" aa aa aa @@ -18859,71 +19879,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -19074,13 +20029,13 @@ aa aa aa aa -"} -(9,1,1) = {" aa aa aa aa aa +"} +(8,1,1) = {" aa aa aa @@ -19116,71 +20071,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -19331,8 +20221,6 @@ aa aa aa aa -"} -(10,1,1) = {" aa aa aa @@ -19373,71 +20261,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -19468,6 +20291,8 @@ aa aa aa aa +"} +(9,1,1) = {" aa aa aa @@ -19588,8 +20413,6 @@ aa aa aa aa -"} -(11,1,1) = {" aa aa aa @@ -19630,71 +20453,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -19790,6 +20548,8 @@ aa aa aa aa +"} +(10,1,1) = {" aa aa aa @@ -19845,8 +20605,6 @@ aa aa aa aa -"} -(12,1,1) = {" aa aa aa @@ -19887,71 +20645,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -20102,8 +20795,6 @@ aa aa aa aa -"} -(13,1,1) = {" aa aa aa @@ -20114,6 +20805,8 @@ aa aa aa aa +"} +(11,1,1) = {" aa aa aa @@ -20144,71 +20837,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -20359,8 +20987,6 @@ aa aa aa aa -"} -(14,1,1) = {" aa aa aa @@ -20401,71 +21027,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -20501,6 +21062,8 @@ aa aa aa aa +"} +(12,1,1) = {" aa aa aa @@ -20616,8 +21179,6 @@ aa aa aa aa -"} -(15,1,1) = {" aa aa aa @@ -20658,71 +21219,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -20823,6 +21319,8 @@ aa aa aa aa +"} +(13,1,1) = {" aa aa aa @@ -20873,8 +21371,6 @@ aa aa aa aa -"} -(16,1,1) = {" aa aa aa @@ -20915,71 +21411,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -21130,8 +21561,6 @@ aa aa aa aa -"} -(17,1,1) = {" aa aa aa @@ -21147,6 +21576,8 @@ aa aa aa aa +"} +(14,1,1) = {" aa aa aa @@ -21172,71 +21603,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -21387,8 +21753,6 @@ aa aa aa aa -"} -(18,1,1) = {" aa aa aa @@ -21429,71 +21793,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -21534,6 +21833,8 @@ aa aa aa aa +"} +(15,1,1) = {" aa aa aa @@ -21644,8 +21945,6 @@ aa aa aa aa -"} -(19,1,1) = {" aa aa aa @@ -21686,71 +21985,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -21856,6 +22090,8 @@ aa aa aa aa +"} +(16,1,1) = {" aa aa aa @@ -21901,8 +22137,6 @@ aa aa aa aa -"} -(20,1,1) = {" aa aa aa @@ -21943,71 +22177,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -22158,8 +22327,6 @@ aa aa aa aa -"} -(21,1,1) = {" aa aa aa @@ -22180,6 +22347,8 @@ aa aa aa aa +"} +(17,1,1) = {" aa aa aa @@ -22200,71 +22369,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -22415,8 +22519,6 @@ aa aa aa aa -"} -(22,1,1) = {" aa aa aa @@ -22457,71 +22559,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -22567,6 +22604,8 @@ aa aa aa aa +"} +(18,1,1) = {" aa aa aa @@ -22672,8 +22711,6 @@ aa aa aa aa -"} -(23,1,1) = {" aa aa aa @@ -22714,71 +22751,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -22889,6 +22861,8 @@ aa aa aa aa +"} +(19,1,1) = {" aa aa aa @@ -22929,8 +22903,6 @@ aa aa aa aa -"} -(24,1,1) = {" aa aa aa @@ -22947,6 +22919,7 @@ aa aa aa aa +af aa aa aa @@ -22971,71 +22944,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -23186,8 +23094,6 @@ aa aa aa aa -"} -(25,1,1) = {" aa aa aa @@ -23212,6 +23118,8 @@ aa aa aa aa +"} +(20,1,1) = {" aa aa aa @@ -23228,71 +23136,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -23443,8 +23286,6 @@ aa aa aa aa -"} -(26,1,1) = {" aa aa aa @@ -23485,71 +23326,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -23599,6 +23375,8 @@ aa aa aa aa +"} +(21,1,1) = {" aa aa aa @@ -23700,8 +23478,6 @@ aa aa aa aa -"} -(27,1,1) = {" aa aa aa @@ -23742,71 +23518,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -23921,6 +23632,8 @@ aa aa aa aa +"} +(22,1,1) = {" aa aa aa @@ -23957,8 +23670,6 @@ aa aa aa aa -"} -(28,1,1) = {" aa aa aa @@ -23999,71 +23710,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -24214,8 +23860,6 @@ aa aa aa aa -"} -(29,1,1) = {" aa aa aa @@ -24245,6 +23889,8 @@ aa aa aa aa +"} +(23,1,1) = {" aa aa aa @@ -24256,71 +23902,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -24471,8 +24052,6 @@ aa aa aa aa -"} -(30,1,1) = {" aa aa aa @@ -24513,71 +24092,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -24632,6 +24146,8 @@ aa aa aa aa +"} +(24,1,1) = {" aa aa aa @@ -24728,8 +24244,6 @@ aa aa aa aa -"} -(31,1,1) = {" aa aa aa @@ -24770,71 +24284,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -24954,6 +24403,8 @@ aa aa aa aa +"} +(25,1,1) = {" aa aa aa @@ -24985,8 +24436,6 @@ aa aa aa aa -"} -(32,1,1) = {" aa aa aa @@ -25027,71 +24476,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -25242,8 +24626,6 @@ aa aa aa aa -"} -(33,1,1) = {" aa aa aa @@ -25278,77 +24660,14 @@ aa aa aa aa +"} +(26,1,1) = {" aa aa aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -25499,8 +24818,6 @@ aa aa aa aa -"} -(34,1,1) = {" aa aa aa @@ -25541,71 +24858,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -25665,6 +24917,8 @@ aa aa aa aa +"} +(27,1,1) = {" aa aa aa @@ -25756,8 +25010,6 @@ aa aa aa aa -"} -(35,1,1) = {" aa aa aa @@ -25798,71 +25050,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -25987,6 +25174,8 @@ aa aa aa aa +"} +(28,1,1) = {" aa aa aa @@ -26013,8 +25202,6 @@ aa aa aa aa -"} -(36,1,1) = {" aa aa aa @@ -26055,71 +25242,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -26270,8 +25392,6 @@ aa aa aa aa -"} -(37,1,1) = {" aa aa aa @@ -26311,72 +25431,9 @@ aa aa aa aa +"} +(29,1,1) = {" aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -26527,8 +25584,6 @@ aa aa aa aa -"} -(38,1,1) = {" aa aa aa @@ -26569,71 +25624,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -26698,6 +25688,8 @@ aa aa aa aa +"} +(30,1,1) = {" aa aa aa @@ -26784,8 +25776,6 @@ aa aa aa aa -"} -(39,1,1) = {" aa aa aa @@ -26826,71 +25816,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -27020,6 +25945,8 @@ aa aa aa aa +"} +(31,1,1) = {" aa aa aa @@ -27041,8 +25968,6 @@ aa aa aa aa -"} -(40,1,1) = {" aa aa aa @@ -27083,71 +26008,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -27298,8 +26158,6 @@ aa aa aa aa -"} -(41,1,1) = {" aa aa aa @@ -27340,75 +26198,12 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa aa +"} +(32,1,1) = {" aa aa aa @@ -27555,8 +26350,6 @@ aa aa aa aa -"} -(42,1,1) = {" aa aa aa @@ -27597,71 +26390,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -27731,6 +26459,8 @@ aa aa aa aa +"} +(33,1,1) = {" aa aa aa @@ -27812,8 +26542,6 @@ aa aa aa aa -"} -(43,1,1) = {" aa aa aa @@ -27854,71 +26582,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -28053,6 +26716,8 @@ aa aa aa aa +"} +(34,1,1) = {" aa aa aa @@ -28069,8 +26734,6 @@ aa aa aa aa -"} -(44,1,1) = {" aa aa aa @@ -28111,71 +26774,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -28326,8 +26924,6 @@ aa aa aa aa -"} -(45,1,1) = {" aa aa aa @@ -28368,71 +26964,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -28442,6 +26973,8 @@ aa aa aa aa +"} +(35,1,1) = {" aa aa aa @@ -28504,6 +27037,8 @@ aa aa aa aa +af +af aa aa aa @@ -28583,8 +27118,6 @@ aa aa aa aa -"} -(46,1,1) = {" aa aa aa @@ -28625,71 +27158,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -28762,6 +27230,8 @@ aa aa aa aa +"} +(36,1,1) = {" aa aa aa @@ -28822,6 +27292,11 @@ aa aa aa aa +af +af +af +af +af aa aa aa @@ -28840,8 +27315,6 @@ aa aa aa aa -"} -(47,1,1) = {" aa aa aa @@ -28882,71 +27355,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -29079,6 +27487,8 @@ aa aa aa aa +"} +(37,1,1) = {" aa aa aa @@ -29097,8 +27507,6 @@ aa aa aa aa -"} -(48,1,1) = {" aa aa aa @@ -29139,72 +27547,12 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa +af +af +af +af +af aa aa aa @@ -29281,7 +27629,6 @@ aa aa aa aa -ab aa aa aa @@ -29354,8 +27701,6 @@ aa aa aa aa -"} -(49,1,1) = {" aa aa aa @@ -29396,74 +27741,11 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wj -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa +"} +(38,1,1) = {" aa aa aa @@ -29523,6 +27805,12 @@ aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -29611,8 +27899,6 @@ aa aa aa aa -"} -(50,1,1) = {" aa aa aa @@ -29653,71 +27939,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -29780,6 +28001,8 @@ aa aa aa aa +"} +(39,1,1) = {" aa aa aa @@ -29832,11 +28055,19 @@ aa aa aa aa +af +af aa aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -29868,8 +28099,6 @@ aa aa aa aa -"} -(51,1,1) = {" aa aa aa @@ -29910,71 +28139,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -30094,6 +28258,8 @@ aa aa aa aa +"} +(40,1,1) = {" aa aa aa @@ -30125,8 +28291,6 @@ aa aa aa aa -"} -(52,1,1) = {" aa aa aa @@ -30148,12 +28312,18 @@ aa aa aa aa +af +af aa aa aa aa aa aa +af +af +af +af aa aa aa @@ -30167,71 +28337,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -30382,13 +28487,6 @@ aa aa aa aa -"} -(53,1,1) = {" -aa -aa -aa -aa -aa aa aa aa @@ -30417,6 +28515,8 @@ aa aa aa aa +"} +(41,1,1) = {" aa aa aa @@ -30424,71 +28524,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -30545,11 +28580,15 @@ aa aa aa aa +af aa aa aa aa aa +af +af +af aa aa aa @@ -30639,8 +28678,6 @@ aa aa aa aa -"} -(54,1,1) = {" aa aa aa @@ -30681,71 +28718,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -30800,6 +28772,8 @@ aa aa aa aa +"} +(42,1,1) = {" aa aa aa @@ -30869,6 +28843,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -30896,8 +28873,6 @@ aa aa aa aa -"} -(55,1,1) = {" aa aa aa @@ -30938,71 +28913,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -31119,6 +29029,8 @@ aa aa aa aa +"} +(43,1,1) = {" aa aa aa @@ -31153,8 +29065,6 @@ aa aa aa aa -"} -(56,1,1) = {" aa aa aa @@ -31177,6 +29087,8 @@ aa aa aa aa +af +af aa aa aa @@ -31188,6 +29100,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -31195,71 +29110,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -31410,8 +29260,6 @@ aa aa aa aa -"} -(57,1,1) = {" aa aa aa @@ -31438,6 +29286,8 @@ aa aa aa aa +"} +(44,1,1) = {" aa aa aa @@ -31452,71 +29302,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -31559,6 +29344,8 @@ aa aa aa aa +af +af aa aa aa @@ -31569,6 +29356,10 @@ aa aa aa aa +af +af +af +af aa aa aa @@ -31667,8 +29458,6 @@ aa aa aa aa -"} -(58,1,1) = {" aa aa aa @@ -31709,71 +29498,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -31819,6 +29543,8 @@ aa aa aa aa +"} +(45,1,1) = {" aa aa aa @@ -31870,6 +29596,8 @@ aa aa aa aa +af +af aa aa aa @@ -31885,6 +29613,10 @@ aa aa aa aa +af +af +af +af aa aa aa @@ -31924,8 +29656,6 @@ aa aa aa aa -"} -(59,1,1) = {" aa aa aa @@ -31966,71 +29696,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -32135,6 +29800,8 @@ aa aa aa aa +"} +(46,1,1) = {" aa aa aa @@ -32181,18 +29848,21 @@ aa aa aa aa -"} -(60,1,1) = {" aa aa aa aa +af +af +af +af aa aa aa aa aa aa +af aa aa aa @@ -32200,6 +29870,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -32223,71 +29896,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -32438,8 +30046,6 @@ aa aa aa aa -"} -(61,1,1) = {" aa aa aa @@ -32451,6 +30057,8 @@ aa aa aa aa +"} +(47,1,1) = {" aa aa aa @@ -32480,71 +30088,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -32566,12 +30109,17 @@ aa aa aa aa +af +af +af aa aa aa aa aa aa +af +af aa aa aa @@ -32585,6 +30133,8 @@ aa aa aa aa +af +af aa aa aa @@ -32695,8 +30245,6 @@ aa aa aa aa -"} -(62,1,1) = {" aa aa aa @@ -32737,71 +30285,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -32831,6 +30314,8 @@ aa aa aa aa +"} +(48,1,1) = {" aa aa aa @@ -32882,12 +30367,18 @@ aa aa aa aa +af +af aa aa aa aa aa aa +af +af +af +af aa aa aa @@ -32899,6 +30390,8 @@ aa aa aa aa +af +af aa aa aa @@ -32952,8 +30445,6 @@ aa aa aa aa -"} -(63,1,1) = {" aa aa aa @@ -32994,71 +30485,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -33072,6 +30498,7 @@ aa aa aa aa +ab aa aa aa @@ -33144,6 +30571,8 @@ aa aa aa aa +"} +(49,1,1) = {" aa aa aa @@ -33198,20 +30627,33 @@ aa aa aa aa +af +af +af aa +af +af +af +af +af aa aa aa aa +af +af aa aa aa aa +af +af +af +af aa aa -"} -(64,1,1) = {" aa +ab aa aa aa @@ -33251,71 +30693,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -33451,6 +30828,8 @@ aa aa aa aa +"} +(50,1,1) = {" aa aa aa @@ -33466,8 +30845,6 @@ aa aa aa aa -"} -(65,1,1) = {" aa aa aa @@ -33507,76 +30884,29 @@ aa aa aa aa +af +af +af aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp +af +af +af +af +af aa aa +af +af +af +af +af aa aa +af +af +af +af +af aa aa aa @@ -33723,8 +31053,6 @@ aa aa aa aa -"} -(66,1,1) = {" aa aa aa @@ -33757,6 +31085,8 @@ aa aa aa aa +"} +(51,1,1) = {" aa aa aa @@ -33765,71 +31095,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -33876,15 +31141,36 @@ aa aa aa aa +af +af +af aa +af +af +af +af +af aa +af +af +af +af +af +af aa aa aa +af +af +af +af aa aa aa aa +af +af +af aa aa aa @@ -33980,8 +31266,6 @@ aa aa aa aa -"} -(67,1,1) = {" aa aa aa @@ -34022,71 +31306,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -34123,6 +31342,8 @@ aa aa aa aa +"} +(52,1,1) = {" aa aa aa @@ -34181,13 +31402,33 @@ aa aa aa aa +af +af +af +af aa aa +af +af +af +af +af +af aa aa aa +af +af +af +af aa aa +af +af +af +af +af +af aa aa aa @@ -34237,8 +31478,6 @@ aa aa aa aa -"} -(68,1,1) = {" aa aa aa @@ -34279,71 +31518,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -34425,6 +31599,8 @@ aa aa aa aa +"} +(53,1,1) = {" aa aa aa @@ -34484,18 +31660,32 @@ aa aa aa aa +af +af +af aa aa aa +af +af +af +af aa aa aa aa +af +af +af aa aa aa -"} -(69,1,1) = {" +af +af +af +af +af +af aa aa aa @@ -34536,71 +31726,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -34731,6 +31856,8 @@ aa aa aa aa +"} +(54,1,1) = {" aa aa aa @@ -34751,8 +31878,6 @@ aa aa aa aa -"} -(70,1,1) = {" aa aa aa @@ -34792,84 +31917,32 @@ aa aa aa aa +af aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wj -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa aa +af +af +af +af aa aa aa aa aa +af +af aa aa aa +af +af +af +af +af +af aa aa aa @@ -34877,6 +31950,7 @@ aa aa aa aa +af aa aa aa @@ -35008,8 +32082,6 @@ aa aa aa aa -"} -(71,1,1) = {" aa aa aa @@ -35041,6 +32113,8 @@ aa aa aa aa +"} +(55,1,1) = {" aa aa aa @@ -35050,71 +32124,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wj -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -35172,6 +32181,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -35183,6 +32195,11 @@ aa aa aa aa +af +af +af +af +af aa aa aa @@ -35265,8 +32282,6 @@ aa aa aa aa -"} -(72,1,1) = {" aa aa aa @@ -35307,71 +32322,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -35402,7 +32352,6 @@ aa aa aa aa -ab aa aa aa @@ -35421,6 +32370,8 @@ aa aa aa aa +"} +(56,1,1) = {" aa aa aa @@ -35482,6 +32433,7 @@ aa aa aa aa +af aa aa aa @@ -35501,6 +32453,8 @@ aa aa aa aa +af +af aa aa aa @@ -35522,8 +32476,6 @@ aa aa aa aa -"} -(73,1,1) = {" aa aa aa @@ -35564,71 +32516,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -35740,6 +32627,8 @@ aa aa aa aa +"} +(57,1,1) = {" aa aa aa @@ -35779,8 +32668,6 @@ aa aa aa aa -"} -(74,1,1) = {" aa aa aa @@ -35801,6 +32688,12 @@ aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -35820,72 +32713,6 @@ aa aa aa aa -af -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -36036,8 +32863,6 @@ aa aa aa aa -"} -(75,1,1) = {" aa aa aa @@ -36059,6 +32884,8 @@ aa aa aa aa +"} +(58,1,1) = {" aa aa aa @@ -36077,72 +32904,6 @@ aa aa aa aa -af -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -36184,6 +32945,12 @@ aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -36193,6 +32960,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -36293,8 +33063,6 @@ aa aa aa aa -"} -(76,1,1) = {" aa aa aa @@ -36335,71 +33103,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -36438,6 +33141,8 @@ aa aa aa aa +"} +(59,1,1) = {" aa aa aa @@ -36497,12 +33202,24 @@ aa aa aa aa +af +af +af +af +af +af aa aa aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -36519,6 +33236,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -36550,8 +33270,6 @@ aa aa aa aa -"} -(77,1,1) = {" aa aa aa @@ -36592,71 +33310,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -36745,6 +33398,8 @@ aa aa aa aa +"} +(60,1,1) = {" aa aa aa @@ -36804,15 +33459,25 @@ aa aa aa aa +af +af +af +af aa aa aa -"} -(78,1,1) = {" aa aa aa aa +af +af +af +af +af +af +af +af aa aa aa @@ -36828,6 +33493,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -36849,71 +33517,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -37052,6 +33655,8 @@ aa aa aa aa +"} +(61,1,1) = {" aa aa aa @@ -37064,8 +33669,6 @@ aa aa aa aa -"} -(79,1,1) = {" aa aa aa @@ -37106,71 +33709,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -37179,6 +33717,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -37186,17 +33727,32 @@ aa aa aa aa +af +af +af +af +af +af +af +af +af aa aa aa aa aa +af +af +af aa aa aa aa aa aa +af +af +af aa aa aa @@ -37226,7 +33782,6 @@ aa aa aa aa -ab aa aa aa @@ -37321,8 +33876,6 @@ aa aa aa aa -"} -(80,1,1) = {" aa aa aa @@ -37359,75 +33912,12 @@ aa aa aa aa +"} +(62,1,1) = {" aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -37494,15 +33984,32 @@ aa aa aa aa +af +af +af +af +af +af +af +af +af aa aa aa +af aa +af +af +af +af aa aa aa aa aa +af +af +af aa aa aa @@ -37578,8 +34085,6 @@ aa aa aa aa -"} -(81,1,1) = {" aa aa aa @@ -37620,71 +34125,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -37729,6 +34169,8 @@ aa aa aa aa +"} +(63,1,1) = {" aa aa aa @@ -37799,9 +34241,24 @@ aa aa aa aa +af +af +af +af +af +af +af +af +af aa aa aa +af +af +af +af +af +af aa aa aa @@ -37835,8 +34292,6 @@ aa aa aa aa -"} -(82,1,1) = {" aa aa aa @@ -37877,71 +34332,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -38036,6 +34426,8 @@ aa aa aa aa +"} +(64,1,1) = {" aa aa aa @@ -38092,8 +34484,6 @@ aa aa aa aa -"} -(83,1,1) = {" aa aa aa @@ -38109,10 +34499,22 @@ aa aa aa aa +af +af +af +af +af +af +af aa aa aa aa +af +af +af +af +af aa aa aa @@ -38134,71 +34536,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -38346,11 +34683,11 @@ aa aa aa aa +"} +(65,1,1) = {" aa aa aa -"} -(84,1,1) = {" aa aa aa @@ -38391,71 +34728,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -38484,9 +34756,22 @@ aa aa aa aa +af +af +af +af +af +af +af aa aa aa +af +af +af +af +af +af aa aa aa @@ -38606,8 +34891,6 @@ aa aa aa aa -"} -(85,1,1) = {" aa aa aa @@ -38648,71 +34931,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -38722,6 +34940,8 @@ aa aa aa aa +"} +(66,1,1) = {" aa aa aa @@ -38780,6 +35000,8 @@ aa aa aa aa +af +af aa aa aa @@ -38794,10 +35016,19 @@ aa aa aa aa +af +af +af aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -38813,6 +35044,7 @@ aa aa aa aa +af aa aa aa @@ -38825,6 +35057,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -38863,8 +35098,6 @@ aa aa aa aa -"} -(86,1,1) = {" aa aa aa @@ -38905,71 +35138,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -39029,6 +35197,8 @@ aa aa aa aa +"} +(67,1,1) = {" aa aa aa @@ -39086,8 +35256,16 @@ aa aa aa aa +af +af +af +af aa aa +af +af +af +af aa aa aa @@ -39103,10 +35281,16 @@ aa aa aa aa +af +af +af +af aa aa aa aa +af +af aa aa aa @@ -39120,8 +35304,6 @@ aa aa aa aa -"} -(87,1,1) = {" aa aa aa @@ -39132,6 +35314,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -39162,71 +35347,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -39334,6 +35454,8 @@ aa aa aa aa +"} +(68,1,1) = {" aa aa aa @@ -39377,8 +35499,6 @@ aa aa aa aa -"} -(88,1,1) = {" aa aa aa @@ -39393,8 +35513,16 @@ aa aa aa aa +af +af +af +af aa aa +af +af +af +af aa aa aa @@ -39412,78 +35540,17 @@ aa aa aa aa +af aa aa aa aa +af +af +af aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -39504,6 +35571,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -39634,8 +35704,6 @@ aa aa aa aa -"} -(89,1,1) = {" aa aa aa @@ -39643,6 +35711,8 @@ aa aa aa aa +"} +(69,1,1) = {" aa aa aa @@ -39676,71 +35746,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -39765,8 +35770,17 @@ aa aa aa aa +af +af +af +af aa aa +af +af +af +af +af aa aa aa @@ -39775,6 +35789,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -39783,6 +35800,12 @@ aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -39891,8 +35914,6 @@ aa aa aa aa -"} -(90,1,1) = {" aa aa aa @@ -39933,71 +35954,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -40012,6 +35968,8 @@ aa aa aa aa +"} +(70,1,1) = {" aa aa aa @@ -40066,16 +36024,31 @@ aa aa aa aa +af +af aa +af +af +af +af aa aa +af +af +af +af aa aa aa aa +ab aa aa aa +af +af +af +af aa aa aa @@ -40084,6 +36057,12 @@ aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -40148,8 +36127,6 @@ aa aa aa aa -"} -(91,1,1) = {" aa aa aa @@ -40190,71 +36167,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -40313,24 +36225,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ad -ad -aa +"} +(71,1,1) = {" aa aa aa @@ -40383,6 +36279,14 @@ aa aa aa aa +af +af +af +af +af +af +af +af aa aa aa @@ -40399,20 +36303,26 @@ aa aa aa aa +af +af +af aa aa aa aa aa aa -"} -(92,1,1) = {" -aa -aa aa aa +af +af +af +af +af +af aa aa +ab aa aa aa @@ -40447,71 +36357,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -40581,22 +36426,6 @@ aa aa aa aa -ad -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -Ht -ad aa aa aa @@ -40653,6 +36482,8 @@ aa aa aa aa +"} +(72,1,1) = {" aa aa aa @@ -40662,8 +36493,6 @@ aa aa aa aa -"} -(93,1,1) = {" aa aa aa @@ -40704,74 +36533,17 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wj -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa +af +af +af +af +af +af +af +af aa aa aa @@ -40782,11 +36554,15 @@ aa aa aa aa +af aa aa aa aa aa +af +af +af aa aa aa @@ -40795,6 +36571,9 @@ aa aa aa aa +af +af +af aa aa aa @@ -40838,22 +36617,10 @@ aa aa aa aa -Ht -Tx -Gp -Tx -Gp -Tx -Gp -Tx -TA -Gp aa -Tx -Gp aa +ab aa -Ht aa aa aa @@ -40919,8 +36686,6 @@ aa aa aa aa -"} -(94,1,1) = {" aa aa aa @@ -40961,71 +36726,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -41039,6 +36739,8 @@ aa aa aa aa +"} +(73,1,1) = {" aa aa aa @@ -41090,37 +36792,33 @@ aa aa aa aa +af +af +af +af +af +af +af +af aa aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -Tx -Gq -PG -OG -Gp -Ht aa aa aa aa aa +af +af +af aa aa aa aa aa +af aa aa aa @@ -41176,8 +36874,6 @@ aa aa aa aa -"} -(95,1,1) = {" aa aa aa @@ -41218,71 +36914,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -41330,11 +36961,6 @@ aa aa aa aa -yi -yk -yk -yk -yi aa aa aa @@ -41352,26 +36978,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht -aa -aa -aa -aa aa aa aa @@ -41390,6 +36996,8 @@ aa aa aa aa +"} +(74,1,1) = {" aa aa aa @@ -41429,12 +37037,11 @@ aa aa aa aa +af aa aa aa aa -"} -(96,1,1) = {" aa aa aa @@ -41442,6 +37049,14 @@ aa aa aa aa +af +af +af +af +af +af +af +af aa aa aa @@ -41451,6 +37066,11 @@ aa aa aa aa +af +af +af +af +af aa aa aa @@ -41459,6 +37079,8 @@ aa aa aa aa +af +af aa aa aa @@ -41475,73 +37097,11 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa +af +af +af aa aa aa @@ -41587,11 +37147,6 @@ aa aa aa aa -yk -kX -zR -zl -yk aa aa aa @@ -41609,22 +37164,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -Tx -Gq -PG -OG -Gp -Ht aa aa aa @@ -41690,8 +37229,6 @@ aa aa aa aa -"} -(97,1,1) = {" aa aa aa @@ -41716,6 +37253,8 @@ aa aa aa aa +"} +(75,1,1) = {" aa aa aa @@ -41732,71 +37271,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -41820,6 +37294,7 @@ aa aa aa aa +af aa aa aa @@ -41831,6 +37306,14 @@ aa aa aa aa +af +af +af +af +af +af +af +af aa aa aa @@ -41840,48 +37323,47 @@ aa aa aa aa +af +af +af +af +af aa aa aa aa -yk -zm -yj -zm -yk aa aa aa +af +af +af aa aa aa aa +af +af +af +af +af +af +af aa aa aa aa +af +af +af +af +af +af aa aa aa aa aa -ad -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht aa aa aa @@ -41892,7 +37374,6 @@ aa aa aa aa -ab aa aa aa @@ -41947,8 +37428,6 @@ aa aa aa aa -"} -(98,1,1) = {" aa aa aa @@ -41989,71 +37468,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -42068,30 +37482,6 @@ aa aa aa aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ad -la -mN -la -ad -ad -ad -la -mN -la -mN -la aa aa aa @@ -42100,13 +37490,6 @@ aa aa aa aa -yi -yi -yi -GU -yi -yi -yi aa aa aa @@ -42123,26 +37506,12 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -Tx -Gq -PG -OG -Gp -Ht aa aa aa aa +"} +(76,1,1) = {" aa aa aa @@ -42195,6 +37564,59 @@ aa aa aa aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +af +af +af +af +af +af +af +aa +aa +aa +aa +af +af +af +af +af +af +af aa aa aa @@ -42204,8 +37626,6 @@ aa aa aa aa -"} -(99,1,1) = {" aa aa aa @@ -42246,71 +37666,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -42325,45 +37680,12 @@ aa aa aa aa -ad -ad -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -ac -ad -la -mO -la -ad -ad -ad -la -mO -la -mO -la -ad -ad aa aa aa aa aa aa -yi -yL -Tw -yj -yj -yL -yi aa aa aa @@ -42380,22 +37702,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht aa aa aa @@ -42462,7 +37768,7 @@ aa aa aa "} -(100,1,1) = {" +(77,1,1) = {" aa aa aa @@ -42503,71 +37809,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -42581,47 +37822,9 @@ aa aa aa aa -ad -ad -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -kZ -kZ -la -mP -Sd -kZ -la -kZ -la -mP -Sd -mP -la -ad -kZ -la -la -kZ -kZ -kZ -kZ -yi -OS -zo -zo -zo -yj -yi aa +af +af aa aa aa @@ -42635,38 +37838,43 @@ aa aa aa aa +af +af +af aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -Tx -Gq -PG -OG -Gp -Ht aa aa aa aa aa +af +af +af +af aa aa aa aa +af +af +af +af +af aa aa aa aa aa +af +af +af +af +af +af +af +af +aa aa aa aa @@ -42718,8 +37926,6 @@ aa aa aa aa -"} -(101,1,1) = {" aa aa aa @@ -42760,71 +37966,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -42838,46 +37979,6 @@ aa aa aa aa -ad -ad -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -kZ -lI -mh -mQ -mh -oh -oH -rc -mh -mQ -mh -rW -kZ -ad -kZ -uB -mS -vO -mP -mO -mP -ei -yj -yj -yj -yj -yj -yk aa aa aa @@ -42894,22 +37995,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht aa aa aa @@ -42939,6 +38024,16 @@ aa aa aa aa +"} +(78,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -42975,8 +38070,6 @@ aa aa aa aa -"} -(102,1,1) = {" aa aa aa @@ -43006,10 +38099,42 @@ aa aa aa aa +af +af +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +af +af +af +af +af +aa aa aa aa aa +af +af +af +af +af +af +af +af +af +aa +aa +aa aa aa aa @@ -43017,71 +38142,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -43095,46 +38155,6 @@ aa aa aa aa -ad -ad -Pp -Pp -Pp -Pp -LJ -Pp -Pp -Pp -Pp -Pp -la -lJ -mi -mR -nB -mS -mS -mS -mS -mR -rm -rX -kZ -kZ -kZ -uC -mS -vP -kZ -la -kZ -yi -yM -zo -zo -zo -yj -yi aa aa aa @@ -43151,22 +38171,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -Tx -Gq -PG -OG -Gp -Ht aa aa aa @@ -43232,8 +38236,6 @@ aa aa aa aa -"} -(103,1,1) = {" aa aa aa @@ -43274,76 +38276,13 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa aa aa +"} +(79,1,1) = {" aa aa aa @@ -43351,47 +38290,6 @@ aa aa aa aa -ad -ad -ad -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -la -lJ -mj -mS -mS -mS -mS -mS -mS -nB -rn -mS -mS -te -mS -mS -nB -nB -mS -xf -la -yk -yj -yj -zS -yj -yj -yk aa aa aa @@ -43408,22 +38306,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht aa aa aa @@ -43474,13 +38356,22 @@ aa aa aa aa +af +af aa aa aa aa +af +af +af +af +af aa aa aa +af +af aa aa aa @@ -43489,8 +38380,15 @@ aa aa aa aa -"} -(104,1,1) = {" +af +af +af +af +af +af +af +af +af aa aa aa @@ -43531,71 +38429,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wj -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -43608,47 +38441,22 @@ aa aa aa aa -ad -ad -ad -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -kZ -lK -mj -mS -nB -oi -oI -oI -pY -oI -ro -pY -oI -tf -tW -mS -mS -mS -mS -xf -la -yk -yj -zo -zo -zo -yj -yk +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -43665,22 +38473,6 @@ aa aa aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -Tx -Gq -PG -OG -Gp -Ht aa aa aa @@ -43747,7 +38539,7 @@ aa aa aa "} -(105,1,1) = {" +(80,1,1) = {" aa aa aa @@ -43788,71 +38580,6 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp aa aa aa @@ -43864,54 +38591,18 @@ aa aa aa aa -ad -ad -ad -ad -ad -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -Pp -kZ -lL -mk -nC -nC -oj -nC -nC -nC -nC -rp -nC -ss -tg -tX -nC -vb -mS -mS -kE -la -yk -yj -yj -yj -yj -yj -yk aa aa aa aa aa aa +af +af +af +af +af +af aa aa aa @@ -43919,30 +38610,21 @@ aa aa aa aa -ad aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht +aa +af +af +af aa aa aa aa aa +af +af +af +aa aa aa aa @@ -43957,6 +38639,16 @@ aa aa aa aa +af +af +af +af +af +af +af +aa +aa +aa aa aa aa @@ -44003,8 +38695,6 @@ aa aa aa aa -"} -(106,1,1) = {" aa aa aa @@ -44045,71 +38735,6598 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(81,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(82,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(83,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(84,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(85,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(86,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(87,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(88,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(89,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +yS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(90,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(91,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +jc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(92,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(93,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +af +af +af +af +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(94,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +af +af +af +af +af +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(95,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +af +af +af +af +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(96,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +af +af +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ad +la +PN +kZ +ad +ad +ad +la +PN +kZ +PN +la +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +GQ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(97,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +ac +ad +la +PY +kZ +ad +ad +ad +la +Nu +kZ +Bj +la +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +GJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(98,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +ac +ad +la +Qp +kZ +ad +ad +ad +la +Qp +kZ +Qp +la +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +GJ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(99,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +ac +ad +Zb +Qp +kZ +ad +ad +ad +Zb +Qp +kZ +Qp +Zb +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +FE +FE +FE +Gh +Gh +aa +GH +aa +Gh +Gh +FE +FE +FE +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(100,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +Pp +Pp +Pp +Pp +LJ +Pp +Pp +Pp +Pp +Pp +kZ +kZ +la +OT +Sd +kZ +la +kZ +la +OT +Sd +OT +la +ad +kZ +la +la +kZ +kZ +kZ +kZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +FF +Ga +Ga +Ga +Ga +Gw +Jt +GM +GN +GN +GN +GN +GO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(101,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +kZ +lI +mh +Ry +mh +oh +oH +rc +mh +Ry +mh +rW +kZ +ad +kZ +uB +mS +vO +mP +mO +Uz +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +FG +FG +FG +FG +FG +aa +Jt +aa +FG +FG +FG +FG +FG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(102,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +la +lJ +mi +mR +nB +mS +mS +mS +mS +mR +rm +rX +kZ +kZ +kZ +uC +mS +vP +kZ +kZ +kZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +Jt +aa +aa +aa +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(103,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +Pp +la +MG +Rn +Da +Db +PX +PX +PX +PX +rE +rn +Vs +mS +te +mS +mS +nB +nB +mS +xf +la +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +FE +FE +FE +FE +FE +aa +Jt +aa +FE +FE +FE +FE +FE +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(104,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +au +ie +cy +cy +ie +au +ad +kZ +lK +mj +mS +Sn +oi +oI +oI +pY +oI +ro +MY +oI +tf +tW +mS +mS +mS +mS +xf +la +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +FF +Ga +Ga +Ga +Ga +Gw +Jt +GM +GN +GN +GN +GN +GO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(105,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +au +Rq +cy +cy +Rh +au +ad +kZ +lL +mk +Wo +QZ +oj +nC +nC +nC +nC +rp +TD +ss +tg +tX +kX +vb +mS +mS +kE +la +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +aa +aa +aa +aa +FG +FG +FG +FG +FG +aa +Jt +aa +FG +FG +FG +FG +FG +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(106,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af +af +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -44138,15 +45355,15 @@ au kZ lM mS -mS -mS +Vs +Vs ok oJ ph -nD -nD +ea +ea rq -nD +gA st th tY @@ -44156,13 +45373,13 @@ mS mS xh la -yk -yj -zo -zo -zo -yj -yk +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -44179,22 +45396,22 @@ aa ad aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ +aa +aa +aa +aa ad -GQ -Tx -Gq -PG -OG -Gp -Ht +aa +aa +aa +Jt +aa +aa +aa +ad +aa +aa +aa aa aa aa @@ -44302,71 +45519,71 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af aa aa aa @@ -44386,20 +45603,20 @@ fL gj gL ho -hQ +fB IO -hQ +Vy hQ fq au kZ +Os kZ -kZ -kZ -kZ +Os +Os ol -kZ -kZ +Os +Os kZ qE rr @@ -44411,15 +45628,15 @@ mS mS vQ kZ -la kZ -yi -yR -yj -yj -yj -yj -yi +kZ +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -44436,22 +45653,55 @@ ad ad aa aa -Ht -GQ -GQ -GQ -GQ -GQ -GQ -GQ -ad -GQ -PG -Gp -Tx -OG -Gq -Ht +aa +aa +FE +FE +FE +FE +FE +aa +Jt +aa +FE +FE +FE +FE +FE +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -44484,6 +45734,13 @@ aa aa aa aa +"} +(108,1,1) = {" +aa +aa +aa +aa +aa aa aa aa @@ -44517,8 +45774,6 @@ aa aa aa aa -"} -(108,1,1) = {" aa aa aa @@ -44537,6 +45792,15 @@ aa aa aa aa +af +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -44559,71 +45823,24 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +af +af ad ad ad @@ -44640,19 +45857,19 @@ cl dI fj fM -dI -dI -dI -dI +yO +mI +mI +SO gN -dI -ej -dI +cf +Pe +IH au lb -lN -lN -mq +Ta +qj +XV nE om oK @@ -44669,14 +45886,14 @@ nB vP mP mO -mP -ei -yS -WX -ZY -WX -yS -yk +Uz +aa +aa +aa +aa +aa +aa +aa aa aa ad @@ -44693,22 +45910,22 @@ uK ad aa aa -Ht -GQ -PG -Gq -PG -Gq -PG -Gq -ad -GQ -Tx -Gq -PG -OG -Gp -Ht +aa +aa +FF +Ga +Ga +Ga +Ga +Gw +Jt +GM +GN +GN +GN +GN +GO +aa aa aa aa @@ -44816,71 +46033,71 @@ aa aa aa aa -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp -Wp +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa aa aa aa @@ -44901,18 +46118,18 @@ gk fN Mq hR -fN +Mq iU SR jV au lc -jY -mo +Ts mo +SA Is it -DJ +Sv pj kZ qG @@ -44927,13 +46144,13 @@ Yg kZ kZ kZ -yi -yi -zp -zp -zp -yi -yi +aa +aa +aa +aa +aa +aa +aa ad ad ad @@ -44945,30 +46162,26 @@ ad ad ad uK -zr +Zo uK ad ad aa -Ht -PG -OG -OG -OG -OG -OG -OG -Ra -GQ -PG -Gp -Tx -OG -Gq -Ht aa aa +FG +FG +FG +FG +FG aa +GI +aa +FG +FG +FG +FG +FG aa aa aa @@ -45031,12 +46244,14 @@ aa aa aa aa -"} -(110,1,1) = {" aa aa aa aa +"} +(110,1,1) = {" +aa +aa aa aa aa @@ -45128,6 +46343,8 @@ aa aa aa aa +af +af aa aa aa @@ -45158,16 +46375,16 @@ gl fO Lt hS -fO +fJ iV fF jW au ld -Zf +Qr eq Wt -WH +lP dO oM pk @@ -45184,13 +46401,13 @@ VQ kZ aa ad -yi -yT -yT -yT -yT -yT -yi +aa +aa +aa +aa +aa +aa +aa ad aa aa @@ -45202,12 +46419,12 @@ aa uK uK uK -Du +gU uK ad aa aa -Ht +aa aa aa aa @@ -45215,14 +46432,8 @@ aa aa aa ad -Xz -PG -OG -Gq -PG -OG -Gp -Ht +GJ +ad aa aa aa @@ -45288,14 +46499,14 @@ aa aa aa aa -"} -(111,1,1) = {" aa aa aa aa aa aa +"} +(111,1,1) = {" aa aa aa @@ -45389,6 +46600,12 @@ aa aa aa aa +af +af +aa +aa +aa +aa aa aa aa @@ -45411,21 +46628,21 @@ dI dI fm dI -dI +cf gM Zk hT -dI +NI iW -Zk +Ba jX au YM -iq -mp -mY -nF -PA +QA +Ne +Wg +WH +QJ oN oN oN @@ -45458,8 +46675,8 @@ ad aa uK UK -zr -To +XJ +NW DD ad ad @@ -45467,20 +46684,17 @@ ad ad aa aa -ad -ad +aa +aa aa ad -ST +Gm RJ -ST +Gm ad aa -Tx -NP -Gq -Ht aa +ad aa aa aa @@ -45545,11 +46759,11 @@ aa aa aa aa -"} -(112,1,1) = {" aa aa aa +"} +(112,1,1) = {" aa aa aa @@ -45618,6 +46832,9 @@ aa aa aa aa +af +af +aa aa aa aa @@ -45663,12 +46880,12 @@ cn au cQ cy -dD -dI +mW +SO eF fm ej -ej +Ss dI hp au @@ -45679,10 +46896,10 @@ au au dj lQ -mq -mq -mq -lP +mp +mY +nF +PA oN pl pZ @@ -45728,15 +46945,15 @@ Dt ad ad ad -Eo -BB +Dt +GW Eo ad ad -Oe -NP -Gp -Ht +ad +ad +aa +aa aa aa aa @@ -45872,8 +47089,8 @@ aa aa aa aa -aa -aa +af +af aa aa aa @@ -45922,10 +47139,10 @@ cR cx dG ek -dI +ZA fn -dI -dI +ZA +ZL dI hq au @@ -45937,7 +47154,7 @@ Mx le lR mq -mZ +mq mq Ub oN @@ -45963,8 +47180,8 @@ lZ AD uK Bc -zT -CN +vm +Zj zT zT zT @@ -45972,7 +47189,7 @@ zT RO CN zT -zT +eP Dv DE DT @@ -45986,14 +47203,14 @@ aa ad aa Eo -BB +Yt Eo aa ad -Tx -OG -Gq -Ht +aa +aa +aa +aa aa aa aa @@ -46178,7 +47395,7 @@ au au au dH -dI +cf eF fo fP @@ -46194,8 +47411,8 @@ iX iX iX iX -WZ -mq +mZ +fG lP oN pn @@ -46247,12 +47464,7 @@ GV Eo Eo Dt -PG -OG -Gp -Ht aa -HW aa aa aa @@ -46316,13 +47528,15 @@ aa aa aa aa -"} -(115,1,1) = {" aa aa aa aa aa +"} +(115,1,1) = {" +aa +aa aa aa aa @@ -46401,6 +47615,9 @@ aa aa aa aa +af +af +aa aa aa aa @@ -46435,7 +47652,7 @@ UV cS cA Pl -ej +TP eG fp fQ @@ -46476,7 +47693,7 @@ zU za AF uK -Am +KI bl aG of @@ -46501,16 +47718,11 @@ Dt Gn Gx GX -hy +Gb Hf -PZ -TU -OG -Gq -ad -ad -ad -HW +Dt +aa +aa aa aa aa @@ -46573,13 +47785,16 @@ aa aa aa aa -"} -(116,1,1) = {" aa aa aa aa aa +"} +(116,1,1) = {" +aa +aa +aa aa aa aa @@ -46657,6 +47872,8 @@ aa aa aa aa +af +af aa aa aa @@ -46753,18 +47970,18 @@ Fc Fm FJ Dt -yO Dt -Ml +Dt +Uc Um -UN -NT -Ml +UT +mV +Ft Dt Dt Dt Dt -ad +aa aa aa aa @@ -46972,7 +48189,7 @@ BX pq mq iq -iq +lN mq LI mS @@ -47009,20 +48226,20 @@ EN Fd Fu FK -ln -RC +EZ +EZ Gi -VE -TB -Nl -VX -Jc +Gp +Gy +EZ +EZ +ln Hs -YL +zg HI Dt aa -HW +aa aa aa aa @@ -47269,18 +48486,18 @@ FL Gb Gf Gj +Gq Gz Gz -Bg Ha -Ml -RL +YA +Ht HB HJ Dt aa aa -HW +aa aa aa aa @@ -47454,7 +48671,7 @@ bI ah ad co -SX +Pr co ad aa @@ -47486,7 +48703,7 @@ oR mq mq is -iq +lN mq mS tq @@ -47522,23 +48739,23 @@ En EL Ff Fw -Yt -Aq -gY -Dt -Ad Ad -Ad -HL +Dt +Dt +Dt +Eo +Eo +Eo +Dt Hg -Ml -LO +DC +ex HK Dt aa aa aa -HW +aa aa aa aa @@ -47711,7 +48928,7 @@ ah ah ad co -cC +AN co ad aa @@ -47779,34 +48996,34 @@ DC DC EY DC -HE +Aq Dt ad ad aa aa aa -HL -HL -Gy -Mv -HL +Dt +Dt +DC +QS +Dt Dt aa aa aa aa -Oj -aa -aa -aa -aa -aa -aa -aa -aa +HY +GS +If aa +HY +GS +If aa +HY +GS +If aa aa aa @@ -47920,8 +49137,8 @@ aa aa aa aa -aa -aa +af +af aa aa aa @@ -48037,33 +49254,33 @@ FS DC DC FO -Ad +Eo ad aa aa aa aa ad -HL +Dt Hu -bL -HL -ad +ST +Dt ad ad ad ad -HW -aa -aa -aa -aa -aa -aa -aa aa +HY +GT +If aa +HY +GT +If aa +HY +GT +If aa aa aa @@ -48177,8 +49394,8 @@ aa aa aa aa -aa -aa +af +af aa aa aa @@ -48224,8 +49441,8 @@ bw TH bU aD -cC -cC +dW +NT co co co @@ -48293,7 +49510,7 @@ Ev EQ DC DC -HE +EB Dt aa aa @@ -48301,26 +49518,26 @@ aa aa aa ad -HL -Gy -Mv -HL -aa -aa -aa -aa -aa -HW -aa -aa -aa -aa -aa +Dt +DC +QS +Dt aa aa aa aa aa +HY +GT +If +ad +HY +GT +If +ad +HY +GT +If aa aa aa @@ -48482,11 +49699,11 @@ MV aJ aD XL -cC -cC -cC -cC -dJ +MF +DI +Wc +XD +MN Qu di di @@ -48550,7 +49767,7 @@ av ER yz Fx -HE +EB Dt aa aa @@ -48558,26 +49775,26 @@ aa aa aa aa -Oy +Dt Hv -jN -HL -HL -aa -aa -aa -aa -aa -Ht -aa -aa -aa -aa -aa -aa +MM +Dt +Dt +ad +ad +ad aa +HY +GT +If aa +HY +GT +If aa +HY +GT +If aa aa aa @@ -48815,26 +50032,26 @@ aa aa aa aa +Eo +bk +HE HL -HY -jM -HL -QM -aa -aa -aa -aa -aa -Ht -aa -aa -aa +Eo aa aa aa aa +HY +GT +If aa +HY +GT +If aa +HY +GT +If aa aa aa @@ -49066,31 +50283,31 @@ Fi Fz FQ Gc -Ad +Eo ad aa aa aa aa -HD -Vh -HT -Vh -Oy -aa -aa -aa -aa -aa -aa +Eo +bk +ST +HM +VG +Eo +Dt +Dt aa aa +GH aa aa aa +GH aa aa aa +GH aa aa aa @@ -49315,43 +50532,43 @@ CW Rt Pg Dy -uG +Pg Ef Pg EU Fj FA FR -sE -Ad -aa -aa +DC +Eo +ad +ad aa aa aa -HD +Dt Hw -If -ie +hi +HN HU -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +eK +HW +TT +GR +Gw +Jt +Jt +Jt +Jt +Jt +Jt +Jt +Jt +Jt +GM +GR +GR +JO aa aa aa @@ -49571,8 +50788,8 @@ CE Co ui QG -Yn -QH +XS +ui Eg aV EV @@ -49580,31 +50797,31 @@ Fi FB PK Gd -Ad +Eo aa aa aa aa aa -HD -Vh +Eo +bk HC -Vh -Oy -aa -aa -aa -aa -aa -aa +Gt +Eo +Eo +Eo +Dt aa aa +GI aa aa aa +GI aa aa aa +GI aa aa aa @@ -49770,13 +50987,13 @@ ah ah ah dR -Ib +UI UI UI CY UI ZP -Ib +Rx di eQ di @@ -49829,7 +51046,7 @@ ms ms ms nQ -av +Dt Eh Ex EW @@ -49843,26 +51060,26 @@ aa aa aa aa -HL +Eo Hx -lu -HL -QM -aa -aa -aa -aa -aa -Ht -aa -aa -aa +Gt +HO +Eo aa aa aa aa +HY +He +If aa +HY +He +If aa +HY +He +If aa aa aa @@ -50027,13 +51244,13 @@ cu Mk cV dS -Ib +Rx Qh Od ND Od Xe -Ib +Rx eR fD fV @@ -50100,26 +51317,26 @@ aa aa aa ad -Oy -cI -IM -HL -HL -aa -aa -aa -aa -aa -Ht -aa -aa -aa -aa -aa -aa +Dt +Hv +HD +Dt +Dt +ad +ad +ad aa +HY +He +If aa +HY +He +If aa +HY +He +If aa aa aa @@ -50284,13 +51501,13 @@ cv cJ UL dT -Ib +Rx Zt Od ND Od Od -Ib +Rx eS dm dU @@ -50347,36 +51564,36 @@ av Ei Ey EX -ml -Ni +EB +DC FV -Ad +Eo ad ad ad ad ad ad -HL -Gy -Oa -HL -aa -aa -aa -aa -aa -Ht -aa -aa -aa -aa -aa +Dt +DC +Gt +Dt aa aa aa aa aa +HY +He +If +ad +HY +He +If +ad +HY +He +If aa aa aa @@ -50541,19 +51758,19 @@ cw Qq cW Zr -OD +eC Ir Ir UD Ir Ny -Ib -cY +Rx cY cY cY cY Ut +dr Wi iz ix @@ -50599,7 +51816,7 @@ Sa Wu av bd -PX +DC nz DC DC @@ -50614,26 +51831,26 @@ ad ad aa aa -HL -Gy -Oa -HL -ad +Dt +DC +Gt +Dt ad ad ad ad -Ht -aa -aa -aa -aa -aa -aa -aa aa +HY +He +If aa +HY +He +If aa +HY +He +If aa aa aa @@ -50797,14 +52014,14 @@ ad cw cJ cX -QX -Ib +pp +Rx Sf Pk TF Px Ov -Ib +Rx eT fX VU @@ -50870,27 +52087,27 @@ aa ad aa aa -HL -dM -Zi -Nn -VH +Dt +Dt +DC +Gt +Dt Dt aa aa aa aa -Ht -aa -aa -aa -aa -aa -aa -aa -aa +HY +HT +If aa +HY +HT +If aa +HY +HT +If aa aa aa @@ -51054,14 +52271,14 @@ aa cw cw cw -cJ -Ib +Tc +Rx Ir Ir ND Ir Ir -Ib +Rx eU fH QU @@ -51124,19 +52341,19 @@ FY Dt Dt Dt -Ad -Ad -Ad -HL +Eo +Eo +Eo +Dt Hh -Dd -Nf +En +HC HP Dt aa aa aa -Ht +aa aa aa aa @@ -51311,20 +52528,20 @@ aa aa aa cw -cK -Ib +Tc +Rx IB ZZ PT dn Ir -Ib -cY +Rx cY cY gB cY da +da hZ TV da @@ -51374,9 +52591,9 @@ Dl DK Ek En -Yl -Te -NY +Gt +EB +En FU DC RP @@ -51392,7 +52609,7 @@ HQ Dt aa aa -Ht +aa aa aa aa @@ -51568,8 +52785,8 @@ ad aa aa cw -cJ -Ib +Tc +Rx Nc Ms Vv @@ -51632,23 +52849,23 @@ DL El DC Gt -EB -bJ +Xk +Ve FZ Ge Gg Gl -Gg -Gg -Gg -Gg -Ge +Gs +IZ +GA +GA +Hi Hy HG HR Dt aa -Ht +aa aa aa aa @@ -51825,16 +53042,16 @@ ad ad aa cw -cJ -Ib -Ib -Ib -Ib -Ib -Ib -Ib +Tc +Rx +Rx +Rx +Rx +Rx +Rx +Rx eW -fJ +Fq fZ gC hb @@ -51887,16 +53104,16 @@ Dn Dn DM Ek -FD +DC Gt Fn -Tf +Dt Eo Eo Eo Gm -DC -EY +Gt +Jc En Hb Hj @@ -52082,16 +53299,16 @@ ad aa aa VV -cK -Ib -Ib -Ib +pp +cw +QX +Rx MA YQ dX eB eX -cY +Fq ga gD hc @@ -52147,13 +53364,13 @@ Ek DC Ea Fo -Tf +Dt ad ad ad Dt -MM -En +Ni +As DC Hc Hk @@ -52338,17 +53555,17 @@ bg aa aa aa -ad -aa -aa -aa -Ib +cw +Tc +Yq +QX +Rx Nw dq dY dY eY -cY +Fq dZ dr eZ @@ -52404,13 +53621,13 @@ Ek En Gt Fp -Pe -Uy +Dt +aa ad ad Dt Gu -DC +Za DC Hd Hl @@ -52595,17 +53812,17 @@ aa aa aa aa -aa -ad -aa -aa -Ib +cw +Tc +cw +cw +Rx Nw OP Nw Nw Tq -cY +Fq TJ gE hd @@ -52661,7 +53878,7 @@ Ek DC dQ Fp -XB +Dt aa ad aa @@ -52852,17 +54069,17 @@ aa aa aa aa -aa -aa -aa -aa -Ib +YW +wf +cJ +cJ +Rx Vj YY Po Vd Nw -cY +Fq cY cY cY @@ -52938,7 +54155,7 @@ aa aa aa aa -HW +aa aa aa aa @@ -53106,14 +54323,14 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -Ib +YW +YW +YW +YW +YW +YW +VJ +YW Ib Ib Ib @@ -53194,7 +54411,7 @@ aa aa aa aa -HW +aa aa aa aa @@ -53363,14 +54580,14 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +VD +Ux +Ux +Pu +Te +Ux +Ux +Ux Ib Dc ZV @@ -53437,8 +54654,8 @@ aa ad aa aa -Eo -GW +Dt +XE Eo aa Hp @@ -53450,7 +54667,7 @@ aa aa aa aa -HW +aa ad aa aa @@ -53620,14 +54837,14 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -ad +VD +LU +Ux +VF +Ux +Ux +Ux +Ux Ib IC Io @@ -53671,8 +54888,8 @@ wT Ak AB AP -WC -Bb +WP +NX AC aa ad @@ -53683,7 +54900,7 @@ CM WW av Dt -Dt +OQ Dt Re ED @@ -53706,7 +54923,7 @@ ad aa aa aa -HW +aa aa ad aa @@ -53875,16 +55092,16 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +YW +YW +YW +Ux +Ux +Ux +Ux +VF +Ux +LU Ia IC FN @@ -53939,8 +55156,8 @@ AC Cn Wk XO -aa -aa +Zh +DC Dt Eo BS @@ -54132,16 +55349,16 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +VD +Ux +Ux +Ux +Ux +Ux +VF +VF +Ux +Ux Ia WT WD @@ -54389,23 +55606,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +VD +VF +Ux +LU +Ux +VF +Ux +Ux +Ux +Ux Ib Ib Ib Ib Vl Ib -di +Ib kl JZ JZ @@ -54443,7 +55660,7 @@ zQ ad aa AC -Bb +TW AC aa aa @@ -54452,10 +55669,10 @@ PD RR Xj PC -WB -OX -WB +ZO OX +Tv +Ze WU Mt Vz @@ -54646,19 +55863,19 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -he +VD +Ux +Ux +Ux +Ux +Ux +Ux +Ux +VF +Ux +Ux +Ux +Nv Sz Ic gQ @@ -54700,7 +55917,7 @@ zQ aa aa AC -Bm +Ca AC aa aa @@ -54709,7 +55926,7 @@ PD kS QC Qw -WB +Qb PD PD PD @@ -54903,19 +56120,19 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -he +VD +Ux +Ux +VF +Ux +MC +Yp +Ux +Ux +Ux +Ux +Ux +WS gQ Ic gQ @@ -54964,10 +56181,10 @@ ad ad PD SZ -WB +kH Ty -WB -Xj +MK +km Oh PD Ep @@ -55160,18 +56377,18 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ad +VD +Ux +Ux +Rm +Yh +Zs +NL +Qi +TG +Yh +TG +Yh he Nt Sq @@ -55223,9 +56440,9 @@ PD WB OF UO -WB -WB -WB +Sr +Ml +DH DS Ep EI @@ -55417,15 +56634,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +YW +YW +YW +XF +YW +YW +YW +XF +YW ae ae ae @@ -55674,15 +56891,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +YW +Ux +Ud +Xp +Dj +YW +Ju +RF +DA ae ar dt @@ -55931,15 +57148,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +YW +VF +kG +VS +DA +YW +Ux +Xo +Ux ae aw du @@ -56188,15 +57405,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +YW +YW +YW +Ux +Ux +YW +kG +VF +Ux ae aw dd @@ -56447,13 +57664,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa +YW +VD +VD +YW +YW +VD +VD ae aA dv @@ -57758,9 +58975,9 @@ kv kW lD ae -mI +oD nv -mI +oD oD oz pP @@ -59371,7 +60588,7 @@ aa ad ad Ih -Ik +Bz aS JR Kf @@ -59628,7 +60845,7 @@ ad ad ad Ih -Il +NU aS JR Kg @@ -60142,7 +61359,7 @@ aS aS Ih aS -Im +XT Il Il Jv @@ -60393,13 +61610,13 @@ aa aa ad aS -Ik +lO aS -ID -Il -Il -Il +cK +Vc +Ns Il +RC Il Il Il @@ -60650,15 +61867,15 @@ aa aa ad aS -Il +dL aS ID Il +RC Il -Il -Il -Il -Il +Td +hE +yP Il Il Il @@ -60907,13 +62124,13 @@ aa aa ad aS -Ik +VA aS -IE -Il -Il -Il +ID +Of +Cm Il +RC JF UA Ki @@ -61164,23 +62381,23 @@ aa aa ad aS -Il +gr Iu -Il -Il -Il -Il -Jv +Vc +RW +SI +IE +WZ JG -Jh Kj +Ra JB Ji Im Il Il aS -Ik +OO aS ad aa @@ -61425,7 +62642,7 @@ Il Iv IF IF -IF +eJ Jg Jg JH @@ -61437,7 +62654,7 @@ JB JB Lc aS -Il +Jd aS ad aa @@ -61682,7 +62899,7 @@ Il Iw ID Il -Il +BN Jh Jw JI @@ -61694,7 +62911,7 @@ KJ Jh KF aS -Ik +YG aS ad aa @@ -61939,7 +63156,7 @@ Il Iw ID II -Lc +KE Jh Jx JJ @@ -61951,7 +63168,7 @@ Jx KV KF Il -Il +RC aS ad aa @@ -62208,7 +63425,7 @@ KK KW Ld Il -Il +RC aS ad aa @@ -62465,7 +63682,7 @@ KL KX Ld Im -Il +RC aS ad aa @@ -62721,8 +63938,8 @@ JJ KM Jh Ld -Il -Il +Of +Cm aS ad aa @@ -62978,8 +64195,8 @@ JJ Jx KY KF -Il -Il +SI +RM aS ad aa @@ -63235,7 +64452,7 @@ KC IY Jh KF -Il +BN aS aS ad @@ -63479,7 +64696,7 @@ ad Ih Il Iw -IH +Il BI JN Jh @@ -63491,8 +64708,8 @@ JA Jh KN Jh -KF -Il +lS +Mj aS ad ad diff --git a/maps/ministation/ministation_areas.dm b/maps/ministation/ministation_areas.dm index c965ec4cdc6..b8472417cec 100644 --- a/maps/ministation/ministation_areas.dm +++ b/maps/ministation/ministation_areas.dm @@ -12,30 +12,26 @@ ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg') icon = 'maps/ministation/ministation_areas.dmi' icon_state = "default" - -/area/ministation/arrival_shuttle - name = "Arrivals Shuttle" - requires_power = 0 - icon_state = "light_blue" - sound_env = SMALL_ENCLOSED - base_turf = /turf/space - area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_ION_SHIELDED + holomap_color = HOLOMAP_AREACOLOR_CREW /area/ministation/supply_dock name = "Supply Shuttle Dock" icon_state = "yellow" base_turf = /turf/space + holomap_color = HOLOMAP_AREACOLOR_CARGO /area/ministation/supply name = "Supply Shuttle" icon_state = "shuttle3" req_access = list(access_cargo) requires_power = 0 + holomap_color = HOLOMAP_AREACOLOR_CARGO //Hallways /area/ministation/hall icon_state = "white" area_flags = AREA_FLAG_HALLWAY + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/ministation/hall/w name = "\improper Port Hallway" @@ -56,6 +52,7 @@ turf_initializer = /decl/turf_initializer/maintenance icon_state = "orange" secure = TRUE + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ministation/maint/nw name = "\improper Port Forward Maintenance" @@ -102,6 +99,7 @@ req_access = list(access_cargo) icon_state = "brown" secure = TRUE + holomap_color = HOLOMAP_AREACOLOR_CARGO /area/ministation/bridge name = "\improper Bridge" @@ -121,6 +119,7 @@ secure = TRUE icon_state = "red" area_flags = AREA_FLAG_SECURITY + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/ministation/detective name = "\improper Detective Office" @@ -138,16 +137,26 @@ name = "\improper Library" icon_state = "LIB" +/area/ministation/disused + name = "\improper Disused Section" + icon_state = "pink" + +/area/ministation/disused_office + name = "\improper Disused Office" + icon_state = "dark_blue" + /area/ministation/atmospherics name = "\improper Atmospherics" req_access = list(access_atmospherics) icon_state = "ATMOS" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ministation/science name = "\improper Research & Development Laboratory" req_access = list(access_research) secure = TRUE icon_state = "purple" + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/ministation/eva name = "\improper EVA Storage" @@ -160,6 +169,7 @@ req_access = list(access_medical) icon_state = "light_blue" secure = TRUE + holomap_color = HOLOMAP_AREACOLOR_MEDICAL /area/ministation/cryo name = "\improper Cryogenic Storage" @@ -183,6 +193,7 @@ ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambieng1.ogg') secure = TRUE icon_state = "yellow" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ministation/telecomms name = "\improper Telecommunications Control" @@ -190,6 +201,7 @@ ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/signal.ogg','sound/ambience/sonar.ogg') secure = TRUE icon_state = "light_blue" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING //satellite /area/ministation/ai_sat @@ -208,4 +220,8 @@ name = "\improper AI Upload Control" secure = TRUE req_access = list(access_ai_upload) - icon_state = "light_blue" \ No newline at end of file + icon_state = "light_blue" + +/area/shuttle/escape_shuttle + name = "\improper Emergency Shuttle" + icon_state = "shuttle" diff --git a/maps/ministation/ministation_define.dm b/maps/ministation/ministation_define.dm index b78289a5b1d..7c880356722 100644 --- a/maps/ministation/ministation_define.dm +++ b/maps/ministation/ministation_define.dm @@ -17,11 +17,19 @@ lobby_screens = list('maps/ministation/ministation_lobby.png') - //TEMPORARY NOTE: Evac messages are temporary until its set up properly. Make sure they're changed later. - emergency_shuttle_leaving_dock = "Attention all crew members: the escape shuttle will be arriving shortly, please prepare to board." - emergency_shuttle_called_message = "Attention all crew members: emergency evacuation procedures are now in effect. Please make your way to the port hallway docking area in a calm and orderly manner." - emergency_shuttle_recall_message = "Attention all crew members: emergency evacuation sequence aborted. Return to normal operating conditions." - evac_controller_type = /datum/evacuation_controller/ministation_substitute + shuttle_docked_message = "The public ferry to %dock_name% has docked with the station. It will depart in approximately %ETD%" + shuttle_leaving_dock = "The public ferry has left the station. Estimate %ETA% until the ferry docks at %dock_name%." + shuttle_called_message = "A public ferry to %dock_name% has been scheduled. It will arrive in approximately %ETA%" + shuttle_recall_message = "The scheduled ferry has been cancelled." + + emergency_shuttle_docked_message = "The emergency shuttle has docked with the station. You have approximately %ETD% to board the emergency shuttle." + emergency_shuttle_leaving_dock = "The emergency shuttle has left the station. Estimate %ETA% until the shuttle docks at %dock_name%." + emergency_shuttle_called_message = "An emergency evacuation shuttle has been called. It will arrive in approximately %ETA%." + emergency_shuttle_called_sound = 'sound/AI/shuttlecalled.ogg' + + emergency_shuttle_recall_message = "The emergency shuttle has been recalled." + + evac_controller_type = /datum/evacuation_controller/shuttle pray_reward_type = /obj/item/mollusc/clam @@ -40,10 +48,4 @@ /datum/map/ministation/get_map_info() return "You're aboard the [station_name], an older station once used for unethical scientific research. It has long since been repurposed as deep space communication relay, though only on paper. \ - Onboard activity is at the whims of the [boss_name] who treat the station as a glorafied dogsbody, and sometimes guinea pig." - -/datum/evacuation_controller/ministation_substitute - name = "lazy ministation evac controller" - evac_prep_delay = 6 MINUTES - evac_launch_delay = 1 SECONDS - evac_transit_delay = 1 SECONDS \ No newline at end of file + Onboard activity is at the whims of the [boss_name] who treat the station as a glorified dogsbody, and sometimes guinea pig." diff --git a/maps/ministation/ministation_shuttles.dm b/maps/ministation/ministation_shuttles.dm index 7210c792dd8..e82fc97b319 100644 --- a/maps/ministation/ministation_shuttles.dm +++ b/maps/ministation/ministation_shuttles.dm @@ -1,30 +1,3 @@ -#define ESCAPE_POD(NUMBER) \ -/datum/shuttle/autodock/ferry/escape_pod/pod##NUMBER { \ - shuttle_area = /area/shuttle/escape_pod_##NUMBER; \ - name = "Escape Pod " + #NUMBER; \ - dock_target = "escape_pod_" + #NUMBER; \ - arming_controller = "escape_pod_"+ #NUMBER +"_berth"; \ - waypoint_station = "escape_pod_"+ #NUMBER +"_start"; \ - landmark_transition = "escape_pod_"+ #NUMBER +"_transit"; \ - waypoint_offsite = "escape_pod_"+ #NUMBER +"_out"; \ -} \ -/obj/effect/shuttle_landmark/escape_pod/start/pod##NUMBER { \ - landmark_tag = "escape_pod_"+ #NUMBER +"_start"; \ - docking_controller = "escape_pod_"+ #NUMBER +"_berth"; \ -} \ -/obj/effect/shuttle_landmark/escape_pod/transit/pod##NUMBER { \ - landmark_tag = "escape_pod_"+ #NUMBER +"_transit"; \ -} \ -/obj/effect/shuttle_landmark/escape_pod/out/pod##NUMBER { \ - landmark_tag = "escape_pod_"+ #NUMBER +"_out"; \ -} \ -/area/shuttle/escape_pod_##NUMBER { \ - name = "Escape Pod " + #NUMBER; \ - area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_ION_SHIELDED | AREA_FLAG_IS_NOT_PERSISTENT; \ -} - -ESCAPE_POD(1) - //supply /datum/shuttle/autodock/ferry/supply/cargo name = "Supply" @@ -42,4 +15,25 @@ ESCAPE_POD(1) landmark_tag = "nav_cargo_station" docking_controller = "cargo_bay" base_area = /area/ministation/supply_dock - base_turf = /turf/space \ No newline at end of file + base_turf = /turf/space + +/datum/shuttle/autodock/ferry/emergency/escape_shuttle + name = "Escape Shuttle" + warmup_time = 10 + location = 1 + dock_target = "shuttle1" + shuttle_area = /area/shuttle/escape_shuttle + waypoint_offsite = "nav_escape_shuttle_start" + waypoint_station = "nav_escape_shuttle_station" + landmark_transition = "nav_escape_shuttle_transit" + +/obj/effect/shuttle_landmark/escape_shuttle/start + landmark_tag = "nav_escape_shuttle_start" + //docking_controller = "centcom_escape_dock" + +/obj/effect/shuttle_landmark/escape_shuttle/transit + landmark_tag = "nav_escape_shuttle_transit" + +/obj/effect/shuttle_landmark/escape_shuttle/station + landmark_tag = "nav_escape_shuttle_station" + docking_controller = "station1" diff --git a/maps/ministation/ministation_unit_testing.dm b/maps/ministation/ministation_unit_testing.dm index 3994764cca9..d2242b32d00 100644 --- a/maps/ministation/ministation_unit_testing.dm +++ b/maps/ministation/ministation_unit_testing.dm @@ -3,9 +3,8 @@ apc_test_exempt_areas = list( /area/space = NO_SCRUBBER|NO_VENT|NO_APC, /area/exoplanet = NO_SCRUBBER|NO_VENT|NO_APC, - /area/shuttle/escape_pod_1 = NO_SCRUBBER|NO_VENT|NO_APC, + /area/shuttle/escape_shuttle = NO_SCRUBBER|NO_VENT|NO_APC, /area/ministation/supply = NO_SCRUBBER|NO_VENT|NO_APC, - /area/ministation/arrival_shuttle = NO_SCRUBBER|NO_VENT|NO_APC, /area/ministation/maint = NO_SCRUBBER|NO_VENT, /area/ministation/bridge/vault = NO_SCRUBBER|NO_VENT, /area/ministation/supply_dock = NO_SCRUBBER|NO_VENT|NO_APC, diff --git a/maps/ministation/space.dmm b/maps/ministation/space.dmm index d7b408ed471..852ee767338 100644 --- a/maps/ministation/space.dmm +++ b/maps/ministation/space.dmm @@ -34,35 +34,27 @@ /obj/effect/paint/sun, /turf/simulated/wall/r_titanium, /area/ministation/supply) -"ah" = ( -/obj/effect/shuttle_landmark/escape_pod/transit/pod1, -/turf/space, -/area/space) -"ai" = ( -/obj/effect/shuttle_landmark/escape_pod/out/pod1, -/turf/space, -/area/space) "aj" = ( /obj/effect/paint/silver, /turf/simulated/wall/r_titanium, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ak" = ( /obj/effect/wallframe_spawn/reinforced/titanium, /turf/simulated/floor/shuttle/black, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "al" = ( /obj/machinery/computer/modular/preset/cardslot/command, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "am" = ( /obj/item/boombox, /obj/structure/table/steel_reinforced, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "an" = ( /obj/machinery/computer/shuttle_control/emergency, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ao" = ( /obj/structure/bed/chair/shuttle/black{ icon_state = "shuttle_chair"; @@ -70,48 +62,58 @@ }, /obj/machinery/light, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ap" = ( /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aq" = ( /obj/structure/bed/chair/shuttle/black{ icon_state = "shuttle_chair"; dir = 1 }, /obj/machinery/light, -/obj/machinery/embedded_controller/radio/simple_docking_controller/escape_pod{ - dir = 1; - frequency = 1379; - icon_state = "airlock_control_off"; - id_tag = "escape_pod_1"; - pixel_y = -30; - tag_door = "escape_pod_1_hatch" +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + id_tag = "shuttle1"; + tag_airpump = "shuttle1_vent"; + tag_chamber_sensor = "shuttle1_sensor"; + tag_exterior_door = "shuttle1_airlock_exterior"; + tag_interior_door = "shuttle1_airlock_interior"; + pixel_y = -25; + dir = 1 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ar" = ( /obj/machinery/door/airlock/command{ autoset_access = 0; req_access = list("ACCESS_HEADS") }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "as" = ( /obj/structure/closet/emcloset, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "at" = ( /obj/machinery/door/airlock/external/glass{ autoset_access = 0; - id_tag = "escape_pod_1_hatch"; - name = "Escape Shuttle Airlock" + name = "External Airlock Hatch"; + locked = 1; + id_tag = "shuttle1_airlock_exterior" }, /turf/simulated/floor/shuttle/black, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "au" = ( +/obj/machinery/airlock_sensor{ + id_tag = "shuttle3_sensor"; + pixel_y = -20 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "shuttle1_vent" + }, /turf/simulated/floor/shuttle/black, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "av" = ( /obj/effect/floor_decal/industrial/traffic{ icon_state = "stripe"; @@ -126,7 +128,7 @@ dir = 8 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aw" = ( /obj/effect/floor_decal/industrial/traffic{ icon_state = "stripe"; @@ -137,7 +139,7 @@ dir = 1 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ax" = ( /obj/effect/floor_decal/industrial/traffic{ icon_state = "stripe"; @@ -148,36 +150,37 @@ dir = 1 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ay" = ( /obj/machinery/light{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "az" = ( /obj/effect/floor_decal/industrial/traffic{ icon_state = "stripe"; dir = 4 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aA" = ( /obj/machinery/sleeper/standard, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aB" = ( /obj/structure/table/reinforced, /obj/machinery/sleeper/standard, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aC" = ( /obj/structure/bed/chair/shuttle{ icon_state = "shuttle_chair"; dir = 1 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aD" = ( /obj/effect/floor_decal/industrial/traffic{ icon_state = "stripe"; @@ -188,19 +191,19 @@ dir = 1 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aE" = ( /obj/structure/table/reinforced, /obj/item/storage/firstaid/adv, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aF" = ( /obj/structure/table/reinforced, /obj/item/robot_rack/roller{ pixel_y = 10 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aG" = ( /obj/effect/floor_decal/industrial/traffic, /obj/structure/bed/chair/shuttle{ @@ -212,7 +215,7 @@ dir = 8 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aH" = ( /obj/effect/floor_decal/industrial/traffic, /obj/structure/bed/chair/shuttle{ @@ -220,7 +223,7 @@ dir = 1 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aI" = ( /obj/effect/floor_decal/industrial/traffic{ icon_state = "stripe"; @@ -230,53 +233,53 @@ icon_state = "shuttle_chair"; dir = 1 }, -/obj/effect/shuttle_landmark/escape_pod/start/pod1, +/obj/effect/shuttle_landmark/escape_shuttle/start, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aJ" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aK" = ( /obj/machinery/status_display{ pixel_y = -30 }, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aL" = ( /obj/machinery/door/airlock, /turf/simulated/floor/shuttle/blue, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aM" = ( /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aN" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aO" = ( /obj/machinery/light{ dir = 1 }, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aP" = ( /obj/machinery/computer/modular/preset/security{ icon_state = "computer"; dir = 4 }, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aQ" = ( /obj/structure/window/reinforced{ dir = 1 }, /turf/simulated/floor/shuttle/red, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aR" = ( /obj/structure/window/reinforced{ dir = 1 @@ -286,42 +289,42 @@ req_access = list("ACCESS_BRIG") }, /turf/simulated/floor/shuttle/red, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aS" = ( /obj/machinery/oxygen_pump{ pixel_x = -30 }, /turf/simulated/floor/shuttle/red, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aT" = ( /obj/structure/window/reinforced{ dir = 4 }, /turf/simulated/floor/shuttle/red, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aU" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aV" = ( /obj/machinery/light, /obj/structure/table/reinforced, /obj/machinery/recharger, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aW" = ( /obj/structure/closet/toolcloset, /obj/item/screwdriver, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aX" = ( /obj/structure/closet/crate/freezer/rations, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aY" = ( /obj/machinery/recharge_station, /turf/simulated/floor/shuttle/yellow, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "aZ" = ( /obj/structure/shuttle/engine/heater, /obj/structure/window/borosilicate_reinforced{ @@ -329,11 +332,55 @@ dir = 1 }, /turf/simulated/floor/shuttle/black, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) "ba" = ( /obj/structure/shuttle/engine/propulsion, /turf/space, -/area/shuttle/escape_pod_1) +/area/shuttle/escape_shuttle) +"bm" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock, +/turf/simulated/floor/shuttle/yellow, +/area/shuttle/escape_shuttle) +"fy" = ( +/obj/machinery/door/airlock/external/glass{ + autoset_access = 0; + name = "External Airlock Hatch"; + locked = 1; + id_tag = "shuttle1_airlock_interior" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/shuttle/black, +/area/shuttle/escape_shuttle) +"hM" = ( +/obj/machinery/airlock_sensor{ + id_tag = "shuttle2_sensor"; + pixel_y = -20 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "shuttle1_vent" + }, +/turf/simulated/floor/shuttle/black, +/area/shuttle/escape_shuttle) +"lo" = ( +/turf/space/transit/north, +/area/space) +"qu" = ( +/obj/machinery/airlock_sensor{ + id_tag = "shuttle1_sensor"; + pixel_y = -20 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "shuttle1_vent" + }, +/turf/simulated/floor/shuttle/black, +/area/shuttle/escape_shuttle) "tC" = ( /turf/simulated/shuttle/wall, /area/space) @@ -341,10 +388,23 @@ /obj/structure/window/borosilicate_reinforced, /turf/simulated/floor/bluegrid, /area/ministation/supply) +"AH" = ( +/obj/effect/paint/silver, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/wall/r_titanium, +/area/shuttle/escape_shuttle) +"EW" = ( +/obj/effect/step_trigger/teleporter/random, +/turf/space, +/area/space) +"FN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/shuttle/blue, +/area/shuttle/escape_shuttle) "Kt" = ( /obj/structure/window/borosilicate_reinforced, /obj/structure/showcase{ - desc = "It's actually a possum inside the box piloting the shuttle but don't tell anyone."; + desc = "It's actually a yinglet inside the box piloting the shuttle but don't tell anyone."; icon_state = "message_server_o_off"; name = "auto-pilot system" }, @@ -367,68 +427,98 @@ }, /turf/simulated/floor/shuttle/yellow, /area/ministation/supply) +"MW" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/simulated/floor/shuttle/blue, +/area/shuttle/escape_shuttle) +"Qd" = ( +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/turf/simulated/floor/shuttle/yellow, +/area/shuttle/escape_shuttle) +"QS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/shuttle/blue, +/area/shuttle/escape_shuttle) +"Ub" = ( +/obj/effect/shuttle_landmark/escape_shuttle/transit, +/turf/space/transit/north, +/area/space) +"UO" = ( +/obj/effect/step_trigger/teleporter/random, +/turf/space/transit/north, +/area/space) +"YY" = ( +/obj/abstract/level_data/admin_level, +/turf/space, +/area/space) (1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO aa aa aa @@ -499,6 +589,66 @@ aa aa "} (2,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -567,6 +717,68 @@ aa aa aa aa +"} +(3,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -627,28 +839,76 @@ aa aa aa aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa aa aa aa aa aa +YY aa aa +"} +(4,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -717,6 +977,68 @@ aa aa aa aa +"} +(5,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -757,8 +1079,6 @@ aa aa aa aa -"} -(4,1,1) = {" aa aa aa @@ -787,6 +1107,68 @@ aa aa aa aa +"} +(6,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -841,11 +1223,82 @@ aa aa aa aa +tC +tC +tC +tC +tC +tC +tC +tC +tC aa aa aa aa aa +"} +(7,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -887,8 +1340,6 @@ aa aa aa aa -"} -(5,1,1) = {" aa aa aa @@ -901,10 +1352,83 @@ aa aa aa aa +tC +ab +ab +ab +ab +ab +ab +ab +ab +ab +tC aa aa aa aa +"} +(8,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -957,10 +1481,84 @@ aa aa aa aa +tC +ab +ab +ac +ac +ac +ac +ac +ac +ab +ab +tC aa aa aa aa +"} +(9,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -1013,18 +1611,84 @@ aa aa aa aa +tC +ab +AD +ac +ac +ac +ac +ac +ac +af +ag +tC aa aa aa aa "} -(6,1,1) = {" -aa -aa -aa -aa -aa -aa +(10,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -1077,10 +1741,84 @@ aa aa aa aa +tC +ab +Kt +ac +ac +ad +ac +ac +ac +af +ag +tC aa aa aa aa +"} +(11,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -1134,3347 +1872,83 @@ aa aa aa tC -tC -tC -tC -tC -tC -tC -tC +ab +AD +ac +ac +ac +ac +ac +ac +af +ag tC aa aa aa aa -aa "} -(7,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -ab -ab -ab -ab -ab -ab -ab -ab -tC -aa -aa -aa -aa -"} -(8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -ab -ac -ac -ac -ac -ac -ac -ab -ab -tC -aa -aa -aa -aa -"} -(9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -AD -ac -ac -ac -ac -ac -ac -af -ag -tC -aa -aa -aa -aa -"} -(10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -Kt -ac -ac -ad -ac -ac -ac -af -ag -tC -aa -aa -aa -aa -"} -(11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -AD -ac -ac -ac -ac -ac -ac -af -ag -tC -aa -aa -aa -aa -"} -(12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -ab -ac -ac -ac -Mu -KH -ac -ab -ab -tC -aa -aa -aa -aa -"} -(13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -ab -ab -ab -ae -ab -ab -ae -ab -ab -tC -aa -aa -aa -aa -"} -(14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -tC -tC -tC -tC -tC -tC -tC -tC -tC -aa -aa -aa -aa -aa -"} -(15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(12,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4527,12 +2001,84 @@ aa aa aa aa -"} -(33,1,1) = {" +tC +ab +ab +ac +ac +ac +Mu +KH +ac +ab +ab +tC aa aa aa aa +"} +(13,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4586,10 +2132,83 @@ aa aa aa aa +tC +ab +ab +ab +ae +ab +ab +ae +ab +ab +tC aa aa aa aa +"} +(14,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4644,11 +2263,82 @@ aa aa aa aa +tC +tC +tC +tC +tC +tC +tC +tC +tC aa aa aa aa aa +"} +(15,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4657,8 +2347,6 @@ aa aa aa aa -"} -(34,1,1) = {" aa aa aa @@ -4719,6 +2407,68 @@ aa aa aa aa +"} +(16,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4788,7 +2538,67 @@ aa aa aa "} -(35,1,1) = {" +(17,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4857,6 +2667,68 @@ aa aa aa aa +"} +(18,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4917,8 +2789,6 @@ aa aa aa aa -"} -(36,1,1) = {" aa aa aa @@ -4927,6 +2797,68 @@ aa aa aa aa +"} +(19,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -4995,6 +2927,68 @@ aa aa aa aa +"} +(20,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5047,8 +3041,6 @@ aa aa aa aa -"} -(37,1,1) = {" aa aa aa @@ -5065,6 +3057,68 @@ aa aa aa aa +"} +(21,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5133,6 +3187,68 @@ aa aa aa aa +"} +(22,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5177,8 +3293,6 @@ aa aa aa aa -"} -(38,1,1) = {" aa aa aa @@ -5203,6 +3317,68 @@ aa aa aa aa +"} +(23,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5271,6 +3447,68 @@ aa aa aa aa +"} +(24,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5307,8 +3545,6 @@ aa aa aa aa -"} -(39,1,1) = {" aa aa aa @@ -5341,6 +3577,68 @@ aa aa aa aa +"} +(25,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5409,6 +3707,68 @@ aa aa aa aa +"} +(26,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +Ub +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5437,8 +3797,6 @@ aa aa aa aa -"} -(40,1,1) = {" aa aa aa @@ -5479,6 +3837,68 @@ aa aa aa aa +"} +(27,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5547,6 +3967,68 @@ aa aa aa aa +"} +(28,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5567,8 +4049,6 @@ aa aa aa aa -"} -(41,1,1) = {" aa aa aa @@ -5617,6 +4097,68 @@ aa aa aa aa +"} +(29,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5685,6 +4227,68 @@ aa aa aa aa +"} +(30,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5697,8 +4301,6 @@ aa aa aa aa -"} -(42,1,1) = {" aa aa aa @@ -5755,6 +4357,68 @@ aa aa aa aa +"} +(31,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5823,12 +4487,72 @@ aa aa aa aa +"} +(32,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa aa -"} -(43,1,1) = {" aa aa aa @@ -5893,6 +4617,68 @@ aa aa aa aa +"} +(33,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -5957,12 +4743,72 @@ aa aa aa aa -"} -(44,1,1) = {" aa aa aa aa +"} +(34,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6031,6 +4877,68 @@ aa aa aa aa +"} +(35,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6087,8 +4995,6 @@ aa aa aa aa -"} -(45,1,1) = {" aa aa aa @@ -6101,6 +5007,68 @@ aa aa aa aa +"} +(36,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6169,6 +5137,68 @@ aa aa aa aa +"} +(37,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6217,8 +5247,6 @@ aa aa aa aa -"} -(46,1,1) = {" aa aa aa @@ -6239,6 +5267,68 @@ aa aa aa aa +"} +(38,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6307,6 +5397,68 @@ aa aa aa aa +"} +(39,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6347,8 +5499,6 @@ aa aa aa aa -"} -(47,1,1) = {" aa aa aa @@ -6377,6 +5527,68 @@ aa aa aa aa +"} +(40,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6445,6 +5657,68 @@ aa aa aa aa +"} +(41,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6477,8 +5751,6 @@ aa aa aa aa -"} -(48,1,1) = {" aa aa aa @@ -6515,6 +5787,68 @@ aa aa aa aa +"} +(42,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6583,6 +5917,68 @@ aa aa aa aa +"} +(43,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6607,8 +6003,6 @@ aa aa aa aa -"} -(49,1,1) = {" aa aa aa @@ -6653,6 +6047,68 @@ aa aa aa aa +"} +(44,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6721,6 +6177,68 @@ aa aa aa aa +"} +(45,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6737,8 +6255,6 @@ aa aa aa aa -"} -(50,1,1) = {" aa aa aa @@ -6791,6 +6307,68 @@ aa aa aa aa +"} +(46,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6859,6 +6437,68 @@ aa aa aa aa +"} +(47,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6867,8 +6507,6 @@ aa aa aa aa -"} -(51,1,1) = {" aa aa aa @@ -6929,6 +6567,68 @@ aa aa aa aa +"} +(48,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -6998,10 +6698,67 @@ aa aa aa "} -(52,1,1) = {" -aa -aa -aa +(49,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -7070,6 +6827,68 @@ aa aa aa aa +"} +(50,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -7127,8 +6946,6 @@ aa aa aa aa -"} -(53,1,1) = {" aa aa aa @@ -7140,6 +6957,68 @@ aa aa aa aa +"} +(51,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -7208,6 +7087,68 @@ aa aa aa aa +"} +(52,1,1) = {" +UO +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +lo +UO aa aa aa @@ -7257,8 +7198,6 @@ aa aa aa aa -"} -(54,1,1) = {" aa aa aa @@ -7278,6 +7217,68 @@ aa aa aa aa +"} +(53,1,1) = {" +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO +UO aa aa aa @@ -7346,6 +7347,9 @@ aa aa aa aa +"} +(54,1,1) = {" +EW aa aa aa @@ -7387,8 +7391,6 @@ aa aa aa aa -"} -(55,1,1) = {" aa aa aa @@ -7406,6 +7408,7 @@ aa aa aa aa +EW aa aa aa @@ -7474,6 +7477,9 @@ aa aa aa aa +"} +(55,1,1) = {" +EW aa aa aa @@ -7517,8 +7523,6 @@ aa aa aa aa -"} -(56,1,1) = {" aa aa aa @@ -7534,6 +7538,7 @@ aa aa aa aa +EW aa aa aa @@ -7602,6 +7607,9 @@ aa aa aa aa +"} +(56,1,1) = {" +EW aa aa aa @@ -7647,8 +7655,6 @@ aa aa aa aa -"} -(57,1,1) = {" aa aa aa @@ -7662,6 +7668,7 @@ aa aa aa aa +EW aa aa aa @@ -7722,9 +7729,6 @@ aa aa aa aa -aj -aj -aj aa aa aa @@ -7733,6 +7737,9 @@ aa aa aa aa +"} +(57,1,1) = {" +EW aa aa aa @@ -7777,8 +7784,6 @@ aa aa aa aa -"} -(58,1,1) = {" aa aa aa @@ -7793,6 +7798,7 @@ aa aa aa aa +EW aa aa aa @@ -7840,21 +7846,6 @@ aa aa aa aa -aj -aj -aj -ak -ak -ak -aj -aj -aj -aj -aj -ak -aj -aj -aj aa aa aa @@ -7876,6 +7867,9 @@ aa aa aa aa +"} +(58,1,1) = {" +EW aa aa aa @@ -7907,8 +7901,6 @@ aa aa aa aa -"} -(59,1,1) = {" aa aa aa @@ -7936,6 +7928,7 @@ aa aa aa aa +EW aa aa aa @@ -7969,22 +7962,6 @@ aa aa aa aa -aj -aj -ap -av -ap -aC -ap -aG -ap -aL -aM -aP -aQ -aS -aZ -ba aa aa aa @@ -8020,6 +7997,9 @@ aa aa aa aa +"} +(59,1,1) = {" +EW aa aa aa @@ -8037,8 +8017,6 @@ aa aa aa aa -"} -(60,1,1) = {" aa aa aa @@ -8080,6 +8058,7 @@ aa aa aa aa +EW aa aa aa @@ -8096,25 +8075,6 @@ aa aa aa aa -aj -ak -ak -aj -as -ap -aw -ap -aC -ap -aH -ap -aj -aM -aM -aR -aT -aZ -ba aa aa aa @@ -8168,7 +8128,8 @@ aa aa aa "} -(61,1,1) = {" +(60,1,1) = {" +EW aa aa aa @@ -8226,26 +8187,8 @@ aa aa aa aa -ak -al -ao -aj -as -ap -aw -ap -aC -ap -aH -aJ -aj -aN -aM -aM -aU -aZ -ba aa +EW aa aa aa @@ -8297,8 +8240,6 @@ aa aa aa aa -"} -(62,1,1) = {" aa aa aa @@ -8316,6 +8257,9 @@ aa aa aa aa +"} +(61,1,1) = {" +EW aa aa aa @@ -8356,24 +8300,6 @@ aa aa aa aa -ak -am -ap -ar -ap -ap -ax -az -aD -az -aI -aK -aj -aO -aM -aM -aV -aj aa aa aa @@ -8392,6 +8318,7 @@ aa aa aa aa +EW aa aa aa @@ -8427,8 +8354,6 @@ aa aa aa aa -"} -(63,1,1) = {" aa aa aa @@ -8462,6 +8387,9 @@ aa aa aa aa +"} +(62,1,1) = {" +EW aa aa aa @@ -8486,25 +8414,6 @@ aa aa aa aa -ak -an -aq -aj -ap -ap -ay -ap -ap -ap -ay -ap -aj -aM -aM -aM -aW -aZ -ba aa aa aa @@ -8539,6 +8448,7 @@ aa aa aa aa +EW aa aa aa @@ -8557,8 +8467,6 @@ aa aa aa aa -"} -(64,1,1) = {" aa aa aa @@ -8609,6 +8517,9 @@ aa aa aa aa +"} +(63,1,1) = {" +EW aa aa aa @@ -8616,25 +8527,6 @@ aa aa aa aa -aj -ak -ak -aj -aj -at -aj -aA -ap -aE -aj -at -aj -at -aj -aM -aX -aZ -ba aa aa aa @@ -8686,9 +8578,8 @@ aa aa aa aa +EW aa -"} -(65,1,1) = {" aa aa aa @@ -8749,22 +8640,6 @@ aa aa aa aa -aj -aj -au -aj -aB -ap -aF -aj -au -aj -au -aj -aM -aY -aZ -ba aa aa aa @@ -8772,6 +8647,9 @@ aa aa aa aa +"} +(64,1,1) = {" +EW aa aa aa @@ -8817,8 +8695,6 @@ aa aa aa aa -"} -(66,1,1) = {" aa aa aa @@ -8832,6 +8708,7 @@ aa aa aa aa +EW aa aa aa @@ -8880,21 +8757,6 @@ aa aa aa aa -aj -at -aj -ak -ak -ak -aj -at -aj -at -aj -ak -aj -aj -aj aa aa aa @@ -8915,6 +8777,9 @@ aa aa aa aa +"} +(65,1,1) = {" +EW aa aa aa @@ -8947,8 +8812,6 @@ aa aa aa aa -"} -(67,1,1) = {" aa aa aa @@ -8975,6 +8838,7 @@ aa aa aa aa +EW aa aa aa @@ -9022,9 +8886,6 @@ aa aa aa aa -aj -aj -aj aa aa aa @@ -9046,6 +8907,9 @@ aa aa aa aa +"} +(66,1,1) = {" +EW aa aa aa @@ -9077,8 +8941,6 @@ aa aa aa aa -"} -(68,1,1) = {" aa aa aa @@ -9106,6 +8968,7 @@ aa aa aa aa +EW aa aa aa @@ -9174,6 +9037,9 @@ aa aa aa aa +"} +(67,1,1) = {" +EW aa aa aa @@ -9207,8 +9073,6 @@ aa aa aa aa -"} -(69,1,1) = {" aa aa aa @@ -9234,6 +9098,7 @@ aa aa aa aa +EW aa aa aa @@ -9302,6 +9167,9 @@ aa aa aa aa +"} +(68,1,1) = {" +EW aa aa aa @@ -9337,8 +9205,6 @@ aa aa aa aa -"} -(70,1,1) = {" aa aa aa @@ -9362,6 +9228,7 @@ aa aa aa aa +EW aa aa aa @@ -9430,6 +9297,9 @@ aa aa aa aa +"} +(69,1,1) = {" +EW aa aa aa @@ -9467,8 +9337,6 @@ aa aa aa aa -"} -(71,1,1) = {" aa aa aa @@ -9490,6 +9358,7 @@ aa aa aa aa +EW aa aa aa @@ -9558,6 +9427,9 @@ aa aa aa aa +"} +(70,1,1) = {" +EW aa aa aa @@ -9597,8 +9469,6 @@ aa aa aa aa -"} -(72,1,1) = {" aa aa aa @@ -9618,6 +9488,7 @@ aa aa aa aa +EW aa aa aa @@ -9686,6 +9557,9 @@ aa aa aa aa +"} +(71,1,1) = {" +EW aa aa aa @@ -9727,8 +9601,6 @@ aa aa aa aa -"} -(73,1,1) = {" aa aa aa @@ -9746,6 +9618,7 @@ aa aa aa aa +EW aa aa aa @@ -9814,6 +9687,9 @@ aa aa aa aa +"} +(72,1,1) = {" +EW aa aa aa @@ -9857,8 +9733,6 @@ aa aa aa aa -"} -(74,1,1) = {" aa aa aa @@ -9874,6 +9748,7 @@ aa aa aa aa +EW aa aa aa @@ -9942,6 +9817,9 @@ aa aa aa aa +"} +(73,1,1) = {" +EW aa aa aa @@ -9987,8 +9865,6 @@ aa aa aa aa -"} -(75,1,1) = {" aa aa aa @@ -10002,6 +9878,7 @@ aa aa aa aa +EW aa aa aa @@ -10070,6 +9947,9 @@ aa aa aa aa +"} +(74,1,1) = {" +EW aa aa aa @@ -10117,8 +9997,6 @@ aa aa aa aa -"} -(76,1,1) = {" aa aa aa @@ -10130,6 +10008,7 @@ aa aa aa aa +EW aa aa aa @@ -10198,6 +10077,9 @@ aa aa aa aa +"} +(75,1,1) = {" +EW aa aa aa @@ -10247,8 +10129,6 @@ aa aa aa aa -"} -(77,1,1) = {" aa aa aa @@ -10258,6 +10138,7 @@ aa aa aa aa +EW aa aa aa @@ -10326,6 +10207,9 @@ aa aa aa aa +"} +(76,1,1) = {" +EW aa aa aa @@ -10377,8 +10261,6 @@ aa aa aa aa -"} -(78,1,1) = {" aa aa aa @@ -10386,6 +10268,7 @@ aa aa aa aa +EW aa aa aa @@ -10454,6 +10337,9 @@ aa aa aa aa +"} +(77,1,1) = {" +EW aa aa aa @@ -10507,13 +10393,12 @@ aa aa aa aa -"} -(79,1,1) = {" aa aa aa aa aa +EW aa aa aa @@ -10582,6 +10467,9 @@ aa aa aa aa +"} +(78,1,1) = {" +EW aa aa aa @@ -10637,11 +10525,10 @@ aa aa aa aa -"} -(80,1,1) = {" aa aa aa +EW aa aa aa @@ -10710,6 +10597,9 @@ aa aa aa aa +"} +(79,1,1) = {" +EW aa aa aa @@ -10767,9 +10657,8 @@ aa aa aa aa -"} -(81,1,1) = {" aa +EW aa aa aa @@ -10838,6 +10727,9 @@ aa aa aa aa +"} +(80,1,1) = {" +EW aa aa aa @@ -10896,9 +10788,8 @@ aa aa aa aa +EW aa -"} -(82,1,1) = {" aa aa aa @@ -10966,6 +10857,9 @@ aa aa aa aa +"} +(81,1,1) = {" +EW aa aa aa @@ -11024,11 +10918,10 @@ aa aa aa aa +EW aa aa aa -"} -(83,1,1) = {" aa aa aa @@ -11094,6 +10987,9 @@ aa aa aa aa +"} +(82,1,1) = {" +EW aa aa aa @@ -11152,13 +11048,12 @@ aa aa aa aa +EW aa aa aa aa aa -"} -(84,1,1) = {" aa aa aa @@ -11222,6 +11117,9 @@ aa aa aa aa +"} +(83,1,1) = {" +EW aa aa aa @@ -11280,6 +11178,7 @@ aa aa aa aa +EW aa aa aa @@ -11287,8 +11186,6 @@ aa aa aa aa -"} -(85,1,1) = {" aa aa aa @@ -11350,6 +11247,9 @@ aa aa aa aa +"} +(84,1,1) = {" +EW aa aa aa @@ -11408,6 +11308,7 @@ aa aa aa aa +EW aa aa aa @@ -11417,8 +11318,6 @@ aa aa aa aa -"} -(86,1,1) = {" aa aa aa @@ -11478,6 +11377,9 @@ aa aa aa aa +"} +(85,1,1) = {" +EW aa aa aa @@ -11536,6 +11438,7 @@ aa aa aa aa +EW aa aa aa @@ -11547,8 +11450,6 @@ aa aa aa aa -"} -(87,1,1) = {" aa aa aa @@ -11606,6 +11507,9 @@ aa aa aa aa +"} +(86,1,1) = {" +EW aa aa aa @@ -11641,6 +11545,10 @@ aa aa aa aa +aj +aj +aj +aa aa aa aa @@ -11660,6 +11568,7 @@ aa aa aa aa +EW aa aa aa @@ -11677,8 +11586,6 @@ aa aa aa aa -"} -(88,1,1) = {" aa aa aa @@ -11730,6 +11637,11 @@ aa aa aa aa +"} +(87,1,1) = {" +EW +aa +aa aa aa aa @@ -11751,6 +11663,24 @@ aa aa aa aa +aj +aj +aj +ak +ak +ak +aj +aj +aj +aj +aj +ak +aj +aj +aj +aa +aa +aa aa aa aa @@ -11768,6 +11698,7 @@ aa aa aa aa +EW aa aa aa @@ -11807,8 +11738,6 @@ aa aa aa aa -"} -(89,1,1) = {" aa aa aa @@ -11838,6 +11767,11 @@ aa aa aa aa +"} +(88,1,1) = {" +EW +aa +aa aa aa aa @@ -11858,6 +11792,22 @@ aa aa aa aa +aj +aj +ap +av +ap +aC +ap +aG +ap +aL +aM +aP +aQ +aS +aZ +ba aa aa aa @@ -11878,6 +11828,7 @@ aa aa aa aa +EW aa aa aa @@ -11937,8 +11888,6 @@ aa aa aa aa -"} -(90,1,1) = {" aa aa aa @@ -11948,6 +11897,9 @@ aa aa aa aa +"} +(89,1,1) = {" +EW aa aa aa @@ -11967,6 +11919,25 @@ aa aa aa aa +aj +ak +ak +aj +as +ap +aw +ap +aC +ap +aH +ap +aj +aM +aM +aR +aT +aZ +ba aa aa aa @@ -11987,6 +11958,7 @@ aa aa aa aa +EW aa aa aa @@ -12055,6 +12027,9 @@ aa aa aa aa +"} +(90,1,1) = {" +EW aa aa aa @@ -12067,8 +12042,6 @@ aa aa aa aa -"} -(91,1,1) = {" aa aa aa @@ -12076,6 +12049,25 @@ aa aa aa aa +ak +al +ao +aj +as +ap +aw +ap +aC +ap +aH +aJ +aj +aN +aM +aM +aU +aZ +ba aa aa aa @@ -12096,13 +12088,13 @@ aa aa aa aa +EW aa aa aa aa aa aa -ah aa aa aa @@ -12165,6 +12157,9 @@ aa aa aa aa +"} +(91,1,1) = {" +EW aa aa aa @@ -12184,6 +12179,24 @@ aa aa aa aa +ak +am +ap +ar +ap +ap +ax +az +aD +az +aI +aK +aj +aO +aM +aM +aV +aj aa aa aa @@ -12197,8 +12210,6 @@ aa aa aa aa -"} -(92,1,1) = {" aa aa aa @@ -12207,6 +12218,7 @@ aa aa aa aa +EW aa aa aa @@ -12275,6 +12287,9 @@ aa aa aa aa +"} +(92,1,1) = {" +EW aa aa aa @@ -12294,6 +12309,25 @@ aa aa aa aa +ak +an +aq +aj +ap +QS +ay +FN +FN +FN +ay +MW +AH +Qd +bm +aM +aW +aZ +ba aa aa aa @@ -12314,6 +12348,7 @@ aa aa aa aa +EW aa aa aa @@ -12327,8 +12362,6 @@ aa aa aa aa -"} -(93,1,1) = {" aa aa aa @@ -12384,6 +12417,9 @@ aa aa aa aa +"} +(93,1,1) = {" +EW aa aa aa @@ -12403,6 +12439,25 @@ aa aa aa aa +aj +ak +ak +aj +aj +fy +aj +aA +ap +aE +aj +fy +aj +fy +aj +aM +aX +aZ +ba aa aa aa @@ -12423,6 +12478,7 @@ aa aa aa aa +EW aa aa aa @@ -12457,8 +12513,6 @@ aa aa aa aa -"} -(94,1,1) = {" aa aa aa @@ -12493,6 +12547,9 @@ aa aa aa aa +"} +(94,1,1) = {" +EW aa aa aa @@ -12515,6 +12572,22 @@ aa aa aa aa +aj +aj +qu +aj +aB +ap +aF +aj +hM +aj +au +aj +aM +aY +aZ +ba aa aa aa @@ -12535,6 +12608,7 @@ aa aa aa aa +EW aa aa aa @@ -12559,7 +12633,6 @@ aa aa aa aa -ai aa aa aa @@ -12587,8 +12660,6 @@ aa aa aa aa -"} -(95,1,1) = {" aa aa aa @@ -12606,6 +12677,9 @@ aa aa aa aa +"} +(95,1,1) = {" +EW aa aa aa @@ -12629,6 +12703,21 @@ aa aa aa aa +aj +at +aj +ak +ak +ak +aj +at +aj +at +aj +ak +aj +aj +aj aa aa aa @@ -12649,6 +12738,7 @@ aa aa aa aa +EW aa aa aa @@ -12719,6 +12809,7 @@ aa aa "} (96,1,1) = {" +EW aa aa aa @@ -12754,6 +12845,9 @@ aa aa aa aa +aj +aj +aj aa aa aa @@ -12774,11 +12868,7 @@ aa aa aa aa -aa -aa -aa -aa -aa +EW aa aa aa @@ -12849,6 +12939,7 @@ aa aa "} (97,1,1) = {" +EW aa aa aa @@ -12907,8 +12998,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -12979,6 +13069,7 @@ aa aa "} (98,1,1) = {" +EW aa aa aa @@ -13037,8 +13128,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13109,6 +13199,7 @@ aa aa "} (99,1,1) = {" +EW aa aa aa @@ -13167,8 +13258,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13239,6 +13329,7 @@ aa aa "} (100,1,1) = {" +EW aa aa aa @@ -13297,8 +13388,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13369,6 +13459,7 @@ aa aa "} (101,1,1) = {" +EW aa aa aa @@ -13427,8 +13518,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13499,6 +13589,7 @@ aa aa "} (102,1,1) = {" +EW aa aa aa @@ -13557,8 +13648,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13629,6 +13719,7 @@ aa aa "} (103,1,1) = {" +EW aa aa aa @@ -13687,8 +13778,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13759,6 +13849,7 @@ aa aa "} (104,1,1) = {" +EW aa aa aa @@ -13817,8 +13908,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -13889,6 +13979,7 @@ aa aa "} (105,1,1) = {" +EW aa aa aa @@ -13947,8 +14038,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14019,6 +14109,7 @@ aa aa "} (106,1,1) = {" +EW aa aa aa @@ -14077,8 +14168,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14149,6 +14239,7 @@ aa aa "} (107,1,1) = {" +EW aa aa aa @@ -14207,8 +14298,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14279,6 +14369,7 @@ aa aa "} (108,1,1) = {" +EW aa aa aa @@ -14337,8 +14428,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14409,6 +14499,7 @@ aa aa "} (109,1,1) = {" +EW aa aa aa @@ -14467,8 +14558,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14539,6 +14629,7 @@ aa aa "} (110,1,1) = {" +EW aa aa aa @@ -14597,8 +14688,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14669,6 +14759,7 @@ aa aa "} (111,1,1) = {" +EW aa aa aa @@ -14727,8 +14818,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14799,6 +14889,7 @@ aa aa "} (112,1,1) = {" +EW aa aa aa @@ -14857,8 +14948,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -14929,6 +15019,7 @@ aa aa "} (113,1,1) = {" +EW aa aa aa @@ -14987,8 +15078,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15059,6 +15149,7 @@ aa aa "} (114,1,1) = {" +EW aa aa aa @@ -15117,8 +15208,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15189,6 +15279,7 @@ aa aa "} (115,1,1) = {" +EW aa aa aa @@ -15247,8 +15338,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15319,6 +15409,7 @@ aa aa "} (116,1,1) = {" +EW aa aa aa @@ -15377,8 +15468,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15449,6 +15539,7 @@ aa aa "} (117,1,1) = {" +EW aa aa aa @@ -15507,8 +15598,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15579,6 +15669,7 @@ aa aa "} (118,1,1) = {" +EW aa aa aa @@ -15637,8 +15728,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15709,6 +15799,7 @@ aa aa "} (119,1,1) = {" +EW aa aa aa @@ -15767,8 +15858,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15839,6 +15929,7 @@ aa aa "} (120,1,1) = {" +EW aa aa aa @@ -15897,8 +15988,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -15969,6 +16059,7 @@ aa aa "} (121,1,1) = {" +EW aa aa aa @@ -16027,8 +16118,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16099,6 +16189,7 @@ aa aa "} (122,1,1) = {" +EW aa aa aa @@ -16157,8 +16248,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16229,6 +16319,7 @@ aa aa "} (123,1,1) = {" +EW aa aa aa @@ -16287,8 +16378,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16359,6 +16449,7 @@ aa aa "} (124,1,1) = {" +EW aa aa aa @@ -16417,8 +16508,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16489,6 +16579,7 @@ aa aa "} (125,1,1) = {" +EW aa aa aa @@ -16547,8 +16638,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16619,6 +16709,7 @@ aa aa "} (126,1,1) = {" +EW aa aa aa @@ -16677,8 +16768,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16749,6 +16839,7 @@ aa aa "} (127,1,1) = {" +EW aa aa aa @@ -16807,8 +16898,7 @@ aa aa aa aa -aa -aa +EW aa aa aa @@ -16879,66 +16969,66 @@ aa aa "} (128,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW +EW aa aa aa diff --git a/maps/modpack_testing/blank.dmm b/maps/modpack_testing/blank.dmm index 4031d6f40ec..f52568add50 100644 --- a/maps/modpack_testing/blank.dmm +++ b/maps/modpack_testing/blank.dmm @@ -12,6 +12,10 @@ /obj/abstract/landmark/latejoin, /turf/simulated/floor/tiled, /area/space) +"R" = ( +/obj/abstract/level_data/player_level, +/turf/space, +/area/space) (1,1,1) = {" a @@ -27,7 +31,7 @@ a "} (2,1,1) = {" a -a +R a a a diff --git a/maps/nexus/nexus-1.dmm b/maps/nexus/nexus-1.dmm index a679b60e921..ed952f31e80 100644 --- a/maps/nexus/nexus-1.dmm +++ b/maps/nexus/nexus-1.dmm @@ -2556,7 +2556,9 @@ /turf/simulated/floor/plating, /area/nexus/command) "xX" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Nexus Lower Deck"; +}, /turf/space, /area/space) "yf" = ( diff --git a/maps/nexus/nexus-2.dmm b/maps/nexus/nexus-2.dmm index 72c89ae4168..473099b7a1b 100644 --- a/maps/nexus/nexus-2.dmm +++ b/maps/nexus/nexus-2.dmm @@ -907,7 +907,9 @@ /turf/simulated/floor/carpet/blue3, /area/nexus/civilian/bar) "Oa" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Nexus Upper Deck"; +}, /turf/space, /area/space) "Ok" = ( diff --git a/maps/nexus/nexus_areas.dm b/maps/nexus/nexus_areas.dm index 4f661f864bb..28ccc1e11b3 100644 --- a/maps/nexus/nexus_areas.dm +++ b/maps/nexus/nexus_areas.dm @@ -1,10 +1,12 @@ /area/nexus name = "Nexus Area" + holomap_color = HOLOMAP_AREACOLOR_CREW //Engineering /area/nexus/engineering name = "Engineering Office" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/nexus/engineering/engine name = "Engine Bay" @@ -36,6 +38,7 @@ /area/nexus/hallway name = "Central Hallway" + holomap_color = HOLOMAP_AREACOLOR_HALLWAYS /area/nexus/hallway/port name = "Port Docking Pylon" @@ -73,6 +76,7 @@ /area/nexus/maint area_flags = AREA_FLAG_RAD_SHIELDED + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/nexus/maint/custodial name = "Cleaning Supplies" diff --git a/maps/outreach/outreach-1.dmm b/maps/outreach/outreach-1.dmm index 48d2db4302d..1e7b3581625 100644 --- a/maps/outreach/outreach-1.dmm +++ b/maps/outreach/outreach-1.dmm @@ -1,211 +1,40442 @@ -"a" = (/turf/exterior/barren,/area/exoplanet/outreach/mines/depth_2) -"b" = (/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"c" = (/turf/unsimulated/wall,/area/exoplanet/outreach/mines/exits) -"d" = (/obj/structure/stairs/long/west,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"e" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"f" = (/obj/structure/stairs/long/west,/obj/structure/railing/mapped,/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"g" = (/obj/structure/railing/mapped,/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"h" = (/turf/exterior/planet_edge,/area/exoplanet/outreach/mines/depth_2) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/exterior/barren, +/area/exoplanet/outreach/mines/depth_2) +"b" = ( +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"c" = ( +/turf/unsimulated/wall, +/area/exoplanet/outreach/mines/exits) +"d" = ( +/obj/structure/stairs/long/west, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"e" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"f" = ( +/obj/structure/stairs/long/west, +/obj/structure/railing/mapped, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"g" = ( +/obj/structure/railing/mapped, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"h" = ( +/turf/exterior/planet_edge, +/area/exoplanet/outreach/mines/depth_2) +"i" = ( +/obj/abstract/level_data/exoplanet/outreach/mining, +/turf/exterior/planet_edge, +/area/exoplanet/outreach/mines/depth_2) (1,1,1) = {" -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcdebbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcfgbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcdebbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbcfgbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +i +"} +(2,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(3,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(4,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(5,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(6,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(7,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(8,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(9,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(10,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(11,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(12,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(13,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(14,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(15,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(16,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(17,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(18,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(19,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(20,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(21,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(22,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(23,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(24,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(25,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(26,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(27,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(28,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(29,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(30,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(31,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(32,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(33,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(34,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(35,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(36,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(37,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(38,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(39,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(40,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(41,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(42,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(43,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(44,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(45,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(46,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(47,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(48,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(49,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(50,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(51,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(52,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(53,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(54,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(55,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(56,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(57,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(58,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(59,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(60,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(61,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(62,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(63,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(64,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(65,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(66,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(67,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(68,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(69,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(70,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(71,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(72,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(73,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(74,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(75,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(76,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(77,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(78,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(79,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(80,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(81,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(82,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(83,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(84,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(85,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(86,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(87,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(88,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(89,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(90,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(91,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(92,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(93,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(94,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(95,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(96,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(97,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(98,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(99,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(100,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(101,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(102,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(103,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(104,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(105,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(106,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(107,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(108,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(109,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(110,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(111,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(112,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(113,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(114,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(115,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(116,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(117,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(118,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(119,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(120,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(121,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(122,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(123,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(124,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(125,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(126,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(127,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(128,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(129,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(130,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(131,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(132,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(133,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(134,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(135,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(136,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(137,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(138,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(139,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(140,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(141,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(142,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(143,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(144,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(145,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(146,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(147,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(148,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +c +c +b +b +b +b +c +c +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(149,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +d +f +b +b +b +b +d +f +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(150,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +e +g +b +b +b +b +e +g +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(151,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(152,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +b +b +b +a +a +b +b +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(153,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(154,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(155,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(156,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(157,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(158,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(159,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(160,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(161,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(162,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(163,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(164,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(165,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(166,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(167,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(168,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(169,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(170,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(171,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(172,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(173,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(174,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(175,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(176,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(177,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(178,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(179,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(180,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(181,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(182,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(183,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(184,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(185,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(186,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(187,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(188,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(189,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(190,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(191,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(192,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(193,1,1) = {" +h +h +h +h +h +h +h +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +h +h +h +h +h +h +h +"} +(194,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(195,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(196,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(197,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(198,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(199,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +"} +(200,1,1) = {" +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h +h "} diff --git a/maps/outreach/outreach-2.dmm b/maps/outreach/outreach-2.dmm index 79684d39ae5..eb72e36f809 100644 --- a/maps/outreach/outreach-2.dmm +++ b/maps/outreach/outreach-2.dmm @@ -1,213 +1,40452 @@ -"a" = (/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"b" = (/turf/unsimulated/wall,/area/exoplanet/outreach/mines/exits) -"c" = (/obj/structure/stairs/long/west,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"d" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"e" = (/turf/exterior/barren,/area/exoplanet/outreach/mines/depth_1) -"f" = (/turf/exterior/open,/area/exoplanet/outreach/mines/exits) -"g" = (/obj/structure/stairs/long/west,/obj/structure/railing/mapped,/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"h" = (/obj/structure/railing/mapped,/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"i" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/exterior/barren,/area/exoplanet/outreach/mines/exits) -"j" = (/turf/exterior/planet_edge,/area/exoplanet/outreach/mines/depth_1) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"b" = ( +/turf/unsimulated/wall, +/area/exoplanet/outreach/mines/exits) +"c" = ( +/obj/structure/stairs/long/west, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"d" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"e" = ( +/turf/exterior/barren, +/area/exoplanet/outreach/mines/depth_1) +"f" = ( +/turf/exterior/open, +/area/exoplanet/outreach/mines/exits) +"g" = ( +/obj/structure/stairs/long/west, +/obj/structure/railing/mapped, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"h" = ( +/obj/structure/railing/mapped, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"i" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/exterior/barren, +/area/exoplanet/outreach/mines/exits) +"j" = ( +/turf/exterior/planet_edge, +/area/exoplanet/outreach/mines/depth_1) +"k" = ( +/obj/abstract/level_data/exoplanet/outreach/mining, +/turf/exterior/planet_edge, +/area/exoplanet/outreach/mines/depth_1) (1,1,1) = {" -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaahhaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaabcdaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaffiaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeabghaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaffiaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaddaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaahhaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaabcdaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaffieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaabghaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaffiaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeaddaeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeejjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj -jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +k +"} +(2,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(3,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(4,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(5,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(6,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(7,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(8,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(9,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(10,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(11,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(12,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(13,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(14,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(15,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(16,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(17,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(18,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(19,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(20,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(21,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(22,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(23,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(24,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(25,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(26,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(27,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(28,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(29,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(30,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(31,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(32,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(33,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(34,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(35,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(36,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(37,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(38,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(39,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(40,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(41,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(42,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(43,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(44,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(45,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(46,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +e +e +e +e +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(47,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +e +a +a +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(48,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +b +b +a +a +a +a +b +b +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(49,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +c +g +a +a +a +a +c +g +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(50,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +d +h +a +a +a +a +d +h +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(51,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +a +a +a +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(52,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +e +a +a +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(53,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +e +e +e +e +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(54,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(55,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(56,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(57,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(58,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(59,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(60,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(61,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(62,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(63,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(64,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(65,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(66,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(67,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(68,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(69,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(70,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(71,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(72,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(73,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(74,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(75,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(76,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(77,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(78,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(79,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(80,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(81,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(82,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(83,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(84,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(85,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(86,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(87,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(88,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(89,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(90,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(91,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(92,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(93,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(94,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(95,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(96,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(97,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(98,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(99,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(100,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(101,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(102,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(103,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(104,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(105,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(106,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(107,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(108,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(109,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(110,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(111,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(112,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(113,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(114,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(115,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(116,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(117,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(118,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(119,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(120,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(121,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(122,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(123,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(124,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(125,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(126,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(127,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(128,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(129,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(130,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(131,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(132,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(133,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(134,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(135,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(136,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(137,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(138,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(139,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(140,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(141,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(142,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(143,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(144,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(145,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(146,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(147,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +a +a +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(148,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +a +a +a +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(149,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +h +f +f +d +a +a +h +f +f +d +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(150,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +h +f +f +d +a +a +h +f +f +d +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(151,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +i +i +a +a +e +a +i +i +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(152,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +a +a +e +e +e +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(153,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +a +a +a +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(154,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(155,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(156,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(157,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(158,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(159,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(160,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(161,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(162,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(163,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(164,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(165,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(166,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(167,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(168,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(169,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(170,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(171,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(172,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(173,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(174,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(175,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(176,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(177,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(178,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(179,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(180,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(181,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(182,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(183,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(184,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(185,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(186,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(187,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(188,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(189,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(190,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(191,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(192,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(193,1,1) = {" +j +j +j +j +j +j +j +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +e +j +j +j +j +j +j +j +"} +(194,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(195,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(196,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(197,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(198,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(199,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(200,1,1) = {" +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j "} diff --git a/maps/outreach/outreach-3.dmm b/maps/outreach/outreach-3.dmm index 90690a94c73..5eeb511b23b 100644 --- a/maps/outreach/outreach-3.dmm +++ b/maps/outreach/outreach-3.dmm @@ -1,623 +1,44110 @@ -"aa" = (/turf/exterior/chlorine_sand,/area/exoplanet/outreach) -"ab" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/barracks/second) -"ac" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"ad" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"ae" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"af" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"ag" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"ah" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"ai" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aj" = (/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"ak" = (/obj/structure/bed/padded,/obj/item/bedsheet/blue,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"al" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"am" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/obj/structure/stairs/long/north{icon_state = ""; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"an" = (/obj/machinery/atm{pixel_x = 24},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"ao" = (/obj/machinery/light{icon_state = "tube_map"; dir = 1},/obj/machinery/atmospherics/pipe/simple/visible/universal{icon_state = "map_universal"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"ap" = (/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/door/airlock/security{name = "Judge Office"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"aq" = (/turf/exterior/planet_edge,/area/exoplanet/outreach) -"ar" = (/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"as" = (/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"at" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"au" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"av" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aw" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/maint) -"ax" = (/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"ay" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"az" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aC" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aG" = (/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"aH" = (/obj/structure/cable/green{icon_state = "16-0"},/obj/structure/cable/green{dir = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"aI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aJ" = (/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers,/obj/machinery/atmospherics/pipe/zpipe/up/supply,/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"aK" = (/obj/structure/cable/green{icon_state = "1-4"},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/obj/machinery/power/apc/critical{dir = 8; icon_state = "apc0"; pixel_x = -24},/obj/structure/cable/green{icon_state = "0-4"},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"aL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aN" = (/turf/exterior/concrete,/area/exoplanet/outreach) -"aO" = (/obj/machinery/airlock_sensor{id_tag = "outreach_3_exterior_sensor"; pixel_x = -24},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"aP" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/hallway) -"aQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"aR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/second) -"aT" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/cable/green{icon_state = "2-4"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aU" = (/obj/machinery/power/apc/critical{dir = 4; pixel_x = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"aV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"aW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"aX" = (/obj/structure/railing/mapped,/turf/exterior/concrete,/area/exoplanet/outreach) -"aY" = (/obj/machinery/airlock_sensor{id_tag = "outreach_2_exterior_sensor"; pixel_x = 0; pixel_y = 24},/turf/exterior/chlorine_sand,/area/outreach/outpost/solar_array) -"aZ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/generic,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"ba" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bb" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/vending/infini/botany,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "2-8"},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 4},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"bd" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/vending/infini/science,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"be" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"bf" = (/turf/exterior/chlorine_sand,/area/outreach/outpost/solar_array) -"bg" = (/turf/exterior/open,/area/exoplanet/outreach) -"bh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"bi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"bj" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/judges) -"bk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/table/steel,/obj/machinery/recharger/wallcharger{pixel_y = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bl" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/space,/area/outreach/outpost/hallway) -"bm" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"bn" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bo" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"bp" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bq" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"br" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/second) -"bs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/second) -"bt" = (/obj/machinery/power/apc/critical{dir = 1; pixel_y = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-2"},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bu" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/obj/structure/table/steel,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bv" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/obj/structure/table/steel,/obj/machinery/recharger/wallcharger{pixel_y = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bw" = (/obj/structure/cable/green{icon_state = "2-4"},/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/vending/infini/industrial,/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"by" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atm{pixel_x = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bz" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bA" = (/obj/machinery/door/airlock/glass/civilian,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bC" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bD" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor/autoset,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bE" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bF" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bH" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 1},/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bI" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood/splatter,/obj/machinery/airlock_sensor{id_tag = "outreach_3_interior_sensor"; pixel_x = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bJ" = (/obj/machinery/door/firedoor/autoset,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"bK" = (/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-8"},/obj/structure/cable/green{icon_state = "2-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bL" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bM" = (/obj/structure/closet,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{icon_state = "4-8"},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"bP" = (/obj/machinery/cryopod/despawner,/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/sleeproom) -"bQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/generic,/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "4-8"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bR" = (/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "2-4"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/wallframe_spawn/reinforced/titanium,/obj/structure/cable/green{icon_state = "4-8"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bW" = (/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor/autoset,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"ca" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cb" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor/autoset,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"cd" = (/obj/machinery/door/airlock/external{id_tag = "outreach_3_inner"},/obj/machinery/button/access/interior{id_tag = "outreach_3"; pixel_y = 24},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"ce" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "stripecorner"; dir = 1},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"cf" = (/obj/effect/floor_decal/industrial/hatch/orange,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{cycle_to_external_air = 1; frequency = 1381; id_tag = "outreach_3"; pixel_y = 24; tag_airpump = null; tag_exterior_door = null; tag_interior_door = null},/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{id_tag = "outreach_3_pump"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"cg" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"ch" = (/obj/machinery/door/airlock/external{id_tag = "outreach_3_outer"},/obj/machinery/button/access/exterior{id_tag = "outreach_3"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"ci" = (/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cj" = (/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"ck" = (/obj/structure/closet,/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cl" = (/obj/effect/floor_decal/industrial/hatch/orange,/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 4; icon_state = "map_vent"; id_tag = "outreach_3_pump_out_internal"},/obj/machinery/airlock_sensor{id_tag = "outreach_3_sensor"; pixel_x = 0; pixel_y = 24},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"cm" = (/obj/effect/decal/cleanable/vomit,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cn" = (/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"co" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cp" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cq" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cr" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cs" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/exterior/concrete,/area/exoplanet/outreach) -"ct" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cu" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cv" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cw" = (/obj/machinery/door/airlock/double/civilian,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/second) -"cx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cy" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cz" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/exterior/concrete,/area/exoplanet/outreach) -"cA" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 8; icon_state = "map_on"; regulate_mode = 1; target_pressure = 300},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"cB" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/sleeproom) -"cC" = (/obj/effect/decal/cleanable/filth,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cE" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cI" = (/obj/structure/closet/secure_closet/guncabinet,/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cJ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cL" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cM" = (/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/second) -"cN" = (/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"cO" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 4},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"cP" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"cQ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/airlock_sensor{id_tag = "outreach_1_exterior_sensor"; pixel_x = 24},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"cR" = (/obj/machinery/power/apc/critical{dir = 1; pixel_y = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"cS" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 8},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"cT" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/barracks/first) -"cU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cV" = (/obj/machinery/door/airlock/double/civilian,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/first) -"cW" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cY" = (/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"cZ" = (/obj/machinery/door/firedoor/autoset,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"da" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor/autoset,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"db" = (/obj/machinery/cryopod/despawner{icon_state = "body_scanner_0"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/sleeproom) -"dc" = (/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/outreach/outpost/sleeproom) -"dd" = (/obj/effect/floor_decal/industrial/warning{icon_state = "stripe"; dir = 8},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"de" = (/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"df" = (/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/outreach/outpost/sleeproom) -"dg" = (/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/first) -"dh" = (/obj/effect/decal/cleanable/generic,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"di" = (/obj/structure/table/steel,/turf/simulated/floor/tiled,/area/outreach/outpost/judges) -"dj" = (/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plating,/area/outreach/outpost/sleeproom) -"dk" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"dl" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"dm" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/it) -"dn" = (/obj/machinery/door/airlock/highsecurity,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/tiled,/area/outreach/outpost/it) -"do" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"dq" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"ds" = (/obj/machinery/atmospherics/unary/freezer,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dt" = (/obj/machinery/light{icon_state = "tube_map"; dir = 1},/obj/machinery/atmospherics/unary/freezer,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"du" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/nitrogen/prechilled,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-4"},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dw" = (/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dx" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 4},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dy" = (/obj/machinery/power/smes/buildable/max_cap_in_out,/obj/structure/cable/blue{icon_state = "0-2"},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dz" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"dB" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dC" = (/obj/effect/floor_decal/industrial/warning{icon_state = "stripe"; dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"dD" = (/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/turf/simulated/floor/plating,/area/outreach/outpost/sleeproom) -"dE" = (/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"dF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dG" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"dH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"dI" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dJ" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"},/obj/machinery/alarm{dir = 4; pixel_x = -24},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dK" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dL" = (/obj/machinery/atmospherics/pipe/simple/visible{connect_dir_type = 6; dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{icon_state = "intact-supply"; dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dO" = (/obj/structure/cable/blue{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dP" = (/obj/structure/cable/blue{icon_state = "1-8"},/obj/structure/cable/blue,/obj/machinery/power/apc/critical{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"dQ" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"dS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"dU" = (/obj/effect/floor_decal/industrial/warning{icon_state = "stripe"; dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 8},/turf/simulated/floor/tiled/white,/area/outreach/outpost/sleeproom) -"dV" = (/obj/structure/railing/mapped,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "11"; dir = 5},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"dW" = (/obj/machinery/door/airlock/hatch/autoname/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"dX" = (/obj/machinery/computer/modular/preset/civilian,/obj/machinery/light/small/red{icon_state = "bulb_map"; dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/computer) -"dY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"dZ" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/simulated/floor/plating,/area/outreach/outpost/computer) -"ea" = (/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plating,/area/outreach/outpost/computer) -"eb" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"ec" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"ed" = (/obj/structure/cable/blue{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"ee" = (/turf/simulated/floor/tiled/techfloor,/area/outreach/outpost/it) -"ef" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8; icon_state = "map"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"eg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"eh" = (/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/obj/structure/cable/green{icon_state = "2-4"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"ei" = (/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"ej" = (/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/airlock/glass/civilian,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"ek" = (/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/sleeproom) -"el" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"em" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"en" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"eo" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/visible{connect_dir_type = 6; dir = 10; icon_state = "intact"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"ep" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"eq" = (/obj/machinery/door/airlock/hatch/maintenance,/obj/structure/cable/blue{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"er" = (/obj/structure/cable/blue{icon_state = "2-4"},/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"es" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/spiderling_remains,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"et" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"eu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/machinery/atm{pixel_x = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"ev" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"ew" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"ex" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 6},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"ey" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"ez" = (/obj/structure/cable/blue{icon_state = "1-4"},/obj/structure/cable/blue{icon_state = "1-8"},/obj/structure/cable/blue{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"eA" = (/obj/structure/cable/blue{icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"eB" = (/obj/effect/floor_decal/industrial/hatch/orange,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{cycle_to_external_air = 1; frequency = 1381; id_tag = "outreach_1"; pixel_y = 24; tag_airpump = null; tag_exterior_door = null; tag_interior_door = null},/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{id_tag = "outreach_1_pump"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"eC" = (/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{icon_state = "2-8"},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"eD" = (/obj/effect/floor_decal/industrial/warning{icon_state = "stripe"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 4; icon_state = "map_vent"; id_tag = "outreach_1_pump_out_external"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"eE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"eF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"eG" = (/obj/machinery/computer/modular/preset/civilian,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/computer) -"eH" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/computer) -"eI" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"eJ" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/obj/machinery/light/small/red,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/it) -"eK" = (/obj/machinery/door/airlock/highsecurity,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"eL" = (/obj/machinery/network/mainframe{initial_network_id = "outreach"},/obj/structure/cable/blue,/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"eM" = (/obj/machinery/network/router{initial_network_id = "outreach"},/obj/machinery/light/small/red,/obj/structure/cable/blue,/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"eN" = (/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"eO" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/mucus,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"eP" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"eQ" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/computer) -"eR" = (/obj/structure/bed/chair,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/computer) -"eS" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/computer) -"eT" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"eU" = (/obj/effect/floor_decal/industrial/hatch/orange,/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 8; icon_state = "map_vent"; id_tag = "outreach_1_pump_out_internal"},/obj/machinery/airlock_sensor{id_tag = "outreach_1_sensor"; pixel_x = 0; pixel_y = 24},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"eV" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"eW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"eX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"eY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/door/airlock/glass,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"eZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/plating,/area/outreach/outpost/computer) -"fa" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"fb" = (/obj/machinery/power/apc{pixel_y = -24},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/computer) -"fc" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "stripecorner"; dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"fd" = (/obj/machinery/atmospherics/pipe/simple/visible/supply{icon_state = "intact-supply"; dir = 6},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fe" = (/obj/structure/cable/green{icon_state = "1-8"},/obj/structure/cable/green{icon_state = "4-8"},/obj/structure/cable/green{icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"ff" = (/obj/machinery/atmospherics/pipe/simple/visible/red{icon_state = "intact"; dir = 10},/obj/machinery/meter,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fg" = (/obj/effect/decal/cleanable/vomit,/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"fh" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"fi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fj" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"fk" = (/obj/machinery/door/airlock/external{id_tag = "outreach_1_outer"},/obj/machinery/button/access/exterior{id_tag = "outreach_1"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"fl" = (/obj/machinery/computer/air_control{dir = 1; input_tag = "air_in"; name = "Air Supply Control"; output_tag = "air_out"; sensor_name = "Air Supply Tank"; sensor_tag = "air_sensor"},/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 4},/obj/machinery/light,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fm" = (/obj/machinery/power/apc/critical{dir = 4; pixel_x = 24},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"fn" = (/obj/machinery/door/airlock/external{id_tag = "outreach_1_inner"},/obj/machinery/button/access/interior{id_tag = "outreach_1"; pixel_y = 24},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"fo" = (/obj/machinery/atmospherics/binary/passive_gate/on{icon_state = "map_on"; dir = 4},/obj/structure/railing/mapped,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fp" = (/obj/machinery/computer/air_control{dir = 1; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensor_name = "Nitrogen Supply Tank"; sensor_tag = "n2_sensor"},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fq" = (/obj/structure/cable/green{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fr" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/airlock_sensor{id_tag = "outreach_1_interior_sensor"; pixel_x = -24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"fs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor/autoset,/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"ft" = (/obj/machinery/power/apc/critical{dir = 1; pixel_y = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/structure/cable/green{icon_state = "1-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fw" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 8; icon_state = "map_vent"; id_tag = "outreach_3_pump_out_external"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"fx" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fy" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fz" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/obj/structure/railing/mapped,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fA" = (/obj/machinery/atmospherics/pipe/manifold/hidden{icon_state = "map"; dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fB" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/door/airlock/external{id_tag = "outreach_2_inner"},/obj/machinery/button/access/interior{id_tag = "outreach_2"; pixel_x = -24; pixel_y = 0},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fC" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{cycle_to_external_air = 1; dir = 4; frequency = 1381; icon_state = "airlock_control_off"; id_tag = "outreach_2"; pixel_x = -24; pixel_y = 0; tag_airpump = null; tag_exterior_door = null; tag_interior_door = null},/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 4; icon_state = "map_vent"; id_tag = "outreach_4_pump_out_external"},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fD" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "11"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/structure/cable/green{icon_state = "2-4"},/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fF" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 4; icon_state = "map_on"; regulate_mode = 1; target_pressure = 300},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fG" = (/obj/structure/railing/mapped,/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "11"; dir = 4},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fH" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"fI" = (/obj/structure/bed/padded,/obj/item/bedsheet/blue,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"fJ" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/airlock_sensor{id_tag = "outreach_2_sensor"; pixel_x = -24; pixel_y = 0},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 8},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fK" = (/obj/structure/cable/yellow{icon_state = "1-2"},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fL" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/door/airlock/external{id_tag = "outreach_2_outer"},/obj/machinery/button/access/exterior{id_tag = "outreach_2"; pixel_x = 24; pixel_y = 0},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"fM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fN" = (/obj/machinery/atmospherics/binary/passive_gate/on{icon_state = "map_on"; dir = 8},/obj/structure/railing/mapped,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fO" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/atmospherics) -"fP" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/visible/scrubbers,/obj/machinery/atmospherics/pipe/simple/visible/supply,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"fR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"fS" = (/obj/machinery/atmospherics/unary/heater,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fT" = (/obj/machinery/atmospherics/unary/freezer,/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fU" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fV" = (/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fX" = (/obj/machinery/atmospherics/pipe/manifold/visible/supply{icon_state = "map-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"fY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"fZ" = (/obj/structure/grille,/turf/exterior/chlorine_sand,/area/exoplanet/outreach) -"ga" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gb" = (/obj/machinery/atmospherics/pipe/simple/visible{connect_dir_type = 4; dir = 5; icon_state = "intact"},/obj/machinery/light{icon_state = "tube_map"; dir = 8},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gc" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/machinery/meter,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gd" = (/obj/machinery/atmospherics/pipe/manifold/visible{icon_state = "map"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"ge" = (/obj/machinery/atmospherics/pipe/simple/visible/universal,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gf" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 8},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gh" = (/obj/machinery/atmospherics/binary/pump/high_power/on/max_pressure,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gi" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"gj" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gk" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 1; icon_state = "map_on"; regulate_mode = 1; target_pressure = 300},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gl" = (/obj/machinery/power/apc/critical{dir = 8; icon_state = "apc0"; pixel_x = -24},/obj/structure/cable/green{dir = 2; icon_state = "0-2"},/obj/machinery/atmospherics/pipe/simple/visible/green{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gm" = (/obj/machinery/atmospherics/binary/pump/on,/obj/machinery/atmospherics/pipe/simple/visible/green{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gn" = (/obj/machinery/atmospherics/binary/pump/on{icon_state = "map_on"; dir = 1},/obj/machinery/atmospherics/pipe/simple/visible/green{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"go" = (/obj/effect/decal/cleanable/blood/oil,/obj/machinery/atmospherics/pipe/simple/visible/green{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gp" = (/obj/machinery/atmospherics/binary/passive_gate/on{icon_state = "map_on"; dir = 1},/obj/machinery/atmospherics/pipe/simple/visible/green{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gq" = (/obj/machinery/atmospherics/pipe/simple/visible/supply,/obj/machinery/atmospherics/pipe/simple/visible/green{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gr" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 10; icon_state = "intact"},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gs" = (/obj/machinery/atmospherics/pipe/simple/visible/red,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gt" = (/obj/machinery/atmospherics/binary/passive_gate/on,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"gv" = (/obj/structure/cable/yellow{icon_state = "0-4"},/obj/machinery/power/solar,/obj/effect/floor_decal/solarpanel,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gw" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gx" = (/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gy" = (/obj/machinery/atmospherics/pipe/simple/visible{connect_dir_type = 4; dir = 5; icon_state = "intact"},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gz" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gA" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 4},/obj/effect/decal/cleanable/blood/oil,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gB" = (/obj/machinery/atmospherics/pipe/manifold/visible{icon_state = "map"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gC" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gD" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 5; icon_state = "intact"},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gE" = (/obj/machinery/atmospherics/omni/filter{tag_east = 2; tag_north = 1; tag_south = 4; tag_west = 3},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gF" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gG" = (/obj/structure/cable/yellow{icon_state = "2-8"},/obj/structure/cable/yellow{icon_state = "2-4"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gH" = (/obj/structure/cable/yellow{icon_state = "0-8"},/obj/machinery/power/solar,/obj/effect/floor_decal/solarpanel,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gI" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/obj/structure/railing/mapped,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gJ" = (/obj/machinery/door/airlock/glass,/obj/structure/cable/green{icon_state = "4-8"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"gK" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/green,/obj/structure/cable/green{icon_state = "1-8"},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gL" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 6},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gM" = (/obj/machinery/light,/obj/machinery/computer/air_control{dir = 1; input_tag = "o2_in"; name = "Oxygen Supply Control"; output_tag = "o2_out"; sensor_name = "Oxygen Supply Tank"; sensor_tag = "o2_sensor"},/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gN" = (/obj/machinery/atmospherics/omni/mixer{tag_east = 1; tag_east_con = 0.79; tag_south = 2; tag_south_con = 1; tag_west = 1; tag_west_con = 0.21},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gO" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gP" = (/obj/machinery/power/solar,/obj/effect/floor_decal/solarpanel,/obj/structure/cable/yellow{icon_state = "0-8"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gQ" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/cyan{icon_state = "intact"; dir = 10},/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gS" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/effect/floor_decal/industrial/warning{dir = 2; icon_state = "warning"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"gT" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden/green,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gU" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden/cyan,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gV" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden/blue,/turf/simulated/floor/plating,/area/outreach/outpost/atmospherics) -"gW" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; icon_state = "map_injector"; use_power = 1},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 50000); name = /decl/material/gas/oxygen},/area/outreach/outpost/atmospherics) -"gX" = (/obj/machinery/atmospherics/unary/vent_pump/tank{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; id_tag = "o2_out"; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0; use_power = 1},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 50000); name = /decl/material/gas/oxygen},/area/outreach/outpost/atmospherics) -"gY" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; icon_state = "map_injector"; use_power = 1},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); name = "air"},/area/outreach/outpost/atmospherics) -"gZ" = (/obj/machinery/atmospherics/unary/vent_pump/tank{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; id_tag = "air_out"; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0; use_power = 1},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); name = "air"},/area/outreach/outpost/atmospherics) -"ha" = (/obj/machinery/atmospherics/unary/vent_pump/tank{dir = 1; external_pressure_bound = 0; external_pressure_bound_default = 0; icon_state = "map_vent_in"; id_tag = "n2_out"; internal_pressure_bound = 4000; internal_pressure_bound_default = 4000; pressure_checks = 2; pressure_checks_default = 2; pump_direction = 0; use_power = 1},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/nitrogen = 90000); name = /decl/material/gas/nitrogen},/area/outreach/outpost/atmospherics) -"hb" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; icon_state = "map_injector"; use_power = 1},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/nitrogen = 90000); name = /decl/material/gas/nitrogen},/area/outreach/outpost/atmospherics) -"hc" = (/obj/machinery/air_sensor{identifier = "o2_sensor"},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 50000); name = /decl/material/gas/oxygen},/area/outreach/outpost/atmospherics) -"hd" = (/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 50000); name = /decl/material/gas/oxygen},/area/outreach/outpost/atmospherics) -"he" = (/obj/machinery/air_sensor{id_tag = "air_sensor"},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); name = "air"},/area/outreach/outpost/atmospherics) -"hf" = (/obj/structure/railing/mapped,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hg" = (/obj/structure/cable/yellow{icon_state = "2-8"},/obj/structure/cable/yellow{icon_state = "2-4"},/obj/structure/cable/yellow{icon_state = "1-2"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hh" = (/obj/structure/cable/yellow{icon_state = "1-2"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hi" = (/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); name = "air"},/area/outreach/outpost/atmospherics) -"hj" = (/obj/machinery/air_sensor{id_tag = "n2_sensor"},/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/nitrogen = 90000); name = /decl/material/gas/nitrogen},/area/outreach/outpost/atmospherics) -"hk" = (/turf/simulated/floor/reinforced{initial_gas = list(/decl/material/gas/nitrogen = 90000); name = /decl/material/gas/nitrogen},/area/outreach/outpost/atmospherics) -"hl" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/structure/cable/yellow{icon_state = "2-4"},/obj/structure/cable/yellow{icon_state = "2-8"},/obj/structure/cable/yellow{icon_state = "1-4"},/obj/structure/cable/yellow{icon_state = "1-8"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hm" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/solar_array) -"hn" = (/obj/structure/cable/yellow{icon_state = "4-8"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"ho" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/structure/cable/yellow{icon_state = "2-8"},/obj/structure/cable/yellow{icon_state = "1-4"},/obj/structure/cable/yellow{icon_state = "1-8"},/obj/structure/cable/yellow{icon_state = "2-4"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hp" = (/obj/structure/cable/yellow{icon_state = "2-4"},/obj/structure/cable/yellow{icon_state = "2-8"},/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"hq" = (/obj/machinery/power/solar_control/autostart{icon_state = "solar"; dir = 1},/obj/structure/cable/yellow{icon_state = "0-8"},/obj/machinery/airlock_sensor{id_tag = "outreach_2_interior_sensor"; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"hr" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{icon_state = "0-4"},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"hs" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"ht" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow{icon_state = "0-8"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hu" = (/obj/structure/cable/yellow{icon_state = "1-8"},/obj/structure/cable/yellow{icon_state = "1-4"},/obj/structure/cable/yellow{icon_state = "1-2"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hv" = (/obj/structure/cable/yellow{icon_state = "1-8"},/obj/structure/cable/yellow{icon_state = "1-4"},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"hw" = (/obj/machinery/network/acl,/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor/bluegrid,/area/outreach/outpost/it) -"hy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/cable/green{icon_state = "1-4"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hz" = (/obj/machinery/power/smes/buildable/max_cap_in_out,/obj/structure/cable/green{icon_state = "0-4"},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"hA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/power/apc/critical{dir = 4; pixel_x = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hB" = (/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"hC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hD" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hG" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/first) -"hJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hL" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"hM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/first) -"hO" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/first) -"hP" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/simulated/floor/plating,/area/outreach/outpost/solar_array) -"hQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hR" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hS" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hT" = (/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/first) -"hU" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hV" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hW" = (/obj/machinery/atm{pixel_x = 24},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"hX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"hY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"hZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"ia" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"ib" = (/obj/structure/stairs,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"ic" = (/obj/machinery/light,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/first) -"id" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"ie" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/first) -"if" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"ih" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/exterior/chlorine_sand, +/area/exoplanet/outreach) +"ab" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/barracks/second) +"ac" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"ad" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"ae" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"af" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"ag" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"ah" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"ai" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aj" = ( +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"ak" = ( +/obj/structure/bed/padded, +/obj/item/bedsheet/blue, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"al" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"am" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/obj/structure/stairs/long/north{ + icon_state = ""; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"an" = ( +/obj/machinery/atm{ + pixel_x = 24 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"ao" = ( +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + icon_state = "map_universal"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"ap" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security{ + name = "Judge Office" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"aq" = ( +/turf/exterior/planet_edge, +/area/exoplanet/outreach) +"ar" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"as" = ( +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"at" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"au" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"av" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aw" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/maint) +"ax" = ( +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"ay" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"az" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aA" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aB" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aC" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aE" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aG" = ( +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"aH" = ( +/obj/structure/cable/green{ + icon_state = "16-0" + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"aI" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aJ" = ( +/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers, +/obj/machinery/atmospherics/pipe/zpipe/up/supply, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"aK" = ( +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/obj/machinery/power/apc/critical{ + dir = 8; + icon_state = "apc0"; + pixel_x = -24 + }, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"aL" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aM" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aN" = ( +/turf/exterior/concrete, +/area/exoplanet/outreach) +"aO" = ( +/obj/machinery/airlock_sensor{ + id_tag = "outreach_3_exterior_sensor"; + pixel_x = -24 + }, +/obj/effect/floor_decal/industrial/warning/corner{ + icon_state = "warningcorner"; + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"aP" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/hallway) +"aQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"aR" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aS" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/second) +"aT" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aU" = ( +/obj/machinery/power/apc/critical{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"aV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"aX" = ( +/obj/structure/railing/mapped, +/turf/exterior/concrete, +/area/exoplanet/outreach) +"aY" = ( +/obj/machinery/airlock_sensor{ + id_tag = "outreach_2_exterior_sensor"; + pixel_x = 0; + pixel_y = 24 + }, +/turf/exterior/chlorine_sand, +/area/outreach/outpost/solar_array) +"aZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"ba" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/vending/infini/botany, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 4 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"bd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/infini/science, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"be" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"bf" = ( +/turf/exterior/chlorine_sand, +/area/outreach/outpost/solar_array) +"bg" = ( +/turf/exterior/open, +/area/exoplanet/outreach) +"bh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"bi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atm{ + pixel_x = -24 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"bj" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/judges) +"bk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/table/steel, +/obj/machinery/recharger/wallcharger{ + pixel_y = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bl" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/space, +/area/outreach/outpost/hallway) +"bm" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"bn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bo" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"bp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atm{ + pixel_x = -24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bq" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"br" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/second) +"bs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/second) +"bt" = ( +/obj/machinery/power/apc/critical{ + dir = 1; + pixel_y = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bu" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/obj/structure/table/steel, +/obj/machinery/alarm{ + pixel_y = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bv" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/obj/structure/table/steel, +/obj/machinery/recharger/wallcharger{ + pixel_y = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bw" = ( +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/vending/infini/industrial, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"by" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atm{ + pixel_x = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bA" = ( +/obj/machinery/door/airlock/glass/civilian, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bC" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bD" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/autoset, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bF" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_3_interior_sensor"; + pixel_x = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bJ" = ( +/obj/machinery/door/firedoor/autoset, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"bK" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/splatter, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bM" = ( +/obj/structure/closet, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bO" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"bP" = ( +/obj/machinery/cryopod/despawner, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/sleeproom) +"bQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bR" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bW" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bX" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/autoset, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"ca" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cb" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/firedoor/autoset, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"cd" = ( +/obj/machinery/door/airlock/external{ + id_tag = "outreach_3_inner" + }, +/obj/machinery/button/access/interior{ + id_tag = "outreach_3"; + pixel_y = 24 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"ce" = ( +/obj/effect/floor_decal/industrial/warning/corner{ + icon_state = "stripecorner"; + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"cf" = ( +/obj/effect/floor_decal/industrial/hatch/orange, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + cycle_to_external_air = 1; + frequency = 1381; + id_tag = "outreach_3"; + pixel_y = 24; + tag_airpump = null; + tag_exterior_door = null; + tag_interior_door = null + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "outreach_3_pump" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"cg" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"ch" = ( +/obj/machinery/door/airlock/external{ + id_tag = "outreach_3_outer" + }, +/obj/machinery/button/access/exterior{ + id_tag = "outreach_3"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"ci" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cj" = ( +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"ck" = ( +/obj/structure/closet, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cl" = ( +/obj/effect/floor_decal/industrial/hatch/orange, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + icon_state = "map_vent"; + id_tag = "outreach_3_pump_out_internal" + }, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_3_sensor"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"cm" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cn" = ( +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"co" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cp" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cq" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cs" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/exterior/concrete, +/area/exoplanet/outreach) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cu" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5; + icon_state = "intact" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cv" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cw" = ( +/obj/machinery/door/airlock/double/civilian, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/second) +"cx" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cy" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cz" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/exterior/concrete, +/area/exoplanet/outreach) +"cA" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + dir = 8; + icon_state = "map_on"; + regulate_mode = 1; + target_pressure = 300 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"cB" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/sleeproom) +"cC" = ( +/obj/effect/decal/cleanable/filth, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cE" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cF" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cI" = ( +/obj/structure/closet/secure_closet/guncabinet, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cJ" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cM" = ( +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/second) +"cN" = ( +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"cO" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"cP" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4; + icon_state = "map" + }, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"cQ" = ( +/obj/effect/floor_decal/industrial/warning/corner, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_1_exterior_sensor"; + pixel_x = 24 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"cR" = ( +/obj/machinery/power/apc/critical{ + dir = 1; + pixel_y = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"cS" = ( +/obj/machinery/alarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"cT" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/barracks/first) +"cU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + icon_state = "intact-supply"; + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cV" = ( +/obj/machinery/door/airlock/double/civilian, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/first) +"cW" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cY" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"cZ" = ( +/obj/machinery/door/firedoor/autoset, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"da" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/autoset, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"db" = ( +/obj/machinery/cryopod/despawner{ + icon_state = "body_scanner_0"; + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/sleeproom) +"dc" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/outreach/outpost/sleeproom) +"dd" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "stripe"; + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"de" = ( +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"df" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/outreach/outpost/sleeproom) +"dg" = ( +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/first) +"dh" = ( +/obj/effect/decal/cleanable/generic, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"di" = ( +/obj/structure/table/steel, +/turf/simulated/floor/tiled, +/area/outreach/outpost/judges) +"dj" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/sleeproom) +"dk" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"dl" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"dm" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/it) +"dn" = ( +/obj/machinery/door/airlock/highsecurity, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/it) +"do" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/atm{ + pixel_x = -24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"dq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"ds" = ( +/obj/machinery/atmospherics/unary/freezer, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dt" = ( +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/obj/machinery/atmospherics/unary/freezer, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"du" = ( +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/portable_atmospherics/canister/nitrogen/prechilled, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dw" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dx" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 4 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dy" = ( +/obj/machinery/power/smes/buildable/max_cap_in_out, +/obj/structure/cable/blue{ + icon_state = "0-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dz" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dA" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"dB" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dC" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "stripe"; + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"dD" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/sleeproom) +"dE" = ( +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"dF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"dH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"dI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dJ" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8; + icon_state = "map" + }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dK" = ( +/obj/machinery/atmospherics/pipe/manifold/visible, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dL" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + connect_dir_type = 6; + dir = 9; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + icon_state = "intact-supply"; + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dN" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dO" = ( +/obj/structure/cable/blue{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dP" = ( +/obj/structure/cable/blue{ + icon_state = "1-8" + }, +/obj/structure/cable/blue, +/obj/machinery/power/apc/critical{ + dir = 4; + pixel_x = 24 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"dQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"dS" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"dU" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "stripe"; + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/outreach/outpost/sleeproom) +"dV" = ( +/obj/structure/railing/mapped, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "11"; + dir = 5 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"dW" = ( +/obj/machinery/door/airlock/hatch/autoname/maintenance, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"dX" = ( +/obj/machinery/computer/modular/preset/civilian, +/obj/machinery/light/small/red{ + icon_state = "bulb_map"; + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/computer) +"dY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"dZ" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/simulated/floor/plating, +/area/outreach/outpost/computer) +"ea" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -24 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/computer) +"eb" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"ec" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"ed" = ( +/obj/structure/cable/blue{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"ee" = ( +/turf/simulated/floor/tiled/techfloor, +/area/outreach/outpost/it) +"ef" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8; + icon_state = "map" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"eg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"eh" = ( +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"ei" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"ej" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/airlock/glass/civilian, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"ek" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/sleeproom) +"el" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"em" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"en" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/visible{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"eo" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/visible{ + connect_dir_type = 6; + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"ep" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"eq" = ( +/obj/machinery/door/airlock/hatch/maintenance, +/obj/structure/cable/blue{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"er" = ( +/obj/structure/cable/blue{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"es" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/spiderling_remains, +/obj/machinery/alarm{ + pixel_y = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"et" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"eu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atm{ + pixel_x = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"ev" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atm{ + pixel_x = -24 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"ew" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"ex" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 6 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"ey" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"ez" = ( +/obj/structure/cable/blue{ + icon_state = "1-4" + }, +/obj/structure/cable/blue{ + icon_state = "1-8" + }, +/obj/structure/cable/blue{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"eA" = ( +/obj/structure/cable/blue{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"eB" = ( +/obj/effect/floor_decal/industrial/hatch/orange, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + cycle_to_external_air = 1; + frequency = 1381; + id_tag = "outreach_1"; + pixel_y = 24; + tag_airpump = null; + tag_exterior_door = null; + tag_interior_door = null + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "outreach_1_pump" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"eC" = ( +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"eD" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "stripe"; + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + icon_state = "map_vent"; + id_tag = "outreach_1_pump_out_external" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"eE" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"eF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"eG" = ( +/obj/machinery/computer/modular/preset/civilian, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/computer) +"eH" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/computer) +"eI" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 5 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"eJ" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/obj/machinery/light/small/red, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/it) +"eK" = ( +/obj/machinery/door/airlock/highsecurity, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"eL" = ( +/obj/machinery/network/mainframe{ + initial_network_id = "outreach" + }, +/obj/structure/cable/blue, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"eM" = ( +/obj/machinery/network/router{ + initial_network_id = "outreach" + }, +/obj/machinery/light/small/red, +/obj/structure/cable/blue, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"eN" = ( +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"eO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/mucus, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"eP" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"eQ" = ( +/obj/structure/bed/chair, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/computer) +"eR" = ( +/obj/structure/bed/chair, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/computer) +"eS" = ( +/obj/structure/bed/chair, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/computer) +"eT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"eU" = ( +/obj/effect/floor_decal/industrial/hatch/orange, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + icon_state = "map_vent"; + id_tag = "outreach_1_pump_out_internal" + }, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_1_sensor"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"eV" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"eW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"eX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"eY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"eZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/computer) +"fa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"fb" = ( +/obj/machinery/power/apc{ + pixel_y = -24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/computer) +"fc" = ( +/obj/effect/floor_decal/industrial/warning/corner{ + icon_state = "stripecorner"; + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"fd" = ( +/obj/machinery/atmospherics/pipe/simple/visible/supply{ + icon_state = "intact-supply"; + dir = 6 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fe" = ( +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"ff" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red{ + icon_state = "intact"; + dir = 10 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fg" = ( +/obj/effect/decal/cleanable/vomit, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"fh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"fi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"fk" = ( +/obj/machinery/door/airlock/external{ + id_tag = "outreach_1_outer" + }, +/obj/machinery/button/access/exterior{ + id_tag = "outreach_1"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"fl" = ( +/obj/machinery/computer/air_control{ + dir = 1; + input_tag = "air_in"; + name = "Air Supply Control"; + output_tag = "air_out"; + sensor_name = "Air Supply Tank"; + sensor_tag = "air_sensor" + }, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/light, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fm" = ( +/obj/machinery/power/apc/critical{ + dir = 4; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/green, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"fn" = ( +/obj/machinery/door/airlock/external{ + id_tag = "outreach_1_inner" + }, +/obj/machinery/button/access/interior{ + id_tag = "outreach_1"; + pixel_y = 24 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"fo" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + icon_state = "map_on"; + dir = 4 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fp" = ( +/obj/machinery/computer/air_control{ + dir = 1; + input_tag = "n2_in"; + name = "Nitrogen Supply Control"; + output_tag = "n2_out"; + sensor_name = "Nitrogen Supply Tank"; + sensor_tag = "n2_sensor" + }, +/obj/machinery/atmospherics/pipe/simple/visible/green, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fq" = ( +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_1_interior_sensor"; + pixel_x = -24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"fs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/autoset, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"ft" = ( +/obj/machinery/power/apc/critical{ + dir = 1; + pixel_y = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fv" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fw" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + icon_state = "map_vent"; + id_tag = "outreach_3_pump_out_external" + }, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"fx" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fy" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fA" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + icon_state = "map"; + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + id_tag = "outreach_2_inner" + }, +/obj/machinery/button/access/interior{ + id_tag = "outreach_2"; + pixel_x = -24; + pixel_y = 0 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fC" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + cycle_to_external_air = 1; + dir = 4; + frequency = 1381; + icon_state = "airlock_control_off"; + id_tag = "outreach_2"; + pixel_x = -24; + pixel_y = 0; + tag_airpump = null; + tag_exterior_door = null; + tag_interior_door = null + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + icon_state = "map_vent"; + id_tag = "outreach_4_pump_out_external" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fD" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "11"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fF" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + dir = 4; + icon_state = "map_on"; + regulate_mode = 1; + target_pressure = 300 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fG" = ( +/obj/structure/railing/mapped, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "11"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"fI" = ( +/obj/structure/bed/padded, +/obj/item/bedsheet/blue, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"fJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_2_sensor"; + pixel_x = -24; + pixel_y = 0 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fL" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/external{ + id_tag = "outreach_2_outer" + }, +/obj/machinery/button/access/exterior{ + id_tag = "outreach_2"; + pixel_x = 24; + pixel_y = 0 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"fM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fN" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + icon_state = "map_on"; + dir = 8 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fO" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/atmospherics) +"fP" = ( +/obj/machinery/door/airlock/glass, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"fR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"fS" = ( +/obj/machinery/atmospherics/unary/heater, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fT" = ( +/obj/machinery/atmospherics/unary/freezer, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fU" = ( +/obj/machinery/atmospherics/portables_connector, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fV" = ( +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fX" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"fY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"fZ" = ( +/obj/structure/grille, +/turf/exterior/chlorine_sand, +/area/exoplanet/outreach) +"ga" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gb" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + connect_dir_type = 4; + dir = 5; + icon_state = "intact" + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gc" = ( +/obj/machinery/atmospherics/pipe/manifold4w/visible, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gd" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + icon_state = "map"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"ge" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gf" = ( +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gg" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gh" = ( +/obj/machinery/atmospherics/binary/pump/high_power/on/max_pressure, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gi" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"gj" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gk" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + dir = 1; + icon_state = "map_on"; + regulate_mode = 1; + target_pressure = 300 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gl" = ( +/obj/machinery/power/apc/critical{ + dir = 8; + icon_state = "apc0"; + pixel_x = -24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + icon_state = "intact"; + dir = 6 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gm" = ( +/obj/machinery/atmospherics/binary/pump/on, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gn" = ( +/obj/machinery/atmospherics/binary/pump/on{ + icon_state = "map_on"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"go" = ( +/obj/effect/decal/cleanable/blood/oil, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gp" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + icon_state = "map_on"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gq" = ( +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/machinery/atmospherics/pipe/simple/visible/green{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gr" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gs" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gt" = ( +/obj/machinery/atmospherics/binary/passive_gate/on, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gu" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"gv" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/solar, +/obj/effect/floor_decal/solarpanel, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gw" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4; + icon_state = "map" + }, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gx" = ( +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/atmospherics/pipe/simple/visible/green, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gy" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + connect_dir_type = 4; + dir = 5; + icon_state = "intact" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gz" = ( +/obj/machinery/atmospherics/pipe/manifold/visible, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gA" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + icon_state = "intact"; + dir = 4 + }, +/obj/effect/decal/cleanable/blood/oil, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gB" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + icon_state = "map"; + dir = 4 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gD" = ( +/obj/machinery/atmospherics/pipe/simple/visible/green{ + dir = 5; + icon_state = "intact" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gE" = ( +/obj/machinery/atmospherics/omni/filter{ + tag_east = 2; + tag_north = 1; + tag_south = 4; + tag_west = 3 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gF" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gG" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gH" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/solar, +/obj/effect/floor_decal/solarpanel, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gI" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gJ" = ( +/obj/machinery/door/airlock/glass, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"gK" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/green, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gL" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + icon_state = "intact"; + dir = 6 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gM" = ( +/obj/machinery/light, +/obj/machinery/computer/air_control{ + dir = 1; + input_tag = "o2_in"; + name = "Oxygen Supply Control"; + output_tag = "o2_out"; + sensor_name = "Oxygen Supply Tank"; + sensor_tag = "o2_sensor" + }, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gN" = ( +/obj/machinery/atmospherics/omni/mixer{ + tag_east = 1; + tag_east_con = 0.79; + tag_south = 2; + tag_south_con = 1; + tag_west = 1; + tag_west_con = 0.21 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gO" = ( +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + icon_state = "intact"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gP" = ( +/obj/machinery/power/solar, +/obj/effect/floor_decal/solarpanel, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gQ" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/cyan{ + icon_state = "intact"; + dir = 10 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gR" = ( +/obj/abstract/level_data/exoplanet/outreach, +/turf/exterior/planet_edge, +/area/exoplanet/outreach) +"gS" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden, +/obj/effect/floor_decal/industrial/warning{ + dir = 2; + icon_state = "warning" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"gT" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden/green, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gU" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gV" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden/blue, +/turf/simulated/floor/plating, +/area/outreach/outpost/atmospherics) +"gW" = ( +/obj/machinery/atmospherics/unary/outlet_injector{ + dir = 1; + icon_state = "map_injector"; + use_power = 1 + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 50000); + name = /decl/material/gas/oxygen + }, +/area/outreach/outpost/atmospherics) +"gX" = ( +/obj/machinery/atmospherics/unary/vent_pump/tank{ + dir = 1; + external_pressure_bound = 0; + external_pressure_bound_default = 0; + icon_state = "map_vent_in"; + id_tag = "o2_out"; + internal_pressure_bound = 4000; + internal_pressure_bound_default = 4000; + pressure_checks = 2; + pressure_checks_default = 2; + pump_direction = 0; + use_power = 1 + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 50000); + name = /decl/material/gas/oxygen + }, +/area/outreach/outpost/atmospherics) +"gY" = ( +/obj/machinery/atmospherics/unary/outlet_injector{ + dir = 1; + icon_state = "map_injector"; + use_power = 1 + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); + name = "air" + }, +/area/outreach/outpost/atmospherics) +"gZ" = ( +/obj/machinery/atmospherics/unary/vent_pump/tank{ + dir = 1; + external_pressure_bound = 0; + external_pressure_bound_default = 0; + icon_state = "map_vent_in"; + id_tag = "air_out"; + internal_pressure_bound = 4000; + internal_pressure_bound_default = 4000; + pressure_checks = 2; + pressure_checks_default = 2; + pump_direction = 0; + use_power = 1 + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); + name = "air" + }, +/area/outreach/outpost/atmospherics) +"ha" = ( +/obj/machinery/atmospherics/unary/vent_pump/tank{ + dir = 1; + external_pressure_bound = 0; + external_pressure_bound_default = 0; + icon_state = "map_vent_in"; + id_tag = "n2_out"; + internal_pressure_bound = 4000; + internal_pressure_bound_default = 4000; + pressure_checks = 2; + pressure_checks_default = 2; + pump_direction = 0; + use_power = 1 + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/nitrogen = 90000); + name = /decl/material/gas/nitrogen + }, +/area/outreach/outpost/atmospherics) +"hb" = ( +/obj/machinery/atmospherics/unary/outlet_injector{ + dir = 1; + icon_state = "map_injector"; + use_power = 1 + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/nitrogen = 90000); + name = /decl/material/gas/nitrogen + }, +/area/outreach/outpost/atmospherics) +"hc" = ( +/obj/machinery/air_sensor{ + identifier = "o2_sensor" + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 50000); + name = /decl/material/gas/oxygen + }, +/area/outreach/outpost/atmospherics) +"hd" = ( +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 50000); + name = /decl/material/gas/oxygen + }, +/area/outreach/outpost/atmospherics) +"he" = ( +/obj/machinery/air_sensor{ + id_tag = "air_sensor" + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); + name = "air" + }, +/area/outreach/outpost/atmospherics) +"hf" = ( +/obj/structure/railing/mapped, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hg" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hi" = ( +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/oxygen = 210.837, /decl/material/gas/nitrogen = 820.147); + name = "air" + }, +/area/outreach/outpost/atmospherics) +"hj" = ( +/obj/machinery/air_sensor{ + id_tag = "n2_sensor" + }, +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/nitrogen = 90000); + name = /decl/material/gas/nitrogen + }, +/area/outreach/outpost/atmospherics) +"hk" = ( +/turf/simulated/floor/reinforced{ + initial_gas = list(/decl/material/gas/nitrogen = 90000); + name = /decl/material/gas/nitrogen + }, +/area/outreach/outpost/atmospherics) +"hl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hm" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/solar_array) +"hn" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"ho" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hp" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"hq" = ( +/obj/machinery/power/solar_control/autostart{ + icon_state = "solar"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_2_interior_sensor"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"hr" = ( +/obj/machinery/power/terminal{ + icon_state = "term"; + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"hs" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"ht" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hv" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"hw" = ( +/obj/machinery/network/acl, +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/turf/simulated/floor/bluegrid, +/area/outreach/outpost/it) +"hy" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hz" = ( +/obj/machinery/power/smes/buildable/max_cap_in_out, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"hA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/power/apc/critical{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hB" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"hC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hD" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hE" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hF" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hG" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/first) +"hJ" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hL" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"hM" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hN" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/first) +"hO" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/first) +"hP" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/simulated/floor/plating, +/area/outreach/outpost/solar_array) +"hQ" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hR" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hS" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hT" = ( +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/first) +"hU" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hV" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hW" = ( +/obj/machinery/atm{ + pixel_x = 24 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"hX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"hY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"hZ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"ia" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"ib" = ( +/obj/structure/stairs, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"ic" = ( +/obj/machinery/light, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/first) +"id" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"ie" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/first) +"if" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"ih" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) (1,1,1) = {" -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaaaaabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacadabadacabacadabadacababababacadabadacabacadabadacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaeafabagahabaeafabagahabamajabaeafabagahabaeafabagahabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabakalabalakabakalabalakabaianabakalabalakabakalabalakabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababarabarabababarabarababasasababarabarabababarabarababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabasatauatasavaxatauataxavasasayaxatazatasayaxatazatasabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawawawabaxaAaBaCaDaEaFaCaBaCaFaIaLaFaBaFaCaIaCaFaMaFaCaIaRasabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaHaJababarabarabababarabarababataSababarabarabababarabarababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawaKbcabakalabalakabakalabalakabaTaUabakalabalakabakalabalakabgigigiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaXaXaNaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaPaPaPaQifabaVaWabbebhabaVaWabbebhabbibmabaVaWabbebhabaVaWabbebhabaZbagigiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNbgbgcsaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPbbbxbdaPhsihabbobrabbrboabbobrabbrboabbsasabbobrabbrboabbobrabbrboabdTbaaZgiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNbgbgcsaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbjbjbjbjaPaPgigiaPaPaPdobnbyaPaPbqabababababababababababababcwcMabababababababababababababbpbabagiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNczczaNaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbtbubkbvaPbzbabLcgbAbababababababBbabCbabEbabCbDbnbabEbnbFbabGbababCbabHbnbabJbCbabEaZbCbabababIaPaPaPaPaOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaNaNaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjbwbNbObNapbQbRbSbTbUbVbVbVbVbVbVbWbVbXbYbVbVbXbZbVbVbVbVbXbVbKcacacbcacacacacccbcacacacbcacacaemcdcfclchfwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaNaNaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjcicjcjckaPcmbBbncnbAbabncobnbabababacqbncrbacqbDbabacrbacqbabGbnbacqbacrbabnbJcqbacrbacqbababactaPcucvaPceaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaXaXaNaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjcicjcjbMaPcycxcJaPcBcBcBcBcBcBcBcBcTcTcTcTcTcTcTcTcTcTcTcTcTcVdgcTcTcTcTcTcTcTcTcTcTcTcTcTbacCcDcEcAcPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNbgbgcsaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjcFcGcHcIaPcLcKcLaPcNcNcOcRcScNcNcNcTdkdlcTdldkcTdkdlcTdldkcTdrdEcTdkdlcTdldkcTdkdlcTdldkcTdTbacUcEfofzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNbgbgcsaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjcYcWcXcpaPcZdacZaPaGbPdbdcddbPdbdecTdGdHcTdYegcTdGdHcTdYegcTeveVcTdGdHcTdYegcTdGdHcTdYegcTdhbagigiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNczczaNaNaNaNaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjcicjcjdiaPcLcKcLaPcNbPdbdcddbPdbcNcTfIfQcTfQfIcTfIfQcTfQfIcThyhAcTfIfQcTfQfIcTfIfQcTfQfIcTgigigiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmdmdmdmdndmdmdmaPdodpdqaPcNbPdbdcddbPdbcNcTcThBcThBcTcTcThBcThBcTcThChDcTcThBcThBcTcTcThBcThBcTcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmdsdtdudvdwdxdyaPdzdAdBaPcNbPdbdfdCbPdbcNcTdEhEhFhGhHhJhKhGhFhGhKhMhNhKhFhKhGhMhGhKhOhKhGhMhQdEcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmdJdKdLdMdNdOdPaPcLdRaZaPaGbPdbdDdUbPdbdecTdEhChRhCdEhShThChRhChThSdEdEhDdEhChUhChThDdEhChUhChTcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmebeeeeeeecedeeeKcLeheiejekekekdjcNcNcNcNcTcThBcThBcTcTcThBcThBcTcTdEhTcTcThBcThBcTcTcThBcThBcTcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmefeneneoepeqepaPdFetdIaPcBcBcBcBcBcBcBcBcTfIfQcTfQfIcTfIfQcTfQfIcThVhWcTfIfQcTfQfIcTfIfQcTfQfIcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmewexeyfHerezeAaPdQeEdSbleGeGdXeHaaaaaaaacThXhYcThZiacThXhYcThZiacTibiccThXhYcThZiacThXhYcThZiacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmeIeJeIhweLeMeLaPcLeNbaePeQeReSdZaaaaaaaacTidiecTieidcTidiecTieidcTcTcTcTidiecTieidcTidiecTieidcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaPaPaPaPaPaPaPcLeheXeYeZeafbeHaaaaaaaacTcTcTcTcTcTcTcTcTcTcTcTcTaaaacTcTcTcTcTcTcTcTcTcTcTcTcTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcQaPaPaPaPcLelaZbabJelbaesfjbBeuaPeHeHeHeHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNeDfkeUeBfnbafqbVbVfsbVbVbVfufvcLgiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfcaPfxfyaPfrdRbnbLbJeFbafjcLeWeOgiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafAfFcEeTfMbaaPfOfOfOfOfOfPfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadVfNcEfafRbaaPfSfTfUfVfdfXaofffOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPfgdRfhaPgbgcgdfVgegfggghfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagibadRbaaPglgmgngogpgqgrgsfOgjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagidzgudBaPgxgygzgAgBgCgDgEgFgwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagibafEeCgJgKgLgMgNgOflgQfpfOgIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagibafifmaPgTgUfOgUgVfOgUgTfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPdTdRfhaPgWgXfOgYgZfOhahbfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagibadRbaaPhchdfOhehifOhjhkfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahmhmdWhmhmfOfOfOfOfOfOfOfOfOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahPhzfefthLfWfYfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahPhrhphqhPgagafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZhmhmfBhmhmgkgtfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvgGgHaagvgGgPaagvgGgHaagvgGgHaahmfCfDfGgShffZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhggHaagvhggHaagvhggHaagvhggHaahmfJhPaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhggHaagvhggHaagvhggHaagvhggHaahmfLhmaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhggHaagvhggHaagvhggHaagvhggHaaaYfKbfaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhggHaagvhggHaagvhggHaagvhggHaaaahhaaaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhlhnhnhnhlhnhnhnhlhnhnhnhohnhnhnhohnhtaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhugHaagvhugHaagvhugHaagvhugHaagvhugHaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhugHaagvhugHaagvhugHaagvhugHaagvhugHaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhugHaagvhugHaagvhugHaagvhugHaagvhugHaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhugHaagvhugHaagvhugHaagvhugHaagvhugHaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZaagvhvgHaagvhvgHaagvhvgHaagvhvgHaagvhvgHaaaaaafZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZfZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq -aqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +gR +"} +(2,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(3,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(4,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(5,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(6,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(7,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(8,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(9,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(10,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(11,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(12,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(13,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(14,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(15,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(16,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(17,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(18,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(19,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(20,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(21,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(22,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(23,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(24,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(25,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(26,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(27,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(28,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(29,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(30,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(31,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(32,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(33,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(34,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(35,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(36,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(37,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(38,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(39,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(40,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(41,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(42,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(43,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(44,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(45,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(46,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(47,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(48,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(49,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aX +bg +bg +cz +aN +aN +aX +bg +bg +cz +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(50,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aX +bg +bg +cz +aN +aN +aX +bg +bg +cz +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(51,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +cs +cs +aN +aN +aN +aN +cs +cs +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(52,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(53,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(54,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(55,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(56,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(57,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aN +aN +aN +aN +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(58,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(59,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(60,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(61,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(62,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(63,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(64,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(65,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(66,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(67,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(68,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(69,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(70,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(71,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(72,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(73,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(74,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(75,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(76,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gv +gv +gv +gv +gv +gv +gv +gv +gv +gv +gv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(77,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gG +hg +hg +hg +hg +hl +hu +hu +hu +hu +hv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(78,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gH +gH +gH +gH +gH +hn +gH +gH +gH +gH +gH +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(79,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +hn +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(80,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gv +gv +gv +gv +gv +hn +gv +gv +gv +gv +gv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(81,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gG +hg +hg +hg +hg +hl +hu +hu +hu +hu +hv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(82,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gP +gH +gH +gH +gH +hn +gH +gH +gH +gH +gH +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(83,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +hn +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(84,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gv +gv +gv +gv +gv +hn +gv +gv +gv +gv +gv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(85,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gG +hg +hg +hg +hg +hl +hu +hu +hu +hu +hv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(86,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aN +aN +aN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gH +gH +gH +gH +gH +hn +gH +gH +gH +gH +gH +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(87,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cQ +eD +fc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +hn +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(88,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +fk +aP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gv +gv +gv +gv +gv +hn +gv +gv +gv +gv +gv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(89,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +eU +fx +fA +dV +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gG +hg +hg +hg +hg +ho +hu +hu +hu +hu +hv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(90,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +eB +fy +fF +fN +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +gH +gH +gH +gH +gH +hn +gH +gH +gH +gH +gH +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(91,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dm +dm +dm +dm +dm +dm +dm +aP +aP +fn +aP +cE +cE +aP +gi +gi +gi +gi +aP +gi +hm +hP +hP +hm +aa +aa +aa +aa +aa +hn +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(92,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dm +ds +dJ +eb +ef +ew +eI +aP +cL +ba +fr +eT +fa +fg +ba +dz +ba +ba +dT +ba +hm +hz +hr +hm +hm +hm +hm +aY +aa +hn +gv +gv +gv +gv +gv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(93,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +dm +dt +dK +ee +en +ex +eJ +aP +el +fq +dR +fM +fR +dR +dR +gu +fE +fi +dR +dR +dW +fe +hp +fB +fC +fJ +fL +fK +hh +ho +hu +hu +hu +hu +hv +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(94,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bj +bj +bj +bj +bj +bj +bj +dm +du +dL +ee +en +ey +eI +aP +aZ +bV +bn +ba +ba +fh +ba +dB +eC +fm +fh +ba +hm +ft +hq +hm +fD +hP +hm +bf +aa +hn +gH +gH +gH +gH +gH +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(95,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bt +bw +ci +ci +cF +cY +ci +dn +dv +dM +ee +eo +fH +hw +aP +ba +bV +bL +aP +aP +aP +aP +aP +gJ +aP +aP +aP +hm +hL +hP +hm +fG +aa +aa +aa +aa +ht +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(96,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bu +bN +cj +cj +cG +cW +cj +dm +dw +dN +ec +ep +er +eL +aP +bJ +fs +bJ +fO +fS +gb +gl +gx +gK +gT +gW +hc +fO +fW +ga +gk +gS +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(97,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bk +bO +cj +cj +cH +cX +cj +dm +dx +dO +ed +eq +ez +eM +aP +el +bV +eF +fO +fT +gc +gm +gy +gL +gU +gX +hd +fO +fY +ga +gt +hf +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(98,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bj +bv +bN +ck +bM +cI +cp +di +dm +dy +dP +ee +ep +eA +eL +aP +ba +bV +ba +fO +fU +gd +gn +gz +gM +fO +fO +fO +fO +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +fZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(99,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +aP +ap +aP +aP +aP +aP +aP +aP +aP +aP +eK +aP +aP +aP +aP +es +bV +fj +fO +fV +fV +go +gA +gN +gU +gY +he +fO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(100,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +bz +bQ +cm +cy +cL +cZ +cL +do +dz +cL +cL +dF +dQ +cL +cL +fj +fu +cL +fO +fd +ge +gp +gB +gO +gV +gZ +hi +fO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(101,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gi +ba +bR +bB +cx +cK +da +cK +dp +dA +dR +eh +et +eE +eN +eh +bB +fv +eW +fP +fX +gf +gq +gC +fl +fO +fO +fO +fO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(102,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gi +bL +bS +bn +cJ +cL +cZ +cL +dq +dB +aZ +ei +dI +dS +ba +eX +eu +cL +eO +fO +ao +gg +gr +gD +gQ +gU +ha +hj +fO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(103,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +cg +bT +cn +aP +aP +aP +aP +aP +aP +aP +ej +aP +bl +eP +eY +aP +gi +gi +fO +ff +gh +gs +gE +fp +gT +hb +hk +fO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(104,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +bA +bU +bA +cB +cN +aG +cN +cN +cN +aG +ek +cB +eG +eQ +eZ +eH +aa +aa +fO +fO +fO +fO +gF +fO +fO +fO +fO +fO +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(105,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +aP +aP +ba +bV +ba +cB +cN +bP +bP +bP +bP +bP +ek +cB +eG +eR +ea +eH +aa +aa +aa +aa +aa +gj +gw +gI +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(106,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +bb +do +ba +bV +bn +cB +cO +db +db +db +db +db +ek +cB +dX +eS +fb +eH +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(107,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +bx +bn +ba +bV +co +cB +cR +dc +dc +dc +df +dD +dj +cB +eH +dZ +eH +eH +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(108,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +bd +by +ba +bV +bn +cB +cS +dd +dd +dd +dC +dU +cN +cB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(109,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aw +aw +aw +aP +aP +aP +ba +bV +ba +cB +cN +bP +bP +bP +bP +bP +cN +cB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(110,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aw +aH +aK +aQ +hs +aP +ba +bV +ba +cB +cN +db +db +db +db +db +cN +cB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(111,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aw +aJ +bc +if +ih +bq +bB +bW +ba +cB +cN +de +cN +cN +cN +de +cN +cB +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(112,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ba +bV +ba +cT +cT +cT +cT +cT +cT +cT +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(113,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ak +ab +as +ax +ab +ak +aV +bo +ab +bC +bX +cq +cT +dk +dG +fI +cT +dE +dE +cT +fI +hX +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(114,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +af +al +ar +at +aA +ar +al +aW +br +ab +ba +bY +bn +cT +dl +dH +fQ +hB +hE +hC +hB +fQ +hY +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(115,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +au +aB +ab +ab +ab +ab +ab +bE +bV +cr +cT +cT +cT +cT +cT +hF +hR +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(116,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ag +al +ar +at +aC +ar +al +be +br +ab +ba +bV +ba +cT +dl +dY +fQ +hB +hG +hC +hB +fQ +hZ +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(117,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ak +ab +as +aD +ab +ak +bh +bo +ab +bC +bX +cq +cT +dk +eg +fI +cT +hH +dE +cT +fI +ia +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(118,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +av +aE +ab +ab +ab +ab +ab +bD +bZ +bD +cT +cT +cT +cT +cT +hJ +hS +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(119,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ak +ab +ax +aF +ab +ak +aV +bo +ab +bn +bV +ba +cT +dk +dG +fI +cT +hK +hT +cT +fI +hX +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(120,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +af +al +ar +at +aC +ar +al +aW +br +ab +ba +bV +ba +cT +dl +dH +fQ +hB +hG +hC +hB +fQ +hY +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(121,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +au +aB +ab +ab +ab +ab +ab +bE +bV +cr +cT +cT +cT +cT +cT +hF +hR +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(122,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ag +al +ar +at +aC +ar +al +be +br +ab +bn +bV +ba +cT +dl +dY +fQ +hB +hG +hC +hB +fQ +hZ +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(123,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ak +ab +ax +aF +ab +ak +bh +bo +ab +bF +bX +cq +cT +dk +eg +fI +cT +hK +hT +cT +fI +ia +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(124,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +av +aI +ab +ab +ab +ab +ab +ba +bV +ba +cT +cT +cT +cT +cT +hM +hS +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(125,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +am +ai +as +as +aL +at +aT +bi +bs +cw +bG +bK +bG +cV +dr +ev +hy +hC +hN +dE +dE +hV +ib +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(126,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +aj +an +as +as +aF +aS +aU +bm +as +cM +ba +ca +bn +dg +dE +eV +hA +hD +hK +dE +hT +hW +ic +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(127,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ay +aB +ab +ab +ab +ab +ab +ba +ca +ba +cT +cT +cT +cT +cT +hF +hD +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(128,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ak +ab +ax +aF +ab +ak +aV +bo +ab +bC +cb +cq +cT +dk +dG +fI +cT +hK +dE +cT +fI +hX +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(129,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +af +al +ar +at +aC +ar +al +aW +br +ab +ba +ca +ba +cT +dl +dH +fQ +hB +hG +hC +hB +fQ +hY +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(130,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +az +aI +ab +ab +ab +ab +ab +bH +ca +cr +cT +cT +cT +cT +cT +hM +hU +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(131,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ag +al +ar +at +aC +ar +al +be +br +ab +bn +ca +ba +cT +dl +dY +fQ +hB +hG +hC +hB +fQ +hZ +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(132,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ak +ab +as +aF +ab +ak +bh +bo +ab +ba +ca +bn +cT +dk +eg +fI +cT +hK +hT +cT +fI +ia +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(133,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ay +aM +ab +ab +ab +ab +ab +bJ +cc +bJ +cT +cT +cT +cT +cT +hO +hD +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(134,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ae +ak +ab +ax +aF +ab +ak +aV +bo +ab +bC +cb +cq +cT +dk +dG +fI +cT +hK +dE +cT +fI +hX +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(135,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +af +al +ar +at +aC +ar +al +aW +br +ab +ba +ca +ba +cT +dl +dH +fQ +hB +hG +hC +hB +fQ +hY +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(136,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +az +aI +ab +ab +ab +ab +ab +bE +ca +cr +cT +cT +cT +cT +cT +hM +hU +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(137,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ad +ag +al +ar +at +aR +ar +al +be +br +ab +aZ +ca +ba +cT +dl +dY +fQ +hB +hQ +hC +hB +fQ +hZ +ie +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(138,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ac +ah +ak +ab +as +as +ab +ak +bh +bo +ab +bC +cb +cq +cT +dk +eg +fI +cT +dE +hT +cT +fI +ia +id +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(139,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ba +ca +ba +cT +cT +cT +cT +cT +cT +cT +cT +cT +cT +cT +cT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(140,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gi +aZ +dT +bp +ba +ca +ba +ba +dT +dh +gi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(141,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gi +ba +ba +ba +ba +ca +ba +cC +ba +ba +gi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(142,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gi +gi +aZ +ba +bI +em +ct +cD +cU +gi +gi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(143,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +gi +gi +gi +aP +cd +aP +cE +cE +gi +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(144,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +cf +cu +cA +fo +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(145,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +cl +cv +cP +fz +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(146,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aP +ch +aP +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(147,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aO +fw +ce +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(148,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(149,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(150,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(151,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(152,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(153,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(154,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(155,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(156,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(157,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(158,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(159,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(160,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(161,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(162,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(163,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(164,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(165,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(166,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(167,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(168,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(169,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(170,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(171,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(172,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(173,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(174,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(175,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(176,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(177,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(178,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(179,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(180,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(181,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(182,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(183,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(184,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(185,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(186,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(187,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(188,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(189,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(190,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(191,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(192,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(193,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aq +aq +aq +aq +aq +aq +aq +"} +(194,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(195,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(196,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(197,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(198,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(199,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +"} +(200,1,1) = {" +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq "} diff --git a/maps/outreach/outreach-4.dmm b/maps/outreach/outreach-4.dmm index 91f31efb7ab..61cf6f1dbd3 100644 --- a/maps/outreach/outreach-4.dmm +++ b/maps/outreach/outreach-4.dmm @@ -1,357 +1,41684 @@ -"aa" = (/turf/exterior/open,/area/exoplanet/outreach) -"ab" = (/turf/simulated/floor/plating,/area/exoplanet/outreach) -"ac" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/barracks/fourth) -"ad" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"ae" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"af" = (/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"ag" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"ah" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"ai" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"ak" = (/turf/simulated/open,/area/outreach/outpost/barracks/fourth) -"al" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"am" = (/obj/structure/bed/padded,/obj/item/bedsheet/blue,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"an" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"ao" = (/obj/machinery/atm{pixel_x = 24},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"ap" = (/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aq" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"ar" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"as" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"at" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"au" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/maint) -"av" = (/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"ax" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"ay" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"az" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aA" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aE" = (/obj/structure/cable/green{icon_state = "32-2"},/turf/simulated/open,/area/outreach/outpost/maint) -"aF" = (/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers,/obj/machinery/atmospherics/pipe/zpipe/down/supply,/turf/simulated/open,/area/outreach/outpost/maint) -"aG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aI" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"aJ" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"aK" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"aL" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aN" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/fourth) -"aO" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"aP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/cable/green{icon_state = "2-4"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aQ" = (/obj/machinery/power/apc/critical{dir = 4; pixel_x = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"aT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aX" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"aY" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"aZ" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/airlock_sensor{id_tag = "outreach_4_exterior_sensor"; pixel_x = 24},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"ba" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/hallway) -"bb" = (/obj/machinery/door/airlock/maintenance,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bc" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/fourth) -"bd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/fourth) -"be" = (/obj/machinery/door/airlock/double/civilian,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/fourth) -"bf" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable/green{dir = 2; icon_state = "0-2"},/obj/machinery/power/apc/critical{dir = 1; pixel_y = 24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bh" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bi" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bj" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor/autoset,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bk" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bl" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bm" = (/obj/effect/floor_decal/industrial/warning{icon_state = "stripe"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 4; icon_state = "map_vent"; id_tag = "outreach_4_pump_out_external"},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"bn" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bp" = (/obj/effect/decal/cleanable/dirt,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bq" = (/turf/simulated/open,/area/outreach/outpost/hallway) -"br" = (/obj/machinery/light{icon_state = "tube_map"; dir = 1},/turf/simulated/open,/area/outreach/outpost/hallway) -"bs" = (/obj/machinery/door/airlock/external{id_tag = "outreach_4_outer"},/obj/machinery/button/access/exterior{id_tag = "outreach_4"; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden{icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"bt" = (/obj/structure/cable/green{icon_state = "1-4"},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/obj/machinery/power/apc/critical{dir = 8; icon_state = "apc0"; pixel_x = -24},/obj/structure/cable/green{icon_state = "0-4"},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"bu" = (/obj/effect/floor_decal/industrial/hatch/orange,/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{dir = 8; icon_state = "map_vent"; id_tag = "outreach_4_pump_out_internal"},/obj/machinery/airlock_sensor{id_tag = "outreach_4_sensor"; pixel_x = 0; pixel_y = 24},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"bv" = (/obj/machinery/door/airlock/external{id_tag = "outreach_4_inner"},/obj/machinery/button/access/interior{id_tag = "outreach_4"; pixel_y = 24},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"bw" = (/obj/effect/catwalk_plated,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/green{icon_state = "1-4"},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bx" = (/obj/effect/catwalk_plated,/obj/structure/cable/green{icon_state = "1-4"},/obj/structure/cable/green{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"by" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "stripecorner"; dir = 4},/turf/simulated/floor/tiled/techmaint,/area/outreach/outpost/hallway) -"bz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/catwalk_plated,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/filth,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{icon_state = "4-8"},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/firedoor/autoset,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/monotile,/area/outreach/outpost/hallway) -"bD" = (/obj/structure/cable/green{icon_state = "1-8"},/obj/structure/cable/green{icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/obj/effect/catwalk_plated,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bE" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bF" = (/obj/machinery/atmospherics/pipe/manifold/hidden{icon_state = "map"; dir = 8},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"bG" = (/obj/machinery/atmospherics/binary/passive_gate/on{dir = 4; icon_state = "map_on"; regulate_mode = 1; target_pressure = 300},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"bH" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bI" = (/obj/effect/floor_decal/industrial/hatch/orange,/obj/machinery/embedded_controller/radio/airlock/airlock_controller{cycle_to_external_air = 1; frequency = 1381; id_tag = "outreach_4"; pixel_y = 24; tag_airpump = null; tag_exterior_door = null; tag_interior_door = null},/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{id_tag = "outreach_4_pump"},/turf/simulated/floor/tiled/techfloor/grid,/area/outreach/outpost/hallway) -"bJ" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/obj/structure/railing/mapped,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"bK" = (/obj/machinery/atmospherics/binary/passive_gate/on{icon_state = "map_on"; dir = 8},/obj/structure/railing/mapped,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"bL" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bN" = (/obj/machinery/light,/turf/simulated/open,/area/outreach/outpost/hallway) -"bO" = (/obj/effect/wallframe_spawn/reinforced/titanium,/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"bP" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bQ" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"bR" = (/turf/simulated/wall/r_titanium,/area/outreach/outpost/barracks/third) -"bS" = (/obj/machinery/door/airlock/double/civilian,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/third) -"bT" = (/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/third) -"bU" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"bV" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"bW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "2-8"},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"bX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"bY" = (/obj/structure/railing/mapped,/turf/simulated/floor/plating,/area/exoplanet/outreach) -"bZ" = (/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"ca" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"cb" = (/obj/structure/railing/mapped,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"cc" = (/obj/structure/railing/mapped,/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"cd" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 4},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 1},/turf/simulated/floor/plating,/area/exoplanet/outreach) -"ce" = (/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/tiled,/area/outreach/outpost/barracks/fourth) -"cf" = (/obj/effect/wallframe_spawn/reinforced/titanium,/turf/simulated/floor/plating,/area/outreach/outpost/hallway) -"cg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"ch" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/airlock_sensor{id_tag = "outreach_4_interior_sensor"; pixel_x = -24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"ci" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cj" = (/turf/exterior/planet_edge,/area/exoplanet/outreach) -"ck" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cm" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cn" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atm{pixel_x = -24},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"co" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cp" = (/obj/structure/bed/padded,/obj/item/bedsheet/blue,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cq" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/alarm{dir = 1; pixel_y = -24},/turf/simulated/floor/tiled,/area/outreach/outpost/hallway) -"cr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cs" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/alarm{dir = 4; pixel_x = -24},/obj/structure/cable/green{icon_state = "1-4"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"ct" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/power/apc/critical{dir = 4; pixel_x = 24},/obj/structure/cable/green{dir = 2; icon_state = "0-8"},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cu" = (/obj/machinery/door/airlock,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/autoset,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cw" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cx" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 8},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cz" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/third) -"cB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cD" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/third) -"cF" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light/small{icon_state = "bulb_map"; dir = 1},/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/third) -"cG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{icon_state = "map-supply"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cH" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cI" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cJ" = (/turf/simulated/floor/wood/mahogany{icon_state = "wood_broken2"},/area/outreach/outpost/barracks/third) -"cK" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cL" = (/obj/structure/railing/mapped,/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cM" = (/turf/simulated/open,/area/outreach/outpost/barracks/third) -"cN" = (/obj/machinery/atm{pixel_x = 24},/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cS" = (/obj/structure/railing/mapped{icon_state = "railing0-1"; dir = 8},/obj/machinery/light{icon_state = "tube_map"; dir = 4},/turf/simulated/floor/wood/mahogany,/area/outreach/outpost/barracks/third) -"cT" = (/obj/structure/undies_wardrobe,/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 1},/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cU" = (/obj/machinery/atmospherics/unary/vent_pump/on{icon_state = "map_vent_out"; dir = 1},/obj/machinery/light/small,/turf/simulated/floor/carpet/blue2,/area/outreach/outpost/barracks/third) -"cV" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{icon_state = "map_scrubber_on"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"cW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{icon_state = "map-scrubbers"; dir = 4},/turf/simulated/floor/plating,/area/outreach/outpost/maint) -"cX" = (/obj/abstract/map_data{height = 4},/obj/effect/overmap/visitable/sector/exoplanet/outreach,/turf/exterior/planet_edge,/area/exoplanet/outreach) +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/exterior/open, +/area/exoplanet/outreach) +"ab" = ( +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"ac" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/barracks/fourth) +"ad" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"ae" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"af" = ( +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"ag" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"ah" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"ai" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"ak" = ( +/turf/simulated/open, +/area/outreach/outpost/barracks/fourth) +"al" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"am" = ( +/obj/structure/bed/padded, +/obj/item/bedsheet/blue, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"an" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"ao" = ( +/obj/machinery/atm{ + pixel_x = 24 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"ap" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aq" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"ar" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"as" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"at" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"au" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/maint) +"av" = ( +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aw" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"ax" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"ay" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"az" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aA" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aC" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aE" = ( +/obj/structure/cable/green{ + icon_state = "32-2" + }, +/turf/simulated/open, +/area/outreach/outpost/maint) +"aF" = ( +/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers, +/obj/machinery/atmospherics/pipe/zpipe/down/supply, +/turf/simulated/open, +/area/outreach/outpost/maint) +"aG" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aH" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aI" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"aJ" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"aK" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"aL" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aM" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aN" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/fourth) +"aO" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"aP" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable/green{ + icon_state = "2-4" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aQ" = ( +/obj/machinery/power/apc/critical{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"aT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aV" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atm{ + pixel_x = -24 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aX" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"aY" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"aZ" = ( +/obj/effect/floor_decal/industrial/warning/corner, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_4_exterior_sensor"; + pixel_x = 24 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"ba" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/hallway) +"bb" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bc" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/fourth) +"bd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/fourth) +"be" = ( +/obj/machinery/door/airlock/double/civilian, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/fourth) +"bf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/critical{ + dir = 1; + pixel_y = 24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bi" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bj" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/autoset, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bm" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "stripe"; + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + icon_state = "map_vent"; + id_tag = "outreach_4_pump_out_external" + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"bn" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bo" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bq" = ( +/turf/simulated/open, +/area/outreach/outpost/hallway) +"br" = ( +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 1 + }, +/turf/simulated/open, +/area/outreach/outpost/hallway) +"bs" = ( +/obj/machinery/door/airlock/external{ + id_tag = "outreach_4_outer" + }, +/obj/machinery/button/access/exterior{ + id_tag = "outreach_4"; + pixel_y = -24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + icon_state = "intact"; + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"bt" = ( +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/obj/machinery/power/apc/critical{ + dir = 8; + icon_state = "apc0"; + pixel_x = -24 + }, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"bu" = ( +/obj/effect/floor_decal/industrial/hatch/orange, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + icon_state = "map_vent"; + id_tag = "outreach_4_pump_out_internal" + }, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_4_sensor"; + pixel_x = 0; + pixel_y = 24 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"bv" = ( +/obj/machinery/door/airlock/external{ + id_tag = "outreach_4_inner" + }, +/obj/machinery/button/access/interior{ + id_tag = "outreach_4"; + pixel_y = 24 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"bw" = ( +/obj/effect/catwalk_plated, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bx" = ( +/obj/effect/catwalk_plated, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"by" = ( +/obj/effect/floor_decal/industrial/warning/corner{ + icon_state = "stripecorner"; + dir = 4 + }, +/turf/simulated/floor/tiled/techmaint, +/area/outreach/outpost/hallway) +"bz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bA" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/catwalk_plated, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/filth, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/door/firedoor/autoset, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/monotile, +/area/outreach/outpost/hallway) +"bD" = ( +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/obj/effect/catwalk_plated, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bE" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bF" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + icon_state = "map"; + dir = 8 + }, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"bG" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + dir = 4; + icon_state = "map_on"; + regulate_mode = 1; + target_pressure = 300 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"bH" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bI" = ( +/obj/effect/floor_decal/industrial/hatch/orange, +/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ + cycle_to_external_air = 1; + frequency = 1381; + id_tag = "outreach_4"; + pixel_y = 24; + tag_airpump = null; + tag_exterior_door = null; + tag_interior_door = null + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "outreach_4_pump" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/outreach/outpost/hallway) +"bJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 5; + icon_state = "intact" + }, +/obj/structure/railing/mapped, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"bK" = ( +/obj/machinery/atmospherics/binary/passive_gate/on{ + icon_state = "map_on"; + dir = 8 + }, +/obj/structure/railing/mapped, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"bL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bN" = ( +/obj/machinery/light, +/turf/simulated/open, +/area/outreach/outpost/hallway) +"bO" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"bP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"bR" = ( +/turf/simulated/wall/r_titanium, +/area/outreach/outpost/barracks/third) +"bS" = ( +/obj/machinery/door/airlock/double/civilian, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/third) +"bT" = ( +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/third) +"bU" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"bV" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"bW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "2-8" + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"bX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"bY" = ( +/obj/structure/railing/mapped, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"bZ" = ( +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"ca" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"cb" = ( +/obj/structure/railing/mapped, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"cc" = ( +/obj/structure/railing/mapped, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"cd" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 4 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/exoplanet/outreach) +"ce" = ( +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/tiled, +/area/outreach/outpost/barracks/fourth) +"cf" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/turf/simulated/floor/plating, +/area/outreach/outpost/hallway) +"cg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"ch" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/airlock_sensor{ + id_tag = "outreach_4_interior_sensor"; + pixel_x = -24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"ci" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cj" = ( +/turf/exterior/planet_edge, +/area/exoplanet/outreach) +"ck" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atm{ + pixel_x = -24 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"co" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cp" = ( +/obj/structure/bed/padded, +/obj/item/bedsheet/blue, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -24 + }, +/turf/simulated/floor/tiled, +/area/outreach/outpost/hallway) +"cr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cs" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"ct" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/power/apc/critical{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/cable/green{ + dir = 2; + icon_state = "0-8" + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cu" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor/autoset, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cw" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cx" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 8 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cy" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/third) +"cB" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cD" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cE" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/third) +"cF" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/light/small{ + icon_state = "bulb_map"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/third) +"cG" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + icon_state = "map-supply"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cH" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cI" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cJ" = ( +/turf/simulated/floor/wood/mahogany{ + icon_state = "wood_broken2" + }, +/area/outreach/outpost/barracks/third) +"cK" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cL" = ( +/obj/structure/railing/mapped, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cM" = ( +/turf/simulated/open, +/area/outreach/outpost/barracks/third) +"cN" = ( +/obj/machinery/atm{ + pixel_x = 24 + }, +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cS" = ( +/obj/structure/railing/mapped{ + icon_state = "railing0-1"; + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube_map"; + dir = 4 + }, +/turf/simulated/floor/wood/mahogany, +/area/outreach/outpost/barracks/third) +"cT" = ( +/obj/structure/undies_wardrobe, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 1 + }, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cU" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + icon_state = "map_vent_out"; + dir = 1 + }, +/obj/machinery/light/small, +/turf/simulated/floor/carpet/blue2, +/area/outreach/outpost/barracks/third) +"cV" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + icon_state = "map_scrubber_on"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"cW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + icon_state = "map-scrubbers"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/outreach/outpost/maint) +"cX" = ( +/obj/abstract/level_data/exoplanet/outreach, +/turf/exterior/planet_edge, +/area/exoplanet/outreach) +"cY" = ( +/obj/effect/overmap/visitable/sector/exoplanet/outreach, +/turf/exterior/planet_edge, +/area/exoplanet/outreach) +"cZ" = ( +/obj/abstract/map_data{ + height = 4 + }, +/turf/exterior/planet_edge, +/area/exoplanet/outreach) (1,1,1) = {" -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacacacacacacacacacacacacacacacacacacacacacacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacadaeacaeadacadaeacaeadacafafacadaeacaeadacadaeacaeadacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacagahacaiajacagahacaiajacakalacagahacaiajacagahacaiajacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacamanacanamacamanacanamacakaoacamanacanamacamanacanamacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacapacapacacacapacapacacaqafacacapacapacacacapacapacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacafarasarafatavarasaravatafafawavaraxarafawavaraxarafacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauauauacavayazaAaBaCaDaAazaAaDaGaHaDazaDaAaGaAaDaLaDaAaGaMafacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaEaFacacapacapacacacapacapacacaraNacacapacapacacacapacapacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaubtbWacamanacanamacamanacanamacaPaQacamanacanamacamanacanamacabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaJaJaJaJauaOaSacaRaTacaUaVacaRaTacaUaVacaWaXacaRaTacaUaVacaRaTacaUaVacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababaucVcWacaYbcacbcaYacaYbcacbcaYacbdafacaYbcacbcaYacaYbcacbcaYacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaJaJaJaJaJaJaJaJaJabababababbababbacacacacacacacacacacacacacbeceacacacacacacacacacacacacacababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababaZbababababfbgbhbibhblbhbibjbkbhblbkbnbhbobpbqbqbqbrbqbqcfabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababbmbsbubIbvbwbxbzbAbBbzbzbAbCbzbzbzbzbAbzbDbpbqbqbqbqbqbqcfabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababbybabEbHbachbhbhbLbkbMbhbLbjbhcqbMbhbLbhbobpbqbqbqbNbqbqcfabababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababbFbGbObPbhbRbRbRbRbRbRbRbRbRbRbRbRbRbSbTbRbRbRbRbRbRbRbRbRbRbRbRbRababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababbJbKbObQcibRbUbVbRbVbUbRbUbVbRbVbUbRbXbZbRbUbVbRbVbUbRbUbVbRbVbUbRababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababababcfcfcfbRcgckbRclcmbRcgckbRclcmbRcncobRcgckbRclcmbRcgckbRclcmbRababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabababababababababababababababababbRcpcrbRcrcpbRcpcrbRcrcpbRcsctbRcpcrbRcrcpbRcpcrbRcrcpbRabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaJaJababababababababababababababababababbRbRcubRcubRbRbRcubRcubRbRcvcwbRbRcubRcubRbRbRcubRcubRbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababababababababababbRbZcxcyczcAcBcCczcyczcCcDcEcCcycCczcDczcCcFcCczcDcGbZbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababababababababababbRbZcvcHcvbZcIcJcvcHcvcJcIbZbZcwbZcvcKcvcJcwbZcvcKcvcJbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababababababababababbRbRcubRcubRbRbRcubRcubRbRcLcJbRbRcubRcubRbRbRcubRcubRbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababababababbYbYbYbYbRcpcrbRcrcpbRcpcrbRcrcpbRcMcNbRcpcrbRcrcpbRcpcrbRcrcpbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabababababababababababababababcaaaaaaaaabRcOcPbRcQcRbRcOcPbRcQcRbRcMcSbRcOcPbRcQcRbRcOcPbRcQcRbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabababababababababababababababcaaaaaaaaabRcTcUbRcUcTbRcTcUbRcUcTbRbZcJbRcTcUbRcUcTbRcTcUbRcUcTbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabababababababababababababababcaaaaaaaaabRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRbRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaJaJabababababababababababababbYbYbYcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccbYbYababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababababababababababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKababababbYbYbYbYbYbYbYbYcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabababcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccabababcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaKabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccbYcbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj -cXcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjcj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cX +cY +"} +(2,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cZ +"} +(3,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(4,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(5,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(6,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(7,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(8,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(9,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(10,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(11,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(12,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(13,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(14,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(15,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(16,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(17,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(18,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(19,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(20,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(21,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(22,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(23,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(24,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(25,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(26,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(27,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(28,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(29,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(30,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(31,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(32,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(33,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(34,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(35,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(36,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(37,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(38,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(39,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(40,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(41,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(42,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(43,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(44,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(45,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(46,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(47,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(48,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(49,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(50,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(51,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(52,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(53,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(54,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(55,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(56,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(57,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(58,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(59,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(60,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(61,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(62,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(63,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(64,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(65,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(66,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(67,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(68,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(69,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(70,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(71,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(72,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(73,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(74,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(75,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(76,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(77,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(78,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(79,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(80,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(81,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(82,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(83,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(84,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(85,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(86,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(87,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(88,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aI +aK +cc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(89,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(90,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(91,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aI +aK +aK +aK +aK +aK +aK +aK +ab +ab +ab +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +aK +cc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(92,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aK +aK +cc +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(93,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(94,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aI +aK +aK +aK +aK +aK +aK +aK +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ca +ca +cb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(95,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ca +ca +cb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(96,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(97,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(98,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(99,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(100,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(101,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(102,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(103,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ca +ca +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(104,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aI +aK +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +cd +ca +ca +ca +ca +ca +ca +ca +ca +cb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(105,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +aZ +bm +by +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(106,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ba +bs +ba +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(107,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ba +bu +bE +bF +bJ +ab +ab +ab +ab +ab +ab +ab +ca +ca +ca +cb +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(108,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aJ +ab +ab +ba +bI +bH +bG +bK +ab +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(109,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +au +au +au +au +au +ba +ba +bv +ba +bO +bO +cf +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(110,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +au +aE +bt +aO +cV +ba +bf +bw +ch +bP +bQ +cf +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(111,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +au +aF +bW +aS +cW +bb +bg +bx +bh +bh +ci +cf +ab +ab +ab +ab +ab +bY +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(112,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +bh +bz +bh +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(113,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ag +am +ac +af +av +ac +am +aR +aY +ac +bi +bA +bL +bR +bU +cg +cp +bR +bZ +bZ +bR +cp +cO +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(114,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ah +an +ap +ar +ay +ap +an +aT +bc +ac +bh +bB +bk +bR +bV +ck +cr +cu +cx +cv +cu +cr +cP +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(115,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +as +az +ac +ac +ac +ac +ac +bl +bz +bM +bR +bR +bR +bR +bR +cy +cH +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(116,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ai +an +ap +ar +aA +ap +an +aU +bc +ac +bh +bz +bh +bR +bV +cl +cr +cu +cz +cv +cu +cr +cQ +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(117,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +aj +am +ac +af +aB +ac +am +aV +aY +ac +bi +bA +bL +bR +bU +cm +cp +bR +cA +bZ +bR +cp +cR +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(118,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +at +aC +ac +ac +ac +ac +ac +bj +bC +bj +bR +bR +bR +bR +bR +cB +cI +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(119,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ag +am +ac +av +aD +ac +am +aR +aY +ac +bk +bz +bh +bR +bU +cg +cp +bR +cC +cJ +bR +cp +cO +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(120,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ah +an +ap +ar +aA +ap +an +aT +bc +ac +bh +bz +cq +bR +bV +ck +cr +cu +cz +cv +cu +cr +cP +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(121,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +as +az +ac +ac +ac +ac +ac +bl +bz +bM +bR +bR +bR +bR +bR +cy +cH +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(122,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ai +an +ap +ar +aA +ap +an +aU +bc +ac +bk +bz +bh +bR +bV +cl +cr +cu +cz +cv +cu +cr +cQ +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(123,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +aj +am +ac +av +aD +ac +am +aV +aY +ac +bn +bA +bL +bR +bU +cm +cp +bR +cC +cJ +bR +cp +cR +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(124,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +at +aG +ac +ac +ac +ac +ac +bh +bz +bh +bR +bR +bR +bR +bR +cD +cI +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(125,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +af +ak +ak +aq +af +aH +ar +aP +aW +bd +be +bo +bD +bo +bS +bX +cn +cs +cv +cE +bZ +cL +cM +cM +bZ +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(126,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +af +al +ao +af +af +aD +aN +aQ +aX +af +ce +bp +bp +bp +bT +bZ +co +ct +cw +cC +bZ +cJ +cN +cS +cJ +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(127,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aw +az +ac +ac +ac +ac +ac +bq +bq +bq +bR +bR +bR +bR +bR +cy +cw +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(128,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ag +am +ac +av +aD +ac +am +aR +aY +ac +bq +bq +bq +bR +bU +cg +cp +bR +cC +bZ +bR +cp +cO +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(129,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ah +an +ap +ar +aA +ap +an +aT +bc +ac +bq +bq +bq +bR +bV +ck +cr +cu +cz +cv +cu +cr +cP +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(130,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ax +aG +ac +ac +ac +ac +ac +br +bq +bN +bR +bR +bR +bR +bR +cD +cK +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(131,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ai +an +ap +ar +aA +ap +an +aU +bc +ac +bq +bq +bq +bR +bV +cl +cr +cu +cz +cv +cu +cr +cQ +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(132,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +aj +am +ac +af +aD +ac +am +aV +aY +ac +bq +bq +bq +bR +bU +cm +cp +bR +cC +cJ +bR +cp +cR +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(133,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +aw +aL +ac +ac +ac +ac +ac +cf +cf +cf +bR +bR +bR +bR +bR +cF +cw +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(134,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +ag +am +ac +av +aD +ac +am +aR +aY +ac +ab +ab +ab +bR +bU +cg +cp +bR +cC +bZ +bR +cp +cO +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(135,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ah +an +ap +ar +aA +ap +an +aT +bc +ac +ab +ab +ab +bR +bV +ck +cr +cu +cz +cv +cu +cr +cP +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(136,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ax +aG +ac +ac +ac +ac +ac +ab +ab +ab +bR +bR +bR +bR +bR +cD +cK +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(137,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ai +an +ap +ar +aM +ap +an +aU +bc +ac +ab +ab +ab +bR +bV +cl +cr +cu +cG +cv +cu +cr +cQ +cU +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(138,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ad +aj +am +ac +af +af +ac +am +aV +aY +ac +ab +ab +ab +bR +bU +cm +cp +bR +bZ +cJ +bR +cp +cR +cT +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(139,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ab +ab +ab +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(140,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(141,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(142,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(143,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(144,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(145,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(146,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(147,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(148,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(149,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(150,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(151,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(152,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(153,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(154,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(155,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(156,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(157,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(158,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(159,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(160,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(161,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(162,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(163,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(164,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(165,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(166,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(167,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(168,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(169,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(170,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(171,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(172,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(173,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(174,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(175,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(176,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(177,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(178,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(179,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(180,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(181,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(182,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(183,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(184,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(185,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(186,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(187,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(188,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(189,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(190,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(191,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(192,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(193,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +cj +cj +cj +cj +cj +cj +cj +"} +(194,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(195,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(196,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(197,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(198,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(199,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +"} +(200,1,1) = {" +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj +cj "} diff --git a/maps/outreach/outreach_defines.dm b/maps/outreach/outreach_defines.dm index d9123ca83fc..7e19c19bf0f 100644 --- a/maps/outreach/outreach_defines.dm +++ b/maps/outreach/outreach_defines.dm @@ -28,6 +28,8 @@ starting_money = 5000 department_money = 0 salary_modifier = 0.2 + num_exoplanets = 0 + overmap_ids = list(OVERMAP_ID_SPACE = /datum/overmap) //Default to null overmap, which prevents overmap marker from initializing properly /datum/map/outreach/get_map_info() return "You are en route to Outreach, a desolate planet previously targeted for mining operations, but now largely abandoned. Judges - corporate law enforcement - remain in the sector to keep the order. Colonists come from a wide variety of backgrounds, but universally with only the shirt on their backs." \ No newline at end of file diff --git a/maps/outreach/outreach_exoplanet.dm b/maps/outreach/outreach_exoplanet.dm index 874e6ebe9e4..c8a275372a9 100644 --- a/maps/outreach/outreach_exoplanet.dm +++ b/maps/outreach/outreach_exoplanet.dm @@ -22,9 +22,8 @@ fauna_types = list(/mob/living/simple_animal/thinbug, /mob/living/simple_animal/hostile/retaliate/beast/samak/alt, /mob/living/simple_animal/yithian, /mob/living/simple_animal/tindalos, /mob/living/simple_animal/hostile/retaliate/jelly) megafauna_types = list(/mob/living/simple_animal/hostile/retaliate/jelly/mega) - -/obj/effect/overmap/visitable/sector/exoplanet/outreach/Initialize(var/mapload, var/z_level) - . = ..(mapload, global.using_map.station_levels[4]) +/obj/effect/overmap/visitable/sector/exoplanet/outreach/Initialize() + . = ..() docking_codes = "[global.using_map.dock_name]" // Build Level workaround @@ -34,36 +33,16 @@ y_origin = TRANSITIONEDGE + 1 x_size = maxx - 2 * (TRANSITIONEDGE + 1) y_size = maxy - 2 * (TRANSITIONEDGE + 1) - landing_points_to_place = min(round(0.1 * (x_size * y_size) / (shuttle_size * shuttle_size)), 3) + landing_points_to_place = 0 planetary_area = ispath(planetary_area) ? new planetary_area : planetary_area generate_habitability() generate_atmosphere() - generate_flora() generate_planet_image() START_PROCESSING(SSobj, src) -/obj/effect/overmap/visitable/sector/exoplanet/outreach/update_daynight() - var/light = 0.05 - if(!night) - light = 0.5 - for(var/turf/exterior/T in block(locate(daycolumn, TRANSITIONEDGE, max(map_z)), locate(daycolumn,maxy - TRANSITIONEDGE, max(map_z)))) - T.set_light(light, 0.1, 2) - daycolumn++ - if(daycolumn > maxx) - daycolumn = 0 - - /obj/effect/overmap/visitable/sector/exoplanet/outreach/generate_habitability() habitability_class = HABITABILITY_BAD /obj/effect/overmap/visitable/sector/exoplanet/outreach/get_atmosphere_color() return COLOR_GREEN_GRAY - -/obj/effect/overmap/visitable/sector/exoplanet/outreach/generate_atmosphere() - atmosphere = new - atmosphere.adjust_gas(/decl/material/gas/chlorine, MOLES_CELLSTANDARD * 0.17) - atmosphere.adjust_gas(/decl/material/gas/carbon_dioxide, MOLES_CELLSTANDARD * 0.11) - atmosphere.adjust_gas(/decl/material/gas/nitrogen, MOLES_CELLSTANDARD * 0.63) - atmosphere.temperature = T0C + 7 - atmosphere.update_values() \ No newline at end of file diff --git a/maps/outreach/outreach_test.dm b/maps/outreach/outreach_test.dm index 2502fc6576a..14f6e0a862d 100644 --- a/maps/outreach/outreach_test.dm +++ b/maps/outreach/outreach_test.dm @@ -1,11 +1,5 @@ /datum/map/outreach #ifndef UNIT_TEST - station_levels = list(1, 2, 3, 4) - contact_levels = list(1, 2, 3, 4) - player_levels = list(1, 2, 3, 4) - saved_levels = list(3, 4) - mining_levels = list(1, 2) - // Hotloading module default_levels = list( "1" = "maps/outreach/outreach-1.dmm", @@ -14,20 +8,7 @@ "4" = "maps/outreach/outreach-4.dmm" ) - // A list of turfs and their default turfs for serialization optimization. - base_turf_by_z = list( - "1" = /turf/exterior/barren, - "2" = /turf/exterior/barren, - "3" = /turf/exterior/barren, - "4" = /turf/simulated/open - ) #else - station_levels = list(4, 5, 6, 7) - contact_levels = list(4, 5, 6, 7) - player_levels = list(4, 5, 6, 7) - saved_levels = list(6, 7) - mining_levels = list(4, 5) - default_levels = list( "4" = "maps/outreach/outreach-1.dmm", "5" = "maps/outreach/outreach-2.dmm", @@ -35,14 +16,19 @@ "7" = "maps/outreach/outreach-4.dmm" ) - // A list of turfs and their default turfs for serialization optimization. - base_turf_by_z = list( - "4" = /turf/exterior/barren, - "5" = /turf/exterior/barren, - "6" = /turf/exterior/barren, - "7" = /turf/simulated/open - ) #endif lobby_tracks = list( /decl/music_track/dirtyoldfrogg - ) \ No newline at end of file + ) + +/obj/abstract/level_data/exoplanet/outreach + level_flags = ZLEVEL_PLAYER | ZLEVEL_SEALED | ZLEVEL_SAVED + base_turf = /turf/exterior/barren + exterior_atmosphere = list( + /decl/material/gas/chlorine = MOLES_CELLSTANDARD, + /decl/material/gas/nitrogen = MOLES_CELLSTANDARD, + ) + +/obj/abstract/level_data/exoplanet/outreach/mining + level_flags = ZLEVEL_PLAYER | ZLEVEL_SEALED | ZLEVEL_SAVED | ZLEVEL_MINING + base_turf = /turf/exterior/barren diff --git a/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm b/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm index b61dad4848b..f038b5a6abb 100644 --- a/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm +++ b/maps/random_ruins/exoplanet_ruins/crashed_pod/crashed_pod.dmm @@ -33,6 +33,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 6 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/wall/r_wall, /area/map_template/crashed_pod) "ag" = ( @@ -98,11 +99,13 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/crashed_pod) "an" = ( /obj/machinery/atmospherics/omni/filter, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/crashed_pod) "ao" = ( @@ -112,6 +115,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/trash/tastybread, /obj/item/chems/drinks/cans/speer, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/crashed_pod) "ap" = ( @@ -180,11 +184,13 @@ }, /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/techfloor, /area/map_template/crashed_pod) "av" = ( /obj/machinery/atmospherics/omni/filter, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/techfloor, /area/map_template/crashed_pod) "aw" = ( @@ -192,6 +198,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/crashed_pod) "ax" = ( @@ -234,6 +241,7 @@ /obj/machinery/atmospherics/pipe/simple/visible/red{ dir = 5 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/wall, /area/map_template/crashed_pod) "aE" = ( @@ -452,7 +460,6 @@ /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/light{ dir = 1 }, diff --git a/maps/random_ruins/exoplanet_ruins/monoliths/monoliths.dm b/maps/random_ruins/exoplanet_ruins/monoliths/monoliths.dm index 98d6316b1a4..f9709e56936 100644 --- a/maps/random_ruins/exoplanet_ruins/monoliths/monoliths.dm +++ b/maps/random_ruins/exoplanet_ruins/monoliths/monoliths.dm @@ -22,7 +22,7 @@ . = ..() icon_state = "jaggy[rand(1,4)]" - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(z)] if(istype(E)) desc += "\nThere are images on it: [E.get_engravings()]" update_icon() @@ -47,7 +47,7 @@ /obj/structure/monolith/attack_hand(mob/user) visible_message("\The [user] touches \the [src].") if(istype(user, /mob/living/carbon/human)) - var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors["[z]"] + var/obj/effect/overmap/visitable/sector/exoplanet/E = global.overmap_sectors[num2text(z)] if(istype(E)) var/mob/living/carbon/human/H = user if(!H.isSynthetic()) diff --git a/maps/random_ruins/exoplanet_ruins/oldpod/oldpod.dmm b/maps/random_ruins/exoplanet_ruins/oldpod/oldpod.dmm index e2c5d115b68..44c9a9bfe0f 100644 --- a/maps/random_ruins/exoplanet_ruins/oldpod/oldpod.dmm +++ b/maps/random_ruins/exoplanet_ruins/oldpod/oldpod.dmm @@ -46,6 +46,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/map_template/oldpod) "ai" = ( @@ -62,6 +63,7 @@ /obj/machinery/atmospherics/portables_connector{ dir = 8 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/map_template/oldpod) "ak" = ( @@ -147,6 +149,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/monotile, /area/map_template/oldpod) "av" = ( @@ -155,6 +158,7 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/monotile, /area/map_template/oldpod) "aw" = ( diff --git a/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm b/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm index 32cb98e13df..d6b27e9f581 100644 --- a/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm +++ b/maps/random_ruins/exoplanet_ruins/playablecolony/colony.dmm @@ -394,15 +394,15 @@ /turf/exterior/concrete, /area/template_noop) "bf" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 8 }, /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, /turf/simulated/floor/tiled/techfloor, /area/map_template/colony/command) "bg" = ( @@ -441,15 +441,13 @@ /turf/simulated/floor/tiled/techfloor, /area/map_template/colony) "bk" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /turf/simulated/floor/tiled/techfloor, /area/map_template/colony/command) "bl" = ( @@ -2405,6 +2403,7 @@ /area/map_template/colony/atmospherics) "fi" = ( /obj/machinery/atmospherics/pipe/simple/visible/black, +/obj/abstract/landmark/allowed_leak, /turf/exterior/concrete, /area/template_noop) "fj" = ( @@ -3662,6 +3661,7 @@ /obj/structure/railing/mapped{ dir = 8 }, +/obj/abstract/landmark/allowed_leak, /turf/exterior/concrete, /area/template_noop) "hr" = ( @@ -7853,6 +7853,19 @@ /obj/structure/reagent_dispensers/watertank, /turf/simulated/floor/tiled/techfloor/grid, /area/map_template/colony/hydroponics) +"CM" = ( +/obj/effect/floor_decal/techfloor{ + dir = 1 + }, +/obj/effect/floor_decal/corner/blue{ + dir = 10 + }, +/obj/effect/floor_decal/techfloor/hole/right{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/tiled/techfloor, +/area/map_template/colony/command) "Dj" = ( /obj/machinery/portable_atmospherics/hydroponics, /obj/machinery/light{ @@ -9137,7 +9150,7 @@ os (28,1,1) = {" ad aD -aV +CM bk bC ac diff --git a/maps/tradeship/tradeship-0.dmm b/maps/tradeship/tradeship-0.dmm index 4803a2085b8..2b3c0e8b655 100644 --- a/maps/tradeship/tradeship-0.dmm +++ b/maps/tradeship/tradeship-0.dmm @@ -641,8 +641,6 @@ level = 2 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/table/gamblingtable, -/obj/item/chems/food/fish/mollusc, /obj/item/trash/mollusc_shell/clam, /turf/simulated/floor, /area/ship/trade/disused) @@ -749,7 +747,6 @@ name = "shank" }, /obj/item/synthesized_instrument/synthesizer, -/obj/item/twohanded/spear, /turf/simulated/floor, /area/ship/trade/fore_port_underside_maint) "bE" = ( @@ -1097,7 +1094,6 @@ /turf/simulated/floor/carpet/green, /area/ship/trade/disused) "hc" = ( -/obj/item/megaphone, /obj/item/radio, /obj/structure/table/woodentable/walnut, /turf/simulated/floor/wood/walnut, @@ -1159,6 +1155,10 @@ "jT" = ( /turf/simulated/floor/airless, /area/ship/trade/livestock) +"kH" = ( +/obj/structure/window/reinforced, +/turf/simulated/floor, +/area/ship/trade/loading_bay) "kO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -1587,9 +1587,6 @@ /obj/random/trash, /turf/simulated/floor, /area/ship/trade/loading_bay) -"zw" = ( -/turf/simulated/floor/carpet/green, -/area/ship/trade/disused) "AG" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -1604,6 +1601,9 @@ /mob/living/simple_animal/mouse, /turf/simulated/floor, /area/ship/trade/aft_starboard_underside_maint) +"AT" = ( +/turf/simulated/floor/carpet/green, +/area/ship/trade/disused) "AZ" = ( /obj/machinery/smartfridge/secure/extract, /turf/simulated/floor/tiled/white, @@ -1631,7 +1631,9 @@ /turf/simulated/floor, /area/ship/trade/fore_port_underside_maint) "Dt" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Tradeship Basement Deck"; +}, /turf/space, /area/space) "Dz" = ( @@ -1820,6 +1822,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, +/obj/random/voidsuit, +/obj/random/voidhelmet, +/obj/structure/closet/emcloset, +/obj/random/voidsuit, +/obj/random/voidhelmet, /turf/simulated/floor, /area/ship/trade/aft_starboard_underside_maint) "KZ" = ( @@ -1993,8 +2000,6 @@ /area/ship/trade/aft_starboard_underside_maint) "Qh" = ( /obj/structure/table/woodentable/mahogany, -/obj/item/gun/launcher/crossbow, -/obj/item/stack/material/rods, /obj/item/cell/crap/empty, /turf/simulated/floor/wood/walnut, /area/ship/trade/disused) @@ -2068,7 +2073,6 @@ pixel_y = 25 }, /obj/effect/decal/cleanable/dirt, -/obj/structure/flora/pottedplant/bamboo, /turf/simulated/floor, /area/ship/trade/disused) "TA" = ( @@ -2083,9 +2087,6 @@ /obj/structure/curtain/medical, /turf/simulated/floor, /area/ship/trade/disused) -"Ux" = ( -/turf/simulated/floor/carpet/red, -/area/ship/trade/disused) "UI" = ( /obj/structure/disposaloutlet{ dir = 4 @@ -2095,6 +2096,10 @@ }, /turf/simulated/floor, /area/ship/trade/loading_bay) +"VT" = ( +/obj/machinery/hologram/holopad/longrange, +/turf/simulated/floor/wood/walnut, +/area/ship/trade/disused) "Xe" = ( /turf/simulated/wall, /area/ship/trade/fore_port_underside_maint) @@ -2130,6 +2135,9 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/ship/trade/undercomms) +"Ym" = ( +/turf/simulated/floor/carpet/red, +/area/ship/trade/disused) "YH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -2187,6 +2195,12 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/ship/trade/livestock) +"ZC" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor, +/area/ship/trade/loading_bay) "ZR" = ( /obj/structure/window/basic, /obj/structure/curtain/open/bed, @@ -4854,7 +4868,7 @@ aa aa SC Ff -Ux +Ym Xe Nq ak @@ -5265,7 +5279,7 @@ aa ab en ae -en +VT DV ax pU @@ -5679,9 +5693,9 @@ JQ JQ ac JQ -sO +kH IQ -sO +ZC tD wG Ky @@ -5756,7 +5770,7 @@ aa aa ab gf -zw +AT JQ Mb ap @@ -5837,8 +5851,8 @@ aa aa aa SC -zw -Ux +AT +Ym JQ Yh Ft @@ -5919,8 +5933,8 @@ aa aa aa SC -zw -Ux +AT +Ym JQ lv DT diff --git a/maps/tradeship/tradeship-1.dmm b/maps/tradeship/tradeship-1.dmm index 39e82c75c17..70abb432e3c 100644 --- a/maps/tradeship/tradeship-1.dmm +++ b/maps/tradeship/tradeship-1.dmm @@ -1641,10 +1641,13 @@ }, /obj/structure/closet/secure_closet{ name = "secure engineering voidsuit locker"; - req_access = list("ACCESS_CHIEF_ENGINEER") + req_access = list("ACCESS_ENGINE_EQUIP") }, /obj/item/clothing/head/helmet/space/void/engineering/salvage, /obj/item/clothing/suit/space/void/engineering/salvage, +/obj/item/tank/oxygen/yellow, +/obj/item/tank/oxygen/yellow, +/obj/item/tank/oxygen/yellow, /turf/simulated/floor/plating, /area/ship/trade/maintenance/storage) "eo" = ( @@ -2044,7 +2047,9 @@ /turf/simulated/floor/tiled/techfloor, /area/ship/trade/maintenance/techstorage) "iS" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Tradeship Cargo Deck"; +}, /turf/space, /area/space) "iW" = ( diff --git a/maps/tradeship/tradeship-2.dmm b/maps/tradeship/tradeship-2.dmm index 503614f2d13..329624a3a4b 100644 --- a/maps/tradeship/tradeship-2.dmm +++ b/maps/tradeship/tradeship-2.dmm @@ -3,31 +3,35 @@ /turf/space, /area/space) "ab" = ( -/obj/structure/shuttle/engine/propulsion/burst/left{ +/obj/structure/bed/chair/comfy/brown{ dir = 1 }, -/turf/simulated/floor/airless, -/area/ship/trade/shuttle/outgoing) -"ac" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ - id_tag = "tradeship_shuttle_pump" +/obj/effect/floor_decal/corner/beige{ + dir = 10 + }, +/obj/item/radio/intercom{ + dir = 8; + pixel_x = 22 }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) +"ac" = ( +/obj/structure/handrail, /obj/machinery/embedded_controller/radio/airlock/docking_port{ - cycle_to_external_air = 1; - dir = 1; - id_tag = "tradeship_shuttle"; - pixel_y = 0; - tag_airpump = "tradeship_shuttle_pump"; - tag_chamber_sensor = "tradeship_shuttle_sensor"; - tag_exterior_door = "tradeship_shuttle_out"; - tag_interior_door = "tradeship_shuttle_in" + id_tag = "bee_star"; + pixel_y = null; + tag_pump_out_external = "bee_pump_out_external"; + tag_interior_sensor = "bee_interior_sensor"; + cycle_to_external_air = 1 }, -/obj/structure/cable{ +/obj/structure/cable/orange{ icon_state = "4-8" }, -/obj/effect/shuttle_landmark/docking_arm_port/shuttle, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 10 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "ad" = ( /obj/effect/floor_decal/corner/blue, /obj/effect/floor_decal/corner/yellow{ @@ -216,10 +220,12 @@ /turf/simulated/wall/r_wall, /area/ship/trade/command/captain) "at" = ( -/obj/effect/wallframe_spawn/reinforced/titanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/obj/structure/lattice, +/obj/machinery/light/navigation/delay5{ + color = "#00ff00" + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "au" = ( /obj/structure/cable{ icon_state = "1-2" @@ -383,8 +389,11 @@ /turf/simulated/floor/plating, /area/ship/trade/maintenance/hallway) "aL" = ( -/turf/simulated/wall/titanium, -/area/ship/trade/shuttle/outgoing) +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/door/firedoor, +/obj/effect/paint/sun, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "aM" = ( /obj/effect/wallframe_spawn/reinforced, /obj/machinery/door/blast/regular{ @@ -586,7 +595,9 @@ dir = 4; pixel_x = 24 }, -/obj/machinery/computer/shuttle_control/explore/tradeship, +/obj/machinery/computer/shuttle_control/explore/tradeship{ + dir = 8 + }, /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) "bf" = ( @@ -603,22 +614,32 @@ /turf/simulated/floor/plating, /area/ship/trade/command/bridge) "bg" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/structure/emergency_dispenser/north, -/obj/machinery/floodlight, -/obj/structure/handrail{ - dir = 4 +/obj/effect/floor_decal/corner/beige{ + dir = 6 }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) -"bh" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/obj/structure/bed/chair/shuttle/black{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = 24 + }, +/obj/machinery/light{ + dir = 1; + icon_state = "tube1" + }, +/obj/structure/emergency_dispenser/north, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "bi" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/obj/effect/floor_decal/corner/beige{ + dir = 6 + }, +/obj/structure/bed/chair/shuttle/blue{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "bj" = ( /obj/effect/wallframe_spawn/reinforced, /obj/machinery/door/blast/regular{ @@ -688,24 +709,16 @@ }, /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) -"bp" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/light, -/obj/structure/bed/chair{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) "bq" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8; - level = 2 +/obj/structure/handrail{ + dir = 4 }, -/obj/structure/bed/chair{ - dir = 1 +/obj/machinery/light, +/obj/effect/floor_decal/techfloor/orange{ + dir = 10 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "br" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/emergency_dispenser/north, @@ -790,15 +803,24 @@ /turf/simulated/floor/tiled/steel_ridged, /area/ship/trade/dock) "bx" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/floor_decal/corner/beige{ - dir = 9 + dir = 6 }, -/obj/structure/handrail{ +/obj/effect/floor_decal/industrial/warning{ + dir = 4; + icon_state = "warning" + }, +/obj/structure/cable/orange{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ dir = 4 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/obj/structure/closet/medical_wall/filled{ + pixel_y = -32 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "by" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ dir = 4; @@ -921,19 +943,20 @@ /area/ship/trade/dock) "bH" = ( /obj/machinery/door/airlock/external/bolted{ - id_tag = "tradeship_shuttle_out" + id_tag = "bee_star_outer" }, /obj/machinery/button/access/exterior{ dir = 4; - id_tag = "tradeship_shuttle"; - pixel_x = 12; - pixel_y = -44 + id_tag = "bee_star"; + pixel_x = 16; + pixel_y = -26 }, -/obj/structure/cable{ +/obj/structure/cable/orange{ icon_state = "4-8" }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/obj/structure/sign/warning/docking_area, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "bI" = ( /obj/machinery/button/access/exterior{ dir = 8; @@ -951,45 +974,46 @@ /turf/simulated/floor/tiled/steel_ridged, /area/ship/trade/dock) "bJ" = ( +/obj/structure/handrail, /obj/machinery/airlock_sensor{ - dir = 1; - id_tag = "tradeship_shuttle_sensor"; - pixel_y = 0 + id_tag = "bee_star_sensor" }, -/obj/structure/cable{ +/obj/structure/cable/orange{ icon_state = "4-8" }, -/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ - dir = 1; - id_tag = "tradeship_shuttle_pump_out_internal" +/obj/effect/floor_decal/industrial/warning{ + dir = 4; + icon_state = "warning" }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "bK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/effect/floor_decal/corner/beige{ - dir = 9 + dir = 6 }, /obj/structure/handrail{ - dir = 4 + dir = 8 }, /obj/machinery/button/access/interior{ dir = 8; - id_tag = "tradeship_shuttle"; + id_tag = "bee_star"; pixel_x = 0; pixel_y = 0 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "bL" = ( /obj/machinery/door/airlock/external/bolted{ - id_tag = "tradeship_shuttle_in" + id_tag = "bee_star_inner" }, -/obj/structure/cable{ - icon_state = "4-10" +/obj/structure/cable/orange{ + icon_state = "4-8" }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "bM" = ( /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/techmaint, @@ -1045,25 +1069,48 @@ /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) "cb" = ( -/obj/effect/shuttle_landmark/docking_arm_starboard/pod, -/turf/space, -/area/space) -"cc" = ( -/obj/machinery/door/airlock/hatch, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/structure/cable{ - icon_state = "2-5" + icon_state = "1-8" }, -/obj/structure/sign{ - icon_state = "radiation"; - pixel_x = 32 +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "tradeship_rescue_shuttle_pump_out_internal" + }, +/obj/machinery/airlock_sensor{ + id_tag = "tradeship_rescue_shuttle_sensor"; + pixel_y = 20; + pixel_x = -22 + }, +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + cycle_to_external_air = 1; + id_tag = "tradeship_rescue_shuttle"; + pixel_y = 32; + tag_airpump = "tradeship_rescue_shuttle_pump"; + tag_chamber_sensor = "tradeship_rescue_shuttle_sensor"; + tag_exterior_door = "tradeship_rescue_shuttle_out"; + dir = 4; + pixel_x = -20 + }, +/obj/effect/floor_decal/corner/white{ + dir = 9 }, +/obj/effect/shuttle_landmark/docking_arm_starboard/rescue, /turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/rescue) "cd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/wall/titanium, -/area/ship/trade/shuttle/outgoing) +/obj/machinery/light{ + dir = 8; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 1; + id_tag = "bee_star_pump" + }, +/obj/structure/closet/walllocker/suit{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "cf" = ( /obj/effect/wallframe_spawn/reinforced, /obj/machinery/door/blast/regular{ @@ -1092,23 +1139,9 @@ /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) "cp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/handrail{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) -"cq" = ( -/obj/structure/closet/crate/freezer/rations, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) -"cs" = ( /obj/machinery/atmospherics/unary/tank/air, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/engineering) "ct" = ( /obj/structure/sign/warning/docking_area, /obj/effect/paint/brown, @@ -1139,73 +1172,52 @@ /turf/space, /area/space) "cz" = ( -/obj/machinery/power/apc{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/handrail{ +/obj/machinery/atmospherics/pipe/manifold/hidden/blue{ dir = 4 }, +/obj/machinery/portable_atmospherics/powered/scrubber, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) -"cA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/item/wrench, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/engineering) "cB" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal{ +/obj/structure/handrail{ dir = 4 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "bee_pump_out_external" + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 9 }, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/general) "cC" = ( -/obj/machinery/alarm{ - dir = 8; - pixel_x = 24 +/obj/machinery/atmospherics/pipe/manifold/hidden/red{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/blue{ - dir = 9 +/obj/effect/floor_decal/techfloor/orange{ + dir = 5 }, -/obj/machinery/floodlight, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/general) "cE" = ( /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/port) "cG" = ( /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/starboard) -"cH" = ( -/obj/machinery/light{ - dir = 8 +"cI" = ( +/obj/structure/handrail{ + dir = 4 }, -/obj/structure/closet/crate/uranium, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1; - level = 2 +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 }, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) -"cI" = ( -/obj/structure/cable, -/obj/machinery/port_gen/pacman/super, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/general) "cL" = ( /obj/random/maintenance, /turf/simulated/floor/tiled/techmaint, @@ -1496,6 +1508,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/structure/closet/walllocker, /turf/simulated/floor/tiled/steel_ridged, /area/ship/trade/crew/saloon) "dA" = ( @@ -2237,16 +2250,8 @@ /turf/simulated/floor/tiled, /area/ship/trade/crew/kitchen) "fo" = ( -/obj/structure/table, -/obj/item/glass_extra/straw, -/obj/item/toy/therapy_blue, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/item/defibrillator/compact/loaded, -/obj/machinery/computer/modular/telescreen/preset/medical{ - dir = 8; - pixel_x = 31; - pixel_y = -2 - }, +/obj/structure/closet/crate/freezer, /turf/simulated/floor/tiled/white, /area/ship/trade/crew/medbay) "fp" = ( @@ -2307,6 +2312,11 @@ /obj/item/stack/medical/advanced/bruise_pack, /obj/item/chems/syringe/antibiotic, /obj/item/scanner/health, +/obj/item/defibrillator/compact/loaded, +/obj/item/toy/therapy_blue, +/obj/item/glass_extra/straw, +/obj/item/tank/oxygen/yellow, +/obj/structure/closet/emcloset, /turf/simulated/floor/tiled/white, /area/ship/trade/crew/medbay) "fx" = ( @@ -2760,6 +2770,12 @@ }, /turf/simulated/open, /area/ship/trade/cargo) +"gN" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "gO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -2809,9 +2825,17 @@ /turf/simulated/open, /area/ship/trade/cargo) "hb" = ( -/obj/structure/shuttle/engine/propulsion/burst/left, -/turf/simulated/floor/airless, -/area/ship/trade/shuttle/outgoing) +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/closet/crate/uranium, +/obj/item/wrench, +/obj/structure/cable/orange, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "hd" = ( /obj/structure/closet/crate/uranium, /obj/machinery/button/blast_door{ @@ -3086,6 +3110,7 @@ /obj/random/loot, /obj/random/projectile, /obj/random/projectile, +/obj/item/tank/oxygen/yellow, /turf/simulated/floor/plating, /area/ship/trade/hidden) "hD" = ( @@ -3669,13 +3694,29 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) -"iT" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 +"iS" = ( +/obj/machinery/light{ + dir = 4 }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/ship/trade/maintenance/power) -"iU" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "tradeship_rescue_shuttle_pump" + }, +/obj/effect/floor_decal/corner/white{ + dir = 6 + }, +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) +"iT" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/maintenance/power) +"iU" = ( /obj/machinery/shield_generator, /obj/structure/cable{ icon_state = "0-2"; @@ -4290,6 +4331,14 @@ /obj/structure/lattice, /turf/space, /area/space) +"kr" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/rescue) "ks" = ( /obj/effect/floor_decal/corner/blue, /obj/effect/floor_decal/corner/yellow{ @@ -4405,6 +4454,25 @@ /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, /area/space) +"kX" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8; + level = 2 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) +"lb" = ( +/obj/structure/catwalk, +/obj/structure/handrail{ + dir = 2 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 4; + icon_state = "warning" + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "ld" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel, /obj/machinery/power/apc/high{ @@ -4423,10 +4491,6 @@ /obj/machinery/meter, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) -"lx" = ( -/obj/structure/shuttle/engine/propulsion/burst/right, -/turf/simulated/floor/airless, -/area/ship/trade/shuttle/outgoing) "lC" = ( /obj/machinery/portable_atmospherics/powered/scrubber, /obj/machinery/atmospherics/portables_connector{ @@ -4434,6 +4498,30 @@ }, /turf/simulated/floor/tiled/techfloor, /area/ship/trade/maintenance/atmos) +"lJ" = ( +/obj/structure/table, +/obj/machinery/light{ + dir = 1; + icon_state = "tube1" + }, +/obj/item/deck/tarot, +/obj/machinery/button/blast_door{ + id_tag = "bee_shutters" + }, +/obj/item/stack/medical/bruise_pack, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) +"lW" = ( +/obj/structure/catwalk, +/obj/structure/handrail{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8; + icon_state = "warning" + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "lZ" = ( /obj/structure/sign/redcross{ pixel_w = 32 @@ -4472,6 +4560,19 @@ /obj/machinery/atmospherics/pipe/simple/hidden/fuel, /turf/simulated/floor/plating, /area/ship/trade/maintenance/hallway) +"mf" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + level = 2 + }, +/obj/effect/floor_decal/corner/beige{ + dir = 10 + }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -24 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "ml" = ( /obj/structure/table, /obj/item/storage/toolbox/electrical{ @@ -4482,6 +4583,15 @@ /obj/random/powercell, /turf/simulated/floor/plating, /area/ship/trade/shieldbay) +"mr" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 4 + }, +/obj/structure/cable/orange{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "mt" = ( /obj/item/roller, /obj/structure/hygiene/sink{ @@ -4489,15 +4599,19 @@ }, /turf/simulated/floor/tiled/white, /area/ship/trade/crew/medbay) -"mw" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/hologram/holopad/longrange, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) "my" = ( /obj/machinery/atmospherics/pipe/simple/visible/cyan, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) +"mW" = ( +/obj/structure/cable/orange{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "mX" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall, @@ -4545,18 +4659,38 @@ /obj/effect/paint/brown, /turf/simulated/wall/r_wall, /area/ship/trade/crew/medbay/chemistry) -"nu" = ( -/obj/structure/shuttle/engine/propulsion/burst/right{ +"nm" = ( +/obj/machinery/power/apc{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "tradeship_rescue_shuttle_pump" + }, +/obj/effect/floor_decal/corner/white{ + dir = 6 + }, +/obj/structure/bed/chair{ dir = 1 }, -/turf/simulated/floor/airless, -/area/ship/trade/shuttle/outgoing) +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) "nv" = ( /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 9 }, /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) +"nD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 5 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "nH" = ( /obj/structure/table, /obj/effect/floor_decal/corner/red/diagonal, @@ -4593,13 +4727,16 @@ /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, /area/ship/trade/dock) -"ob" = ( -/obj/machinery/computer/shuttle_control/explore/tradeship, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 +"og" = ( +/obj/structure/handrail{ + dir = 8 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/obj/structure/catwalk, +/obj/structure/railing/mapped{ + dir = 1 + }, +/turf/space, +/area/space) "oi" = ( /obj/machinery/vending/snack{ dir = 4 @@ -4652,6 +4789,39 @@ /obj/effect/paint/brown, /turf/simulated/wall/r_wall, /area/ship/trade/command/fmate) +"oM" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "tradeship_rescue_shuttle_pump_out_internal" + }, +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/corner/white{ + dir = 9 + }, +/obj/effect/floor_decal/corner/white{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) +"oV" = ( +/obj/structure/catwalk, +/obj/structure/handrail{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 4; + icon_state = "warning" + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "pb" = ( /obj/item/radio/intercom{ pixel_y = 22 @@ -4691,6 +4861,13 @@ }, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) +"pv" = ( +/obj/structure/lattice, +/obj/machinery/light/navigation/delay5{ + color = "#ff3333" + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "pG" = ( /obj/structure/closet/crate/uranium, /turf/simulated/floor/plating, @@ -4746,6 +4923,42 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/port) +"qt" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + icon_state = "bulb1" + }, +/obj/structure/closet/crate/freezer/rations, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) +"qv" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"qA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "tradeship_rescue_shuttle_pump_out_internal" + }, +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/corner/white{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) "qE" = ( /obj/machinery/atmospherics/omni/mixer{ active_power_usage = 7500; @@ -4761,6 +4974,14 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/ship/trade/maintenance/atmos) +"qM" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/rescue) "qO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/floor_decal/industrial/outline/yellow, @@ -4811,6 +5032,15 @@ }, /turf/simulated/floor/plating, /area/ship/trade/garden) +"rn" = ( +/obj/machinery/button/access/exterior{ + dir = 4; + id_tag = "bee_star"; + pixel_x = 16; + pixel_y = -26 + }, +/turf/space, +/area/space) "rp" = ( /obj/effect/wallframe_spawn/reinforced, /obj/machinery/door/firedoor, @@ -4861,6 +5091,15 @@ }, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) +"rL" = ( +/obj/effect/floor_decal/corner/beige{ + dir = 9 + }, +/obj/structure/bed/chair/shuttle/white{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "rR" = ( /obj/item/flashlight, /turf/simulated/floor/wood/yew, @@ -4910,12 +5149,49 @@ }, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) +"sj" = ( +/obj/machinery/alarm{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air/airlock{ + start_pressure = 730 + }, +/obj/structure/cable/orange{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "sl" = ( /obj/machinery/atmospherics/unary/engine{ dir = 1 }, /turf/simulated/floor/airless, /area/ship/trade/maintenance/engine/starboard) +"sm" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/red, +/obj/effect/paint/sun, +/obj/machinery/door/blast/regular{ + density = 0; + icon_state = "pdoor0"; + id_tag = "bee_shutters"; + opacity = 0 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"sw" = ( +/obj/structure/handrail, +/obj/structure/catwalk, +/obj/effect/floor_decal/industrial/warning{ + dir = 8; + icon_state = "warning" + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "sz" = ( /obj/machinery/door/blast/regular{ density = 0; @@ -4927,6 +5203,12 @@ }, /turf/simulated/floor/airless, /area/ship/trade/maintenance/engine/starboard) +"sA" = ( +/obj/machinery/door/airlock/hatch, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "sB" = ( /obj/effect/floor_decal/industrial/warning, /obj/structure/sign/warning/fall{ @@ -4939,6 +5221,25 @@ }, /turf/simulated/open, /area/ship/trade/cargo) +"sG" = ( +/obj/effect/floor_decal/corner/beige{ + dir = 9 + }, +/obj/structure/handrail{ + dir = 4 + }, +/obj/machinery/floodlight, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/button/access/interior{ + dir = 4; + id_tag = "bee_port"; + pixel_x = 0; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "sI" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall, @@ -4956,23 +5257,64 @@ "tg" = ( /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) -"tV" = ( -/turf/space, -/area/ship/trade/command/fmate) -"tW" = ( -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id_tag = "scraplock"; - name = "External Blast Doors"; - opacity = 0 +"to" = ( +/obj/structure/closet/crate, +/obj/item/radio, +/obj/item/spaceflare, +/obj/item/clothing/head/helmet/space/void/pilot, +/obj/item/clothing/suit/space/void/pilot, +/obj/item/tank/oxygen, +/obj/item/tank/oxygen, +/obj/item/tank/oxygen, +/obj/effect/floor_decal/corner/beige{ + dir = 9 }, -/turf/simulated/floor/airless, -/area/ship/trade/command/fmate) -"uc" = ( -/obj/machinery/alarm{ - dir = 8; +/obj/structure/handrail{ + dir = 4 + }, +/obj/machinery/power/apc/high{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) +"tv" = ( +/obj/structure/handrail{ + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + icon_state = "bulb1" + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) +"tV" = ( +/turf/space, +/area/ship/trade/command/fmate) +"tW" = ( +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id_tag = "scraplock"; + name = "External Blast Doors"; + opacity = 0 + }, +/turf/simulated/floor/airless, +/area/ship/trade/command/fmate) +"uc" = ( +/obj/machinery/alarm{ + dir = 8; pixel_x = 24 }, /obj/effect/floor_decal/industrial/outline/yellow, @@ -4986,6 +5328,22 @@ }, /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) +"uf" = ( +/obj/structure/handrail{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"uk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 4 + }, +/obj/effect/paint/black, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/outgoing/engineering) "ul" = ( /obj/machinery/door/blast/regular{ density = 0; @@ -4997,6 +5355,29 @@ }, /turf/simulated/floor/airless, /area/ship/trade/crew/medbay/chemistry) +"uD" = ( +/obj/machinery/port_gen/pacman/super, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/sign{ + icon_state = "radiation"; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) +"uL" = ( +/obj/structure/railing/mapped{ + dir = 2 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 6 + }, +/obj/structure/railing/mapped{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "uP" = ( /obj/structure/handrail{ dir = 4 @@ -5100,6 +5481,19 @@ }, /turf/simulated/floor/tiled, /area/ship/trade/crew/saloon) +"vY" = ( +/obj/structure/handrail, +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + id_tag = "bee_port"; + tag_pump_out_external = "bee_pump_out_external"; + tag_interior_sensor = "bee_interior_sensor"; + cycle_to_external_air = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 6 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "wb" = ( /obj/structure/cable{ icon_state = "4-8" @@ -5118,15 +5512,6 @@ }, /turf/simulated/floor/tiled, /area/ship/trade/garden) -"wc" = ( -/obj/machinery/portable_atmospherics/canister/air/airlock{ - start_pressure = 730 - }, -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) "we" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, @@ -5165,14 +5550,6 @@ }, /turf/simulated/floor/tiled/freezer, /area/ship/trade/crew/wash) -"xb" = ( -/obj/effect/wallframe_spawn/reinforced/titanium, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 4 - }, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) "xc" = ( /obj/machinery/firealarm{ pixel_y = 24 @@ -5183,7 +5560,9 @@ /turf/simulated/floor/tiled, /area/ship/trade/crew/saloon) "xh" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Tradeship Habitation Deck" + }, /turf/space, /area/space) "xn" = ( @@ -5193,6 +5572,26 @@ /obj/machinery/atmospherics/pipe/simple/hidden/fuel, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) +"xz" = ( +/obj/structure/closet/crate, +/obj/item/tank/oxygen, +/obj/item/tank/oxygen, +/obj/item/roller, +/obj/item/storage/firstaid/adv, +/obj/item/storage/pill_bottle/painkillers, +/obj/item/storage/pill_bottle/antitox, +/obj/item/storage/pill_bottle/antibiotics, +/obj/item/storage/pill_bottle/burn_meds, +/obj/item/scanner/health, +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/corner/white{ + dir = 9 + }, +/obj/effect/floor_decal/corner/white, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) "xB" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -5216,6 +5615,14 @@ }, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) +"xM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/portables_connector, +/obj/machinery/floodlight, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "xO" = ( /obj/machinery/power/terminal{ dir = 4 @@ -5228,6 +5635,18 @@ "xS" = ( /turf/simulated/floor/carpet, /area/ship/trade/command/fmate) +"xW" = ( +/obj/machinery/door/airlock/hatch, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/sign{ + icon_state = "radiation"; + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/engineering) "xX" = ( /obj/item/mollusc/barnacle{ pixel_w = 17 @@ -5252,10 +5671,30 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/shieldbay) +"yq" = ( +/obj/structure/handrail{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "yt" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, /area/ship/trade/shieldbay) +"yy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 4 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "yA" = ( /obj/structure/closet, /obj/random/clothing, @@ -5272,16 +5711,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/starboard) -"zb" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ - dir = 8; - id_tag = "tradeship_shuttle_pump_out_external" - }, -/obj/structure/handrail{ - dir = 4 - }, -/turf/simulated/floor/airless, -/area/ship/trade/shuttle/outgoing) "zc" = ( /obj/structure/hygiene/shower{ dir = 4 @@ -5340,16 +5769,6 @@ /obj/structure/reagent_dispensers/water_cooler, /turf/simulated/floor/tiled, /area/ship/trade/crew/saloon) -"Ah" = ( -/obj/structure/table, -/obj/machinery/light{ - dir = 1; - icon_state = "tube1" - }, -/obj/item/deck/tarot, -/obj/machinery/cell_charger, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) "Ai" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5381,6 +5800,13 @@ /obj/machinery/door/airlock/hatch/autoname/engineering, /turf/simulated/floor/tiled, /area/ship/trade/maintenance/engine/aft) +"AE" = ( +/obj/effect/paint/red, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 4 + }, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) "AH" = ( /obj/effect/paint/brown, /turf/simulated/wall, @@ -5403,6 +5829,10 @@ }, /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/port) +"Ba" = ( +/obj/machinery/hologram/holopad/longrange, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "Bb" = ( /obj/structure/cable{ icon_state = "4-8" @@ -5432,6 +5862,38 @@ }, /turf/simulated/floor/tiled, /area/ship/trade/crew/kitchen) +"Bi" = ( +/obj/structure/catwalk, +/obj/structure/railing/mapped{ + dir = 1 + }, +/obj/structure/railing/mapped{ + dir = 4 + }, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) +"Bl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 9 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"Br" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 1; + id_tag = "bee_port_pump" + }, +/obj/structure/closet/walllocker/suit{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "Bx" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, @@ -5443,6 +5905,18 @@ }, /turf/simulated/floor/tiled/techfloor, /area/ship/trade/maintenance/atmos) +"BN" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/regular{ + density = 0; + icon_state = "pdoor0"; + id_tag = "bee_shutters"; + opacity = 0 + }, +/obj/effect/paint/black, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "BP" = ( /obj/random/maintenance, /turf/simulated/floor/tiled/techmaint, @@ -5500,6 +5974,24 @@ }, /turf/simulated/floor/tiled, /area/ship/trade/crew/kitchen) +"Cq" = ( +/obj/structure/railing/mapped{ + dir = 8 + }, +/obj/structure/railing/mapped{ + dir = 2 + }, +/obj/structure/catwalk, +/obj/machinery/light/navigation{ + color = "#ff3333" + }, +/obj/structure/lattice, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) +"Cz" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/simulated/floor/airless, +/area/ship/trade/shuttle/rescue) "CD" = ( /obj/effect/paint/red, /turf/simulated/wall/r_wall/hull, @@ -5516,6 +6008,10 @@ /obj/abstract/landmark/paperwork_spawn_tradeship, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) +"CI" = ( +/obj/structure/shuttle/engine/propulsion/burst/left, +/turf/simulated/floor/airless, +/area/ship/trade/shuttle/outgoing/engineering) "CP" = ( /obj/machinery/door/airlock/hatch/autoname/general, /obj/machinery/door/firedoor, @@ -5530,6 +6026,12 @@ }, /turf/simulated/floor/tiled/steel_ridged, /area/ship/trade/command/fmate) +"CV" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "Db" = ( /obj/effect/floor_decal/corner/white{ dir = 9 @@ -5561,6 +6063,13 @@ }, /turf/simulated/floor/tiled/steel_ridged, /area/ship/trade/crew/saloon) +"Dj" = ( +/obj/machinery/power/smes/buildable/max_cap_in_out, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) "Dl" = ( /obj/machinery/power/apc{ name = "Medical Bay APC" @@ -5573,6 +6082,39 @@ /obj/effect/paint/brown, /turf/simulated/wall, /area/ship/trade/crew/kitchen) +"Dw" = ( +/obj/structure/railing/mapped{ + dir = 4 + }, +/obj/structure/railing/mapped{ + dir = 2 + }, +/obj/structure/catwalk, +/obj/machinery/light/navigation{ + color = "#00ff00" + }, +/obj/structure/lattice, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) +"Dx" = ( +/obj/effect/paint/red, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) +"DC" = ( +/obj/machinery/door/airlock/external/bolted{ + id_tag = "bee_port_outer" + }, +/obj/machinery/button/access/exterior{ + dir = 8; + id_tag = "bee_port"; + pixel_x = -16; + pixel_y = -26 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "DE" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -5582,10 +6124,34 @@ }, /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) +"DH" = ( +/obj/structure/handrail, +/obj/machinery/airlock_sensor{ + id_tag = "bee_port_sensor" + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8; + icon_state = "warning" + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "DO" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall, /area/ship/trade/command/bridge) +"DY" = ( +/obj/machinery/door/airlock/external/bolted{ + id_tag = "tradeship_rescue_shuttle_out" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 8 + }, +/obj/effect/decal/warning_stripes, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/rescue) "Eb" = ( /obj/machinery/light{ dir = 4; @@ -5637,6 +6203,21 @@ }, /turf/simulated/floor/tiled/techfloor, /area/ship/trade/cargo) +"Eh" = ( +/obj/structure/railing/mapped{ + dir = 8 + }, +/obj/structure/catwalk, +/obj/machinery/light/navigation{ + color = "#ff3333" + }, +/obj/structure/lattice, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) +"Eq" = ( +/obj/effect/paint/sun, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/outgoing/general) "Et" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -5661,6 +6242,12 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/starboard) +"EA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) "EQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -5783,12 +6370,6 @@ }, /turf/simulated/floor/plating, /area/ship/trade/hidden) -"Gv" = ( -/obj/machinery/door/airlock/hatch, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) "Gw" = ( /obj/machinery/computer/ship/sensors, /obj/effect/floor_decal/corner/blue/diagonal, @@ -5803,6 +6384,30 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/shieldbay) +"GB" = ( +/obj/structure/railing/mapped{ + dir = 2 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 10 + }, +/obj/structure/railing/mapped{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"GD" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/door/firedoor, +/obj/effect/paint/sun, +/obj/machinery/door/blast/regular{ + density = 0; + icon_state = "pdoor0"; + id_tag = "bee_shutters"; + opacity = 0 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "GF" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, @@ -5820,6 +6425,21 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/maintenance/hallway) +"GO" = ( +/obj/effect/paint/red, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) +"GS" = ( +/obj/item/inflatable_dispenser, +/obj/machinery/light{ + dir = 1; + icon_state = "bulb1" + }, +/obj/machinery/cell_charger, +/obj/structure/table/steel, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "GT" = ( /turf/simulated/floor/tiled/techmaint, /area/ship/trade/shieldbay) @@ -5862,6 +6482,7 @@ /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/port) "Hs" = ( +/obj/machinery/light, /turf/simulated/floor/wood/yew, /area/ship/trade/unused) "HA" = ( @@ -5877,6 +6498,18 @@ "HT" = ( /turf/simulated/floor/tiled/techmaint, /area/ship/trade/maintenance/hallway) +"HZ" = ( +/obj/structure/handrail{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "Ib" = ( /obj/machinery/atmospherics/pipe/simple/visible/green{ dir = 5 @@ -5895,6 +6528,10 @@ /obj/structure/table, /turf/simulated/floor/tiled/white, /area/ship/trade/crew/medbay) +"If" = ( +/obj/effect/paint/black, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/outgoing/engineering) "Ig" = ( /obj/machinery/computer/account_database, /turf/simulated/floor/bluegrid, @@ -5951,6 +6588,11 @@ }, /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/starboard) +"IH" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "IJ" = ( /obj/structure/cable{ icon_state = "0-4" @@ -5961,6 +6603,13 @@ "IM" = ( /turf/simulated/floor/airless, /area/ship/trade/command/captain) +"IW" = ( +/obj/effect/paint/red, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) "Jb" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -6073,6 +6722,7 @@ /obj/random/voidsuit, /obj/random/voidhelmet, /obj/random/voidhelmet, +/obj/item/tank/oxygen, /turf/simulated/floor/tiled, /area/ship/trade/crew/saloon) "JX" = ( @@ -6142,6 +6792,27 @@ "Kw" = ( /turf/simulated/floor/tiled/white, /area/ship/trade/crew/medbay) +"Kx" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "bee_star_pump_out_internal" + }, +/obj/structure/emergency_dispenser/west{ + pixel_x = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) +"KA" = ( +/obj/structure/railing/mapped{ + dir = 2 + }, +/obj/structure/handrail{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "KI" = ( /obj/machinery/light_switch{ pixel_x = -25 @@ -6178,18 +6849,11 @@ /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/starboard) "Lb" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - level = 2 - }, -/obj/effect/floor_decal/corner/beige{ - dir = 10 - }, -/obj/machinery/alarm{ - dir = 4; - pixel_x = -24 +/obj/structure/shuttle/engine/propulsion/burst/right{ + dir = 1 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/turf/simulated/floor/airless, +/area/ship/trade/shuttle/outgoing/general) "Lc" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/cobweb2, @@ -6205,6 +6869,13 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/starboard) +"Ld" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "Lm" = ( /obj/machinery/shield_generator, /obj/structure/cable{ @@ -6216,6 +6887,11 @@ /obj/effect/paint/brown, /turf/simulated/wall/r_wall/hull, /area/ship/trade/command/fmate) +"Lu" = ( +/obj/machinery/light/spot, +/obj/structure/lattice, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "Lx" = ( /obj/structure/handrail{ dir = 8 @@ -6232,20 +6908,10 @@ /obj/machinery/atmospherics/pipe/simple/hidden/fuel, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) -"Mb" = ( -/obj/structure/bed/chair/comfy/brown{ - dir = 1 - }, -/obj/effect/floor_decal/corner/beige{ - dir = 10 - }, -/obj/item/radio/intercom{ - dir = 8; - pixel_x = 22 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +"LU" = ( +/obj/effect/paint/sun, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/outgoing/engineering) "Mc" = ( /obj/machinery/light{ dir = 1; @@ -6309,6 +6975,13 @@ }, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) +"MW" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/smes/buildable/max_cap_in_out, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "MX" = ( /obj/machinery/light{ dir = 8; @@ -6317,11 +6990,15 @@ /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/port) "Nb" = ( -/obj/effect/wallframe_spawn/reinforced/titanium, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/obj/structure/handrail{ + dir = 4 + }, +/obj/structure/catwalk, +/obj/structure/railing/mapped{ + dir = 1 + }, +/turf/space, +/area/space) "Nc" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -6348,6 +7025,29 @@ }, /turf/simulated/floor/tiled/freezer, /area/ship/trade/crew/wash) +"Nd" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/red, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) +"Nm" = ( +/obj/effect/floor_decal/corner/beige{ + dir = 9 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 8; + icon_state = "warning" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "Np" = ( /obj/machinery/network/requests_console{ announcementConsole = 1; @@ -6361,6 +7061,8 @@ /obj/structure/closet/emcloset, /obj/random/voidsuit, /obj/random/voidhelmet, +/obj/item/tank/oxygen, +/obj/item/tank/oxygen, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) "Nx" = ( @@ -6379,6 +7081,12 @@ }, /turf/simulated/floor/airless, /area/ship/trade/maintenance/engine/port) +"NG" = ( +/obj/structure/shuttle/engine/propulsion/burst/left{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/ship/trade/shuttle/outgoing/general) "NI" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 4 @@ -6386,6 +7094,35 @@ /obj/structure/bookcase/skill_books/random, /turf/simulated/floor/wood/yew, /area/ship/trade/unused) +"NM" = ( +/obj/effect/floor_decal/corner/beige{ + dir = 9 + }, +/obj/structure/bed/chair/shuttle/blue{ + dir = 4 + }, +/obj/item/radio/intercom{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/alarm{ + pixel_y = 24 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) +"NS" = ( +/obj/machinery/computer/shuttle_control/explore/tradeship, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) +"NT" = ( +/obj/machinery/door/airlock/external/bolted{ + id_tag = "bee_port_inner" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "Ob" = ( /obj/machinery/alarm{ dir = 8; @@ -6441,6 +7178,16 @@ /obj/machinery/power/terminal, /turf/simulated/floor/plating, /area/ship/trade/maintenance/engine/aft) +"OD" = ( +/obj/structure/catwalk, +/obj/structure/railing/mapped{ + dir = 1 + }, +/obj/structure/railing/mapped{ + dir = 4 + }, +/turf/space, +/area/space) "OP" = ( /obj/machinery/alarm{ dir = 8; @@ -6487,6 +7234,29 @@ /obj/effect/wallframe_spawn/reinforced, /turf/simulated/floor/plating, /area/ship/trade/command/captain) +"PB" = ( +/obj/machinery/alarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "tradeship_rescue_shuttle_pump" + }, +/obj/structure/bed/chair/comfy/brown{ + dir = 1 + }, +/obj/effect/floor_decal/corner/white{ + dir = 6 + }, +/obj/effect/floor_decal/corner/white{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) "PE" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6569,6 +7339,11 @@ }, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) +"QF" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "QH" = ( /obj/structure/table, /obj/structure/cable, @@ -6635,6 +7410,17 @@ }, /turf/simulated/floor/wood/yew, /area/ship/trade/unused) +"Rg" = ( +/obj/structure/railing/mapped{ + dir = 4 + }, +/obj/structure/catwalk, +/obj/machinery/light/navigation{ + color = "#00ff00" + }, +/obj/structure/lattice, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "Rl" = ( /obj/machinery/door/blast/regular{ density = 0; @@ -6674,6 +7460,11 @@ /obj/structure/handrail, /turf/simulated/floor/tiled, /area/ship/trade/crew/saloon) +"RM" = ( +/obj/effect/wallframe_spawn/reinforced/titanium, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/rescue) "RW" = ( /obj/machinery/atmospherics/unary/engine{ dir = 1 @@ -6681,12 +7472,14 @@ /turf/simulated/floor/airless, /area/ship/trade/maintenance/engine/port) "Sb" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 5 +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 9 }, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/general) "Sc" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/floor_decal/corner/blue{ @@ -6723,9 +7516,35 @@ }, /turf/simulated/floor/airless, /area/ship/trade/crew/toilets) +"Sj" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 10 + }, +/obj/structure/handrail{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"Sk" = ( +/obj/structure/catwalk, +/obj/structure/railing/mapped{ + dir = 1 + }, +/obj/structure/railing/mapped{ + dir = 8 + }, +/turf/space, +/area/space) "Sr" = ( /turf/simulated/floor/plating, /area/ship/trade/maintenance/hallway) +"SB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/computer/shuttle_control/explore/rescue, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) "SC" = ( /obj/effect/paint/brown, /turf/simulated/wall/r_wall, @@ -6783,22 +7602,11 @@ /turf/simulated/floor/tiled/monotile, /area/ship/trade/command/hallway) "Tb" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/structure/closet/crate, -/obj/item/radio, -/obj/item/spaceflare, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 10 - }, -/obj/structure/handrail{ - dir = 8 +/obj/effect/floor_decal/techfloor/orange{ + dir = 5 }, /turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) +/area/ship/trade/shuttle/outgoing/general) "Tp" = ( /obj/structure/cable{ icon_state = "4-8" @@ -6807,6 +7615,18 @@ /obj/random/maintenance, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/shieldbay) +"Tr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/structure/cable/orange{ + icon_state = "1-2" + }, +/obj/effect/paint/sun, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/outgoing/engineering) +"Tx" = ( +/obj/structure/shuttle/engine/propulsion/burst/right, +/turf/simulated/floor/airless, +/area/ship/trade/shuttle/outgoing/engineering) "TB" = ( /obj/machinery/atmospherics/valve/open{ dir = 4 @@ -6840,12 +7660,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/starboard) -"Ub" = ( -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/item/storage/backpack/dufflebag, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/floor/plating, -/area/ship/trade/shuttle/outgoing) "Uc" = ( /obj/machinery/seed_storage/garden{ dir = 1 @@ -6871,6 +7685,16 @@ /obj/effect/paint/brown, /turf/simulated/wall, /area/ship/trade/crew/toilets) +"UA" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + id_tag = "bee_port_pump_out_internal" + }, +/obj/structure/emergency_dispenser/west{ + pixel_x = 0; + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/ship/trade/shuttle/outgoing/general) "UB" = ( /obj/machinery/light, /obj/structure/cable{ @@ -6898,26 +7722,48 @@ }, /turf/simulated/floor/reinforced/airless, /area/ship/trade/maintenance/engine/aft) +"UQ" = ( +/obj/effect/paint/red, +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 8 + }, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) +"UT" = ( +/obj/effect/paint/black, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/outgoing/general) "UV" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/monotile, /area/ship/trade/dock) -"Vb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +"UY" = ( +/obj/machinery/atmospherics/unary/tank/air{ + dir = 4 + }, +/obj/effect/floor_decal/corner/white{ dir = 6 }, -/obj/effect/floor_decal/corner/beige{ - dir = 9 +/obj/effect/floor_decal/corner/white{ + dir = 8 }, -/obj/item/radio/intercom{ - dir = 4; - pixel_x = -22 +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) +"Vb" = ( +/obj/effect/floor_decal/corner/beige{ + dir = 6 }, /obj/structure/handrail{ - dir = 4 + dir = 8 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/obj/random/closet, +/obj/item/storage/backpack/dufflebag, +/obj/machinery/airlock_sensor{ + id_tag = "bee_interior_sensor"; + dir = 8 + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/shuttle/outgoing/general) "Vc" = ( /obj/structure/cable, /obj/machinery/power/apc{ @@ -6932,6 +7778,20 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/wood, /area/ship/trade/command/fmate) +"Vl" = ( +/obj/structure/handrail{ + dir = 8 + }, +/obj/machinery/light, +/obj/effect/floor_decal/techfloor/orange{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"Vq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "VK" = ( /obj/machinery/network/relay{ initial_network_id = "tradenet" @@ -6969,22 +7829,14 @@ /turf/simulated/floor/tiled/techmaint, /area/ship/trade/crew/hallway/starboard) "Wb" = ( -/obj/effect/floor_decal/corner/beige{ +/obj/effect/floor_decal/techfloor/orange{ dir = 6 }, -/obj/machinery/alarm{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/bed/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden, /obj/structure/handrail{ - dir = 8 + dir = 1 }, -/turf/simulated/floor/tiled, -/area/ship/trade/shuttle/outgoing) +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "Wc" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -7038,14 +7890,50 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/airlock/hatch/autoname/engineering, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/door/airlock/hatch/autoname/engineering, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/steel_ridged, +/area/ship/trade/maintenance/atmos) +"WF" = ( +/obj/structure/handrail{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "bee_pump_out_external" + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) +"WK" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 8; + id_tag = "tradeship_rescue_shuttle_pump_out_internal" + }, +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/corner/white{ + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) +"WM" = ( +/obj/structure/catwalk, +/obj/structure/railing/mapped{ + dir = 1 + }, +/obj/structure/railing/mapped{ + dir = 8 }, -/turf/simulated/floor/tiled/steel_ridged, -/area/ship/trade/maintenance/atmos) +/turf/space, +/area/ship/trade/shuttle/outgoing/general) "WO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -7065,6 +7953,10 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/ship/trade/maintenance/atmos) +"Xx" = ( +/obj/effect/floor_decal/industrial/outline/yellow, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) "Xz" = ( /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/techmaint, @@ -7124,6 +8016,38 @@ }, /turf/simulated/floor/tiled/techfloor, /area/ship/trade/maintenance/engineering) +"Yd" = ( +/obj/structure/cable/orange{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{ + dir = 1 + }, +/obj/effect/shuttle_landmark/docking_arm_port/shuttle, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/outgoing/general) +"Yl" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 4; + id_tag = "tradeship_rescue_shuttle_pump" + }, +/obj/effect/floor_decal/corner/white{ + dir = 6 + }, +/obj/structure/bed/chair{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/ship/trade/shuttle/rescue) +"Ys" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/red{ + dir = 8 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "Yt" = ( /obj/structure/handrail{ dir = 8 @@ -7144,9 +8068,32 @@ }, /turf/simulated/floor/tiled/dark, /area/ship/trade/command/bridge) +"YI" = ( +/obj/structure/handrail{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1; + level = 2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/red{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "YN" = ( /turf/simulated/floor/plating, /area/ship/trade/crew/hallway/starboard) +"YR" = ( +/obj/effect/paint/red, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/wall/titanium, +/area/ship/trade/shuttle/rescue) "YS" = ( /obj/structure/lattice, /obj/effect/paint/brown, @@ -7159,6 +8106,22 @@ }, /turf/simulated/floor/plating, /area/ship/trade/maintenance/power) +"Zb" = ( +/obj/item/radio/intercom{ + dir = 4; + pixel_x = -22 + }, +/obj/structure/handrail{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/engineering) "Zc" = ( /obj/structure/closet/secure_closet/engineering_electrical, /obj/item/cell/device/standard, @@ -7174,6 +8137,18 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/ship/trade/maintenance/power) +"Zf" = ( +/obj/structure/railing/mapped{ + dir = 2 + }, +/obj/structure/handrail{ + dir = 4 + }, +/obj/effect/floor_decal/techfloor/orange{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/ship/trade/shuttle/outgoing/general) "Zg" = ( /obj/structure/handrail{ dir = 4 @@ -7191,6 +8166,17 @@ }, /turf/space, /area/space) +"Zx" = ( +/obj/structure/lattice, +/turf/space, +/area/ship/trade/shuttle/outgoing/general) +"ZK" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume/external_air{ + dir = 1; + id_tag = "tradeship_rescue_shuttle_pump_out_external" + }, +/turf/simulated/floor/airless, +/area/ship/trade/shuttle/rescue) (1,1,1) = {" aa @@ -8773,15 +9759,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +WM +Eh +lW +Eq +DC +Eq +Eq +sw +Cq aa aa aa @@ -8854,17 +9840,17 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Sk +gN +qv +Sj +Eq +DH +UA +sm +Ys +nD +GB aa aa aa @@ -8933,20 +9919,20 @@ aa aa aa aa +pv aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +og +uf +CV +Vl +Eq +vY +Br +GD +WF +HZ +KA aa aa aa @@ -9015,21 +10001,21 @@ aa aa aa aa +Zx aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +NG +Eq +Eq +GD +Eq +Eq +NT +LU +If +LU +uk +LU +CI aa aa aa @@ -9095,23 +10081,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IH +Zx +BN +BN +UT +Eq +NM +rL +to +sG +Nm +xW +yq +Zb +YI +tv +LU aa aa aa @@ -9177,23 +10163,23 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IH +Zx +BN +lJ +mf +sA +Vq +QF +Ld +QF +yy +LU +GS +xM +Nd +MW +If aa aa aa @@ -9259,23 +10245,23 @@ aa aa aa aa -aa -aa -aa -aa +IH +Lu +BN +NS ab aL -aL -at -aL -aL -aL -aL -aL -aL -aL +Ba +Xx +kX +Xx +Yd +Tr +sj +mr +mW hb -aa +LU aa aa aa @@ -9341,23 +10327,23 @@ aa aa aa aa -aa -aa -at -at -aL -aL +IH +Zx +BN +BN +UT +Eq bg bi Vb bK bx -cc +LU cp cz -aL -aL -aa +qt +uD +If aa aa aa @@ -9425,21 +10411,21 @@ aa aa aa aa -at -Ah +Zx +aa Lb -Gv -bh -mw -bp -aL +Eq +Eq +GD +Eq +Eq bL -aL -cq -cA -cH -aL -aa +LU +If +LU +uk +LU +Tx aa aa Lx @@ -9508,19 +10494,19 @@ aa aa aa at -ob -Mb +aa +aa Nb Sb -bi +qv bq -at +Eq ac cd -wc +GD cB cI -aL +Zf aa aa YS @@ -9589,20 +10575,20 @@ aa aa aa aa -at -xb -aL -aL +aa +aa +aa +OD Tb -Ub +CV Wb -Nb +Eq bJ -aL -cs +Kx +sm cC -aL -aL +Bl +uL aa vj Ui @@ -9672,19 +10658,19 @@ aa aa aa aa -zb -nu -aL -aL -at -aL -aL +aa +aa +aa +Bi +Rg +oV +Eq bH -aL -aL -aL -aL -lx +Eq +Eq +lb +Dw +aa aa vj cU @@ -9764,7 +10750,7 @@ bA bI bA aa -aa +rn aa aa aa @@ -11151,15 +12137,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +RM +RM +YR +UQ +DY +kr +GO +UQ +ZK aa aa om @@ -11233,15 +12219,15 @@ aa aa aa aa -aa -aa -aa -aa +RM +Dj +oM +qA cb -aa -aa -aa -aa +WK +xz +EA +Cz aa aa om @@ -11315,15 +12301,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +RM +SB +PB +nm +iS +Yl +UY +EA +Cz aa aa aa @@ -11397,15 +12383,15 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +RM +RM +IW +AE +AE +qM +Dx +IW +ZK aa aa aa diff --git a/maps/tradeship/tradeship-3.dmm b/maps/tradeship/tradeship-3.dmm index f414639226e..86da21e922e 100644 --- a/maps/tradeship/tradeship-3.dmm +++ b/maps/tradeship/tradeship-3.dmm @@ -567,7 +567,9 @@ /turf/simulated/floor/plating, /area/ship/trade/bridge_unused) "dm" = ( -/obj/abstract/level_data/main_level, +/obj/abstract/level_data/main_level{ + name = "Tradeship Upper Deck"; +}, /turf/space, /area/space) "dq" = ( diff --git a/maps/tradeship/tradeship_areas.dm b/maps/tradeship/tradeship_areas.dm index 9f10c188d1b..d6e4977733e 100644 --- a/maps/tradeship/tradeship_areas.dm +++ b/maps/tradeship/tradeship_areas.dm @@ -11,6 +11,9 @@ name = "\improper Tradeship" ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambigen12.ogg') +/area/ship/trade + holomap_color = HOLOMAP_AREACOLOR_CREW + /area/ship/trade/crew name = "\improper Crew Compartements" icon_state = "crew_quarters" @@ -52,11 +55,13 @@ name = "\improper Medical Bay" icon_state = "medbay" area_flags = AREA_FLAG_RAD_SHIELDED + holomap_color = HOLOMAP_AREACOLOR_MEDICAL /area/ship/trade/cargo name = "\improper Cargo Hold" icon_state = "quartstorage" area_flags = AREA_FLAG_RAD_SHIELDED + holomap_color = HOLOMAP_AREACOLOR_CARGO /area/ship/trade/cargo/lower name = "Loading Bay" @@ -65,43 +70,51 @@ /area/ship/trade/dock name = "\improper Docking Bay" icon_state = "entry_1" - + holomap_color = HOLOMAP_AREACOLOR_AIRLOCK /area/ship/trade/aft_port_underside_maint name = "\improper Underside - Aft Port Maintenance" icon_state = "medbay" area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_MAINTENANCE + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/aft_starboard_underside_maint name = "\improper Underside - Aft Starboard Maintenance" icon_state = "toilet" area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_MAINTENANCE + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/loading_bay name = "\improper Underside - Loading Bay" icon_state = "entry_1" + holomap_color = HOLOMAP_AREACOLOR_AIRLOCK /area/ship/trade/fore_port_underside_maint name = "\improper Underside - Fore Port Maintenance" icon_state = "green" area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_MAINTENANCE + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/livestock name = "\improper Underside - Livestock Handling" icon_state = "red" req_access = list(access_xenobiology) + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/ship/trade/fore_starboard_underside_maint name = "\improper Underside - Fore Starboard Maintenance" icon_state = "locker" area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_MAINTENANCE + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/disused name = "\improper Underside - Disused" icon_state = "yellow" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/undercomms name = "\improper Underside - Communications Relay" icon_state = "blue" + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ship/trade/garden name = "\improper Garden" @@ -112,38 +125,46 @@ icon_state = "yellow" turf_initializer = /decl/turf_initializer/maintenance ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambimo1.ogg','sound/ambience/ambimo2.ogg') + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/hidden name = "\improper Unknown" //shielded compartment icon_state = "auxstorage" + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/escape_port name = "\improper Port Escape Pods" icon_state = "green" + holomap_color = HOLOMAP_AREACOLOR_AIRLOCK /area/ship/trade/escape_star name = "\improper Starboard Escape Pods" icon_state = "yellow" + holomap_color = HOLOMAP_AREACOLOR_AIRLOCK /area/ship/trade/science name = "\improper Research Bay" icon_state = "green" req_access = list(access_research) + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/ship/trade/science/fabricaton name = "\improper Fabrication Bay" icon_state = "yellow" req_access = list(access_research) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ship/trade/crew/medbay/chemistry name = "\improper Chemistry Bay" icon_state = "cave" req_access = list(access_medical) + holomap_color = HOLOMAP_AREACOLOR_MEDICAL /area/ship/trade/maintenance name = "\improper Maintenance Compartments" icon_state = "amaint" area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_MAINTENANCE + holomap_color = HOLOMAP_AREACOLOR_MAINTENANCE /area/ship/trade/maintenance/hallway name = "\improper Maintenance Corridors" @@ -177,17 +198,20 @@ icon_state = "atmos" ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambiatm1.ogg') req_access = list(access_engine) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ship/trade/maintenance/power name = "\improper Power Compartment" icon_state = "engine_smes" ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambieng1.ogg') req_access = list(access_engine) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ship/trade/maintenance/engine icon_state = "engine" ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/ambigen5.ogg','sound/ambience/ambigen6.ogg','sound/ambience/ambigen7.ogg','sound/ambience/ambigen8.ogg','sound/ambience/ambigen9.ogg','sound/ambience/ambigen10.ogg','sound/ambience/ambigen11.ogg','sound/ambience/ambieng1.ogg') req_access = list(access_engine) + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ship/trade/maintenance/engine/aft name = "\improper Main Engine Bay" @@ -232,6 +256,7 @@ name = "\improper Communications Relay" icon_state = "tcomsatcham" ambience = list('sound/ambience/ambigen3.ogg','sound/ambience/ambigen4.ogg','sound/ambience/signal.ogg','sound/ambience/sonar.ogg') + holomap_color = HOLOMAP_AREACOLOR_ENGINEERING /area/ship/trade/bridge_unused name = "\improper Bridge Starboard Storage" @@ -240,25 +265,36 @@ /area/ship/trade/shuttle area_flags = AREA_FLAG_RAD_SHIELDED -/area/ship/trade/shuttle/outgoing - name = "\improper Exploration Shuttle" +/area/ship/trade/shuttle/outgoing/general + name = "\improper Bee" + icon_state = "away" + +/area/ship/trade/shuttle/outgoing/engineering + name = "\improper Bee Skiff Engineering Compartment" + icon_state = "yellow" + +/area/ship/trade/shuttle/rescue + name = "\improper Rescue Shuttle" icon_state = "tcomsatcham" /area/ship/trade/maintenance/solars name = "\improper Solar Array Access" icon_state = "SolarcontrolA" req_access = list(access_engine) + holomap_color = HOLOMAP_AREACOLOR_AIRLOCK /area/ship/trade/artifact_storage name = "\improper Artifact Storage" icon_state = "ai_cyborg" req_access = list(access_xenoarch) + holomap_color = HOLOMAP_AREACOLOR_SCIENCE /area/ship/trade/drunk_tank name = "Drunk Tank" icon_state = "brig" req_access = list(access_brig) area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_SECURITY + holomap_color = HOLOMAP_AREACOLOR_SECURITY /area/turbolift name = "\improper Cargo Elevator" diff --git a/maps/tradeship/tradeship_overmap.dm b/maps/tradeship/tradeship_overmap.dm index f9b452c16f9..2ae3c3f5dc5 100644 --- a/maps/tradeship/tradeship_overmap.dm +++ b/maps/tradeship/tradeship_overmap.dm @@ -9,7 +9,12 @@ restricted_area = 30 sector_flags = OVERMAP_SECTOR_KNOWN|OVERMAP_SECTOR_BASE|OVERMAP_SECTOR_IN_SPACE - initial_generic_waypoints = list("nav_tradeship_below_bow", "nav_tradeship_below_starboardastern", "nav_tradeship_starboard_dock_pod") - initial_restricted_waypoints = list( - /datum/shuttle/autodock/overmap/exploration = list("nav_tradeship_port_dock_shuttle"), // exploration ship can only dock portside + initial_generic_waypoints = list( + "nav_tradeship_below_bow", + "nav_tradeship_below_starboardastern" ) + //exploration and rescue shuttles can only dock port side, b/c there's only one door. + initial_restricted_waypoints = list( + /datum/shuttle/autodock/overmap/exploration = list("nav_tradeship_port_dock_shuttle"), + /datum/shuttle/autodock/overmap/rescue = list("nav_tradeship_starboard_dock_rescue") + ) \ No newline at end of file diff --git a/maps/tradeship/tradeship_shuttles.dm b/maps/tradeship/tradeship_shuttles.dm index 2d9232bd098..5cd189ab415 100644 --- a/maps/tradeship/tradeship_shuttles.dm +++ b/maps/tradeship/tradeship_shuttles.dm @@ -1,21 +1,31 @@ /obj/machinery/computer/shuttle_control/explore/tradeship name = "exploration shuttle console" - shuttle_tag = "Exploration Shuttle" + shuttle_tag = "Bee Shuttle" + +/obj/machinery/computer/shuttle_control/explore/rescue + name = "rescue shuttle console" + shuttle_tag = "Rescue Shuttle" /datum/shuttle/autodock/overmap/exploration - name = "Exploration Shuttle" - shuttle_area = /area/ship/trade/shuttle/outgoing - dock_target = "tradeship_shuttle" + name = "Bee Shuttle" + shuttle_area = list(/area/ship/trade/shuttle/outgoing/general, /area/ship/trade/shuttle/outgoing/engineering) + dock_target = "bee_star" current_location = "nav_tradeship_port_dock_shuttle" +/datum/shuttle/autodock/overmap/rescue + name = "Rescue Shuttle" + shuttle_area = /area/ship/trade/shuttle/rescue + dock_target = "rescue_shuttle" + current_location = "nav_tradeship_starboard_dock_rescue" + //In case multiple shuttles can dock at a location, //subtypes can be used to hold the shuttle-specific data /obj/effect/shuttle_landmark/docking_arm_starboard name = "Tradeship Starboard-side Docking Arm" docking_controller = "tradeship_starboard_dock" -/obj/effect/shuttle_landmark/docking_arm_starboard/pod - landmark_tag = "nav_tradeship_starboard_dock_pod" +/obj/effect/shuttle_landmark/docking_arm_starboard/rescue + landmark_tag = "nav_tradeship_starboard_dock_rescue" /obj/effect/shuttle_landmark/docking_arm_port name = "Tradeship Port-side Docking Arm" diff --git a/maps/tradeship/tradeship_unit_testing.dm b/maps/tradeship/tradeship_unit_testing.dm index 5fc81b0f665..92a00ba67fc 100644 --- a/maps/tradeship/tradeship_unit_testing.dm +++ b/maps/tradeship/tradeship_unit_testing.dm @@ -4,18 +4,20 @@ /datum/map/tradeship // Unit test exemptions apc_test_exempt_areas = list( - /area/turbolift = NO_SCRUBBER|NO_VENT|NO_APC, - /area/space = NO_SCRUBBER|NO_VENT|NO_APC, - /area/exoplanet = NO_SCRUBBER|NO_VENT|NO_APC, - /area/ship/trade/maintenance/engine/port = NO_SCRUBBER|NO_VENT, + /area/turbolift = NO_SCRUBBER|NO_VENT|NO_APC, + /area/space = NO_SCRUBBER|NO_VENT|NO_APC, + /area/exoplanet = NO_SCRUBBER|NO_VENT|NO_APC, + /area/ship/trade/maintenance/engine/port = NO_SCRUBBER|NO_VENT, /area/ship/trade/maintenance/engine/starboard = NO_SCRUBBER|NO_VENT, - /area/ship/trade/crew/hallway/port = NO_SCRUBBER|NO_VENT, - /area/ship/trade/crew/hallway/starboard = NO_SCRUBBER|NO_VENT, - /area/ship/trade/maintenance/hallway = NO_SCRUBBER|NO_VENT, - /area/ship/trade/maintenance/lower = NO_SCRUBBER|NO_VENT, - /area/ship/trade/escape_port = NO_SCRUBBER|NO_VENT, - /area/ship/trade/escape_star = NO_SCRUBBER|NO_VENT, - /area/ship/trade/shuttle/outgoing = NO_SCRUBBER, - /area/ship/trade/maintenance/atmos = NO_SCRUBBER + /area/ship/trade/crew/hallway/port = NO_SCRUBBER|NO_VENT, + /area/ship/trade/crew/hallway/starboard = NO_SCRUBBER|NO_VENT, + /area/ship/trade/maintenance/hallway = NO_SCRUBBER|NO_VENT, + /area/ship/trade/maintenance/lower = NO_SCRUBBER|NO_VENT, + /area/ship/trade/escape_port = NO_SCRUBBER|NO_VENT, + /area/ship/trade/escape_star = NO_SCRUBBER|NO_VENT, + /area/ship/trade/shuttle/rescue = NO_SCRUBBER|NO_VENT, + /area/ship/trade/shuttle/outgoing/general = NO_SCRUBBER, + /area/ship/trade/shuttle/outgoing/engineering = NO_SCRUBBER, + /area/ship/trade/maintenance/atmos = NO_SCRUBBER ) diff --git a/maps/~mapsystem/maps.dm b/maps/~mapsystem/maps.dm index eba9655b703..5e7b0a00138 100644 --- a/maps/~mapsystem/maps.dm +++ b/maps/~mapsystem/maps.dm @@ -25,23 +25,6 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable // TODO: move all the lobby stuff onto this handler. var/lobby_handler = /decl/lobby_handler - - var/list/station_levels = list() // Z-levels the station exists on - var/list/admin_levels = list() // Z-levels for admin functionality (Centcom, shuttle transit, etc) - var/list/contact_levels = list() // Z-levels that can be contacted from the station, for eg announcements - var/list/player_levels = list() // Z-levels a character can typically reach - var/list/sealed_levels = list() // Z-levels that don't allow random transit at edge - - var/list/map_levels // Z-levels available to various consoles, such as the crew monitor. Defaults to station_levels if unset. - - var/list/base_turf_by_z = list() // Custom base turf by Z-level. Defaults to world.turf for unlisted Z-levels - - var/base_floor_type = /turf/simulated/floor/airless // The turf type used when generating floors between Z-levels at startup. - var/base_floor_area // Replacement area, if a base_floor_type is generated. Leave blank to skip. - - //This list contains the z-level numbers which can be accessed via space travel and the percentile chances to get there. - var/list/accessible_z_levels = list() - var/list/allowed_jobs //Job datums to use. //Works a lot better so if we get to a point where three-ish maps are used //We don't have to C&P ones that are only common between two of them @@ -119,6 +102,7 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable var/id_hud_icons = 'icons/mob/hud.dmi' // Used by the ID HUD (primarily sechud) overlay. var/num_exoplanets = 0 + var/force_exoplanet_type // Used to override exoplanet weighting and always pick the same exoplanet. //dimensions of planet zlevels, defaults to world size if smaller, INCREASES world size if larger. //Due to how maps are generated, must be (2^n+1) e.g. 17,33,65,129 etc. Map will just round up to those if set to anything other. var/list/planet_size = list() @@ -202,8 +186,8 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable allowed_spawns -= spawn_type allowed_spawns += GET_DECL(spawn_type) - if(!map_levels) - map_levels = station_levels.Copy() + if(!SSmapping.map_levels) + SSmapping.map_levels = SSmapping.station_levels.Copy() if(!LAZYLEN(planet_size)) planet_size = list(world.maxx, world.maxy) @@ -228,9 +212,6 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable /datum/map/proc/send_welcome() return -/datum/map/proc/perform_map_generation() - return - /datum/map/proc/build_away_sites() #ifdef UNIT_TEST report_progress("Unit testing, so not loading away sites") @@ -273,34 +254,26 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable world.maxy = planet_size[2] for(var/i = 0, i < num_exoplanets, i++) var/exoplanet_type = pick_exoplanet() - INCREMENT_WORLD_Z_SIZE - var/obj/effect/overmap/visitable/sector/exoplanet/new_planet = new exoplanet_type(null, world.maxz) + var/obj/abstract/level_data/exoplanet/planet_level = SSmapping.increment_world_z_size(/obj/abstract/level_data/exoplanet, TRUE) + var/obj/effect/overmap/visitable/sector/exoplanet/new_planet = new exoplanet_type(locate(1, 1, world.maxz)) + new_planet.zlevels += planet_level new_planet.build_level(planet_size[1], planet_size[2]) /datum/map/proc/pick_exoplanet() + if(force_exoplanet_type) + return force_exoplanet_type var/planets = list() for(var/T in subtypesof(/obj/effect/overmap/visitable/sector/exoplanet)) var/obj/effect/overmap/visitable/sector/exoplanet/planet_type = T planets[T] = initial(planet_type.spawn_weight) return pickweight(planets) -// Used to apply various post-compile procedural effects to the map. -/datum/map/proc/refresh_mining_turfs(var/zlevel) - - set background = 1 - set waitfor = 0 - - for(var/thing in mining_floors["[zlevel]"]) - var/turf/simulated/floor/asteroid/M = thing - if(istype(M)) - M.updateMineralOverlays() - /datum/map/proc/get_network_access(var/network) return 0 // By default transition randomly to another zlevel /datum/map/proc/get_transit_zlevel(var/current_z_level) - var/list/candidates = global.using_map.accessible_z_levels.Copy() + var/list/candidates = SSmapping.accessible_z_levels.Copy() candidates.Remove(num2text(current_z_level)) if(!candidates.len) @@ -441,15 +414,3 @@ var/global/const/MAP_HAS_RANK = 2 //Rank system, also togglable /datum/map/proc/populate_overmap_events() for(var/overmap_id in global.overmaps_by_name) SSmapping.overmap_event_handler.create_events(global.overmaps_by_name[overmap_id]) - -/datum/map/proc/get_zlevel_name(var/z) - z = "[z]" - if(!z) - return "Unknown Sector" - var/obj/abstract/level_data/level = global.levels_by_z[z] - if(level?.level_name) - return level.level_name - var/obj/effect/overmap/overmap_entity = global.overmap_sectors[z] - if(overmap_entity?.name) - return overmap_entity.name - return "Sector #[z]" diff --git a/maps/~mapsystem/maps_areas.dm b/maps/~mapsystem/maps_areas.dm index 2c90e905e2e..d2a000aeb66 100644 --- a/maps/~mapsystem/maps_areas.dm +++ b/maps/~mapsystem/maps_areas.dm @@ -11,5 +11,5 @@ for(var/area/A) if(isspacearea(A)) continue - if(A.z && (A.z in admin_levels)) + if(A.z && (A.z in SSmapping.admin_levels)) post_round_safe_areas += A.type diff --git a/maps/~mapsystem/maps_environment.dm b/maps/~mapsystem/maps_environment.dm deleted file mode 100644 index 045f719c6ab..00000000000 --- a/maps/~mapsystem/maps_environment.dm +++ /dev/null @@ -1,21 +0,0 @@ -/datum/map - /// A per-turf gasmix (associative, ex. list(/decl/material/gas/oxygen = O2STANDARD)) returned to exterior return_air. - var/list/exterior_atmos_composition - /// Temperature of standard exterior atmosphere. - var/exterior_atmos_temp = T20C - /// Gaxmis datum generated from exterior_atmos_composition. - var/datum/gas_mixture/exterior_atmosphere - -/datum/map/proc/build_exterior_atmosphere() - exterior_atmosphere = new - for(var/gas in exterior_atmos_composition) - exterior_atmosphere.adjust_gas(gas, exterior_atmos_composition[gas], FALSE) - exterior_atmosphere.temperature = exterior_atmos_temp - exterior_atmosphere.update_values() - exterior_atmosphere.check_tile_graphic() - -/datum/map/proc/get_exterior_atmosphere() - if(exterior_atmosphere) - var/datum/gas_mixture/gas = new - gas.copy_from(exterior_atmosphere) - return gas diff --git a/maps/~unit_tests/proximity_tests.dmm b/maps/~unit_tests/proximity_tests.dmm index c1a885dfe62..2c37f2e8236 100644 --- a/maps/~unit_tests/proximity_tests.dmm +++ b/maps/~unit_tests/proximity_tests.dmm @@ -19,9 +19,13 @@ /obj/abstract/landmark/proximity_wall, /turf/simulated/wall, /area/test_area/proximity) +"Q" = ( +/obj/abstract/level_data/debug, +/turf/space, +/area/space) (1,1,1) = {" -a +Q a a a diff --git a/maps/~unit_tests/unit_tests.dmm b/maps/~unit_tests/unit_tests.dmm index bd49c43884d..2ec10d96ea5 100644 --- a/maps/~unit_tests/unit_tests.dmm +++ b/maps/~unit_tests/unit_tests.dmm @@ -69,6 +69,12 @@ /obj/abstract/landmark/test/space_turf, /turf/space, /area/test_area/general) +"X" = ( +/obj/abstract/level_data/debug, +/turf/unsimulated/floor{ + icon_state = "hydrofloor" + }, +/area/test_area/powered_dynamic_lighting) (1,1,1) = {" a @@ -421,7 +427,7 @@ n n n b -d +X b f k diff --git a/mods/content/corporate/_corporate.dme b/mods/content/corporate/_corporate.dme index dc0fc83ae5f..2ab5787a2c8 100644 --- a/mods/content/corporate/_corporate.dme +++ b/mods/content/corporate/_corporate.dme @@ -26,6 +26,7 @@ #include "clothing\under\uniforms.dm" #include "datum\ai_icons.dm" #include "datum\ai_laws.dm" +#include "datum\loadout.dm" #include "datum\robolimbs.dm" #include "datum\antagonists\commando.dm" #include "datum\antagonists\deathsquad.dm" @@ -38,5 +39,6 @@ #include "items\medals.dm" #include "items\wristcomp.dm" #include "machines\machines.dm" +#include "structures\lockers.dm" // END_INCLUDE #endif diff --git a/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm b/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm index f13e010dddb..7e97ebf1f82 100644 --- a/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm +++ b/mods/content/corporate/away_sites/lar_maria/lar_maria-2.dmm @@ -1108,10 +1108,12 @@ /obj/machinery/atmospherics/omni/filter{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/lar_maria/atmos) "dr" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/cyan, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/lar_maria/atmos) "ds" = ( @@ -1177,10 +1179,12 @@ /area/lar_maria/atmos) "dD" = ( /obj/machinery/atmospherics/binary/oxyregenerator, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/lar_maria/atmos) "dE" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/lar_maria/atmos) "dF" = ( @@ -3090,6 +3094,13 @@ }, /turf/simulated/floor/plating, /area/lar_maria/solar_control) +"ok" = ( +/obj/machinery/atmospherics/binary/pump{ + dir = 4 + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/lar_maria/atmos) "pb" = ( /obj/machinery/atmospherics/binary/pump{ dir = 8 @@ -3183,12 +3194,31 @@ }, /turf/simulated/floor/tiled/white, /area/lar_maria/head_f) +"Ag" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/lar_maria/atmos) "DG" = ( /obj/machinery/computer/modular{ dir = 1 }, /turf/simulated/floor/tiled, /area/lar_maria/office) +"FZ" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/lar_maria/atmos) +"YS" = ( +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 10 + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/lar_maria/atmos) (1,1,1) = {" aa @@ -22470,7 +22500,7 @@ pb ci cA cR -cR +ok dB tb bx @@ -22671,7 +22701,7 @@ bx bM ci cn -cl +YS dn dB bM @@ -22874,7 +22904,7 @@ bN ci cn cn -cR +ok dC dO bx @@ -23480,7 +23510,7 @@ bQ ck bQ cU -cU +Ag bQ dR bG @@ -24085,7 +24115,7 @@ bx qb cl cB -cB +FZ dp dF ub diff --git a/mods/content/corporate/datum/loadout.dm b/mods/content/corporate/datum/loadout.dm index 00d68c950c2..5d33e0adf7f 100644 --- a/mods/content/corporate/datum/loadout.dm +++ b/mods/content/corporate/datum/loadout.dm @@ -15,7 +15,7 @@ /decl/loadout_option/accessory/armband_nt name = "corporate armband" - path = /obj/item/clothing/accessory/armband/whitered + path = /obj/item/clothing/accessory/armband/whitegreen /decl/loadout_option/suit/labcoat_corp name = "labcoat, corporate colors" @@ -23,7 +23,7 @@ flags = GEAR_HAS_TYPE_SELECTION /decl/loadout_option/uniform/corporate - namename = "corporate uniform selection" + name = "corporate uniform selection" path = /obj/item/clothing/under /decl/loadout_option/uniform/corporate/get_gear_tweak_options() diff --git a/mods/content/corporate/icons/cyberlimbs/bishop/bishop_main.dmi b/mods/content/corporate/icons/cyberlimbs/bishop/bishop_main.dmi index 7416142c7fc..97cee647880 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/bishop/bishop_main.dmi and b/mods/content/corporate/icons/cyberlimbs/bishop/bishop_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/bishop/bishop_rook.dmi b/mods/content/corporate/icons/cyberlimbs/bishop/bishop_rook.dmi index 38aba177e92..e32cd73d76b 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/bishop/bishop_rook.dmi and b/mods/content/corporate/icons/cyberlimbs/bishop/bishop_rook.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_main.dmi b/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_main.dmi index 55a22e74555..c5459759caf 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_main.dmi and b/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_titan.dmi b/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_titan.dmi index b22ce8aff62..537c9ce6879 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_titan.dmi and b/mods/content/corporate/icons/cyberlimbs/hephaestus/hephaestus_titan.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_main.dmi b/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_main.dmi index c34c6eeb8f6..4e93da50ad5 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_main.dmi and b/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_mantis.dmi b/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_mantis.dmi index 8e99e8af8fd..3e67999d772 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_mantis.dmi and b/mods/content/corporate/icons/cyberlimbs/morpheus/morpheus_mantis.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/nanotrasen/nanotrasen_main.dmi b/mods/content/corporate/icons/cyberlimbs/nanotrasen/nanotrasen_main.dmi index 817df63e3ee..66d0bbdb870 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/nanotrasen/nanotrasen_main.dmi and b/mods/content/corporate/icons/cyberlimbs/nanotrasen/nanotrasen_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/shellguard/shellguard_main.dmi b/mods/content/corporate/icons/cyberlimbs/shellguard/shellguard_main.dmi index a91367c6b2a..f0f2ad5f42e 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/shellguard/shellguard_main.dmi and b/mods/content/corporate/icons/cyberlimbs/shellguard/shellguard_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/veymed/veymed_female.dmi b/mods/content/corporate/icons/cyberlimbs/veymed/veymed_female.dmi index 41d1d1e6f51..26b92416d23 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/veymed/veymed_female.dmi and b/mods/content/corporate/icons/cyberlimbs/veymed/veymed_female.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/veymed/veymed_male.dmi b/mods/content/corporate/icons/cyberlimbs/veymed/veymed_male.dmi index 783725c8459..b4fd5806bb0 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/veymed/veymed_male.dmi and b/mods/content/corporate/icons/cyberlimbs/veymed/veymed_male.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi b/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi index 3134918466f..e5357284eff 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi and b/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_economy.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi b/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi index 7122cafb818..1fb14207c9b 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi and b/mods/content/corporate/icons/cyberlimbs/wardtakahashi/wardtakahashi_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/xion/xion_econo.dmi b/mods/content/corporate/icons/cyberlimbs/xion/xion_econo.dmi index ecdfcc197c7..7bb9044f86b 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/xion/xion_econo.dmi and b/mods/content/corporate/icons/cyberlimbs/xion/xion_econo.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/xion/xion_main.dmi b/mods/content/corporate/icons/cyberlimbs/xion/xion_main.dmi index 3fd2d896fde..b404f187388 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/xion/xion_main.dmi and b/mods/content/corporate/icons/cyberlimbs/xion/xion_main.dmi differ diff --git a/mods/content/corporate/icons/cyberlimbs/zenghu/zenghu_spirit.dmi b/mods/content/corporate/icons/cyberlimbs/zenghu/zenghu_spirit.dmi index 000d3837d69..ab9adde10b2 100644 Binary files a/mods/content/corporate/icons/cyberlimbs/zenghu/zenghu_spirit.dmi and b/mods/content/corporate/icons/cyberlimbs/zenghu/zenghu_spirit.dmi differ diff --git a/mods/content/generic_shuttles/tanker/tanker.dmm b/mods/content/generic_shuttles/tanker/tanker.dmm index 005876b84bc..02a3995e394 100644 --- a/mods/content/generic_shuttles/tanker/tanker.dmm +++ b/mods/content/generic_shuttles/tanker/tanker.dmm @@ -83,7 +83,7 @@ /area/tanker) "fi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 8 + dir = 4 }, /turf/simulated/floor/reinforced/oxygen, /area/tanker) @@ -441,13 +441,13 @@ "Sf" = ( /obj/effect/wallframe_spawn/reinforced, /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ - dir = 8 + dir = 4 }, /turf/simulated/floor/plating, /area/tanker) "So" = ( /obj/machinery/atmospherics/unary/outlet_injector{ - dir = 4; + dir = 8; id_tag = "tanker_input" }, /turf/simulated/floor/reinforced/oxygen, diff --git a/mods/content/government/away_sites/icarus/icarus-1.dmm b/mods/content/government/away_sites/icarus/icarus-1.dmm index 7f26d3567d8..11bd7e8d30b 100644 --- a/mods/content/government/away_sites/icarus/icarus-1.dmm +++ b/mods/content/government/away_sites/icarus/icarus-1.dmm @@ -1149,6 +1149,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled, /area/icarus/open) "dX" = ( @@ -1996,6 +1997,7 @@ "gy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/icarus/vessel) "gz" = ( @@ -2096,6 +2098,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/plating, /area/icarus/open) "gR" = ( @@ -2383,6 +2386,9 @@ dir = 4; id_tag = "d1starboardnacelle" }, +/obj/machinery/atmospherics/pipe/simple/visible/fuel{ + dir = 4 + }, /turf/simulated/floor/reinforced, /area/icarus/vessel) "hH" = ( @@ -2525,7 +2531,9 @@ /turf/unsimulated/beach/sand, /area/icarus/open) "id" = ( -/obj/machinery/atmospherics/unary/engine, +/obj/machinery/atmospherics/unary/engine{ + dir = 1 + }, /turf/simulated/wall/r_wall, /area/icarus/open) "ie" = ( @@ -2661,6 +2669,19 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/tiled/white, /area/icarus/vessel) +"rK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled, +/area/icarus/open) +"sK" = ( +/obj/machinery/atmospherics/pipe/simple/visible/fuel{ + dir = 4 + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/plating, +/area/icarus/open) (1,1,1) = {" aa @@ -22008,7 +22029,7 @@ en en ei et -hD +sK eA hX et @@ -22124,7 +22145,7 @@ dD dK dD dD -dD +rK ee ei ei @@ -22207,7 +22228,7 @@ aq gR hd eA -hD +sK et aq hD @@ -25760,7 +25781,7 @@ cf dL dY dD -dD +rK eA ei ei diff --git a/mods/content/government/away_sites/icarus/icarus-2.dmm b/mods/content/government/away_sites/icarus/icarus-2.dmm index c5f7ce09cff..30b7c9c2ba8 100644 --- a/mods/content/government/away_sites/icarus/icarus-2.dmm +++ b/mods/content/government/away_sites/icarus/icarus-2.dmm @@ -962,12 +962,12 @@ /turf/simulated/floor/tiled, /area/icarus/vessel) "df" = ( -/obj/machinery/door/airlock, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled, -/area/icarus/vessel) +/area/icarus/open) "dg" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 @@ -1271,6 +1271,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless{ icon_state = "dmg2" }, @@ -1343,6 +1344,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled, /area/icarus/vessel) "el" = ( @@ -1813,6 +1815,12 @@ /obj/structure/wall_frame, /turf/simulated/floor/plating, /area/icarus/vessel) +"MC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled, +/area/icarus/open) "RQ" = ( /obj/machinery/computer/modular{ dir = 4 @@ -21288,7 +21296,7 @@ dw dU dw dw -dw +MC ac cR ac @@ -24921,7 +24929,7 @@ bY bY dN dw -dU +df dR cR cR @@ -26126,7 +26134,7 @@ ap cu cJ ap -df +bw ap ap ap diff --git a/mods/content/government/away_sites/icarus/icarus.dm b/mods/content/government/away_sites/icarus/icarus.dm index 3b5d0d5b609..684b17ac277 100644 --- a/mods/content/government/away_sites/icarus/icarus.dm +++ b/mods/content/government/away_sites/icarus/icarus.dm @@ -42,7 +42,7 @@ prefix = "mods/content/government/away_sites/" suffixes = list("icarus/icarus-1.dmm", "icarus/icarus-2.dmm") cost = 2 - generate_mining_by_z = list(1, 2) + level_data_type = /obj/abstract/level_data/mining_level area_usage_test_exempted_root_areas = list(/area/icarus) area_coherency_test_exempt_areas = list(/area/icarus/vessel, /area/icarus/open) apc_test_exempt_areas = list( diff --git a/mods/content/government/ruins/ec_old_crash/ec_old_crash.dmm b/mods/content/government/ruins/ec_old_crash/ec_old_crash.dmm index e9f433ed1b5..32eb5ee9437 100644 --- a/mods/content/government/ruins/ec_old_crash/ec_old_crash.dmm +++ b/mods/content/government/ruins/ec_old_crash/ec_old_crash.dmm @@ -79,6 +79,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/map_template/ecship/cockpit) "ao" = ( @@ -310,6 +311,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/map_template/ecship/cryo) "aT" = ( @@ -405,6 +407,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/airless, /area/map_template/ecship/cryo) "bf" = ( @@ -479,6 +482,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/white/lowpressure, /area/map_template/ecship/cryo) "bm" = ( @@ -509,6 +513,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/airless, /area/map_template/ecship/crew) "bp" = ( @@ -788,6 +793,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor, /area/map_template/ecship/crew) "bQ" = ( @@ -970,6 +976,7 @@ /obj/structure/cable{ icon_state = "4-8" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor, /area/map_template/ecship/science) "ci" = ( @@ -1222,6 +1229,7 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/abstract/landmark/allowed_leak, /turf/simulated/floor/tiled/lowpressure, /area/map_template/ecship/engineering) "cJ" = ( @@ -1352,14 +1360,14 @@ dir = 8; icon_state = "tube1" }, -/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ - dir = 4 - }, /obj/effect/floor_decal/corner/yellow{ dir = 9 }, /obj/structure/emergency_dispenser/west, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/cyan{ + dir = 8 + }, /turf/simulated/floor, /area/map_template/ecship/engineering) "cZ" = ( @@ -1914,6 +1922,7 @@ /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/visible/cyan, /obj/abstract/landmark/clear, +/obj/abstract/landmark/allowed_leak, /turf/template_noop, /area/template_noop) "mD" = ( @@ -1962,6 +1971,15 @@ /obj/abstract/landmark/clear, /turf/template_noop, /area/template_noop) +"XP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/abstract/landmark/allowed_leak, +/turf/simulated/floor/tiled/airless, +/area/map_template/ecship/crew) "YW" = ( /obj/structure/catwalk, /obj/abstract/landmark/scorcher, @@ -2742,7 +2760,7 @@ aO bf by bB -bf +XP cu cC cI diff --git a/mods/content/psionics/system/psionics/faculties/coercion.dm b/mods/content/psionics/system/psionics/faculties/coercion.dm index 309fec7e786..13f238320ca 100644 --- a/mods/content/psionics/system/psionics/faculties/coercion.dm +++ b/mods/content/psionics/system/psionics/faculties/coercion.dm @@ -130,10 +130,10 @@ to_chat(target, "The muscles in your arms cramp horrendously!") if(prob(75)) target.emote("scream") - for(var/bp in target.held_item_slots) - var/datum/inventory_slot/inv_slot = target.held_item_slots[bp] - if(inv_slot?.holding?.simulated && prob(75) && target.unEquip(inv_slot.holding)) - var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(target, bp) + for(var/hand_slot in target.held_item_slots) + var/obj/item/thing = target.get_equipped_item(hand_slot) + if(thing?.simulated && prob(75) && target.unEquip(thing)) + var/obj/item/organ/external/E = GET_EXTERNAL_ORGAN(target, hand_slot) target.visible_message(SPAN_DANGER("\The [target] drops what they were holding as their [E ? E.name : "hand"] spasms!")) return TRUE diff --git a/mods/content/xenobiology/slime/examine.dm b/mods/content/xenobiology/slime/examine.dm index c944a795f37..cd2c90807fb 100644 --- a/mods/content/xenobiology/slime/examine.dm +++ b/mods/content/xenobiology/slime/examine.dm @@ -1,4 +1,4 @@ -/mob/living/slime/examine(mob/user) +/mob/living/slime/show_other_examine_strings(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() var/list/msg = list() if(stat == DEAD) diff --git a/mods/mobs/dionaea/icons/ui.dmi b/mods/mobs/dionaea/icons/ui.dmi index 7d36b52f60e..55b53bed9f0 100644 Binary files a/mods/mobs/dionaea/icons/ui.dmi and b/mods/mobs/dionaea/icons/ui.dmi differ diff --git a/mods/mobs/dionaea/mob/_nymph.dm b/mods/mobs/dionaea/mob/_nymph.dm index a3c3d83edc7..bb24669059d 100644 --- a/mods/mobs/dionaea/mob/_nymph.dm +++ b/mods/mobs/dionaea/mob/_nymph.dm @@ -1,6 +1,6 @@ -#define DIONA_SCREEN_LOC_HELD "EAST-8:16,SOUTH:5" -#define DIONA_SCREEN_LOC_HAT "EAST-7:16,SOUTH:5" -#define DIONA_SCREEN_LOC_INTENT "EAST-2,SOUTH:5" +#define DIONA_SCREEN_LOC_HELD "RIGHT-8:16,BOTTOM:5" +#define DIONA_SCREEN_LOC_HAT "RIGHT-7:16,BOTTOM:5" +#define DIONA_SCREEN_LOC_INTENT "RIGHT-2,BOTTOM:5" #define DIONA_SCREEN_LOC_HEALTH ui_alien_health /datum/extension/hattable/diona_nymph/wear_hat(mob/wearer, obj/item/clothing/head/new_hat) @@ -78,7 +78,7 @@ . = ..(mapload) -/mob/living/carbon/alien/diona/examine(mob/user) +/mob/living/carbon/alien/diona/show_examined_worn_held_items(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() if(holding_item) to_chat(user, SPAN_NOTICE("It is holding [html_icon(holding_item)] \a [holding_item].")) diff --git a/mods/mobs/dionaea/mob/nymph_inventory.dm b/mods/mobs/dionaea/mob/nymph_inventory.dm index 94a3111c023..f17adb4232b 100644 --- a/mods/mobs/dionaea/mob/nymph_inventory.dm +++ b/mods/mobs/dionaea/mob/nymph_inventory.dm @@ -57,3 +57,7 @@ visible_message(SPAN_NOTICE("\The [src] regurgitates \the [item].")) return TRUE . = ..() + +// Makes it so that the held item's screen_loc isn't unset. +/mob/living/carbon/alien/diona/item_should_have_screen_presence(obj/item/item, slot) + return (item == holding_item) || ..() \ No newline at end of file diff --git a/mods/mobs/dionaea/mob/nymph_ui.dm b/mods/mobs/dionaea/mob/nymph_ui.dm index 0d5f9ed16dd..30009b9d7a7 100644 --- a/mods/mobs/dionaea/mob/nymph_ui.dm +++ b/mods/mobs/dionaea/mob/nymph_ui.dm @@ -1,57 +1,77 @@ /obj/screen/intent/diona_nymph - icon = 'mods/mobs/dionaea/icons/ui.dmi' icon_state = "intent_devour" screen_loc = DIONA_SCREEN_LOC_INTENT /obj/screen/intent/diona_nymph/on_update_icon() if(intent == I_HURT || intent == I_GRAB) intent = I_GRAB - icon_state = "intent_expel" + icon_state = "intent_harm" else intent = I_DISARM - icon_state = "intent_devour" + icon_state = "intent_help" -/obj/screen/diona - icon = 'mods/mobs/dionaea/icons/ui.dmi' - -/obj/screen/diona/hat +/obj/screen/diona_hat name = "equipped hat" screen_loc = DIONA_SCREEN_LOC_HAT icon_state = "hat" -/obj/screen/diona/hat/Click() +/obj/screen/diona_hat/Click() var/datum/extension/hattable/hattable = get_extension(usr, /datum/extension/hattable) hattable?.drop_hat(usr) -/obj/screen/diona/held +/obj/screen/diona_held name = "held item" screen_loc = DIONA_SCREEN_LOC_HELD icon_state = "held" -/obj/screen/diona/held/Click() +/obj/screen/diona_held/Click() var/mob/living/carbon/alien/diona/chirp = usr if(istype(chirp) && chirp.holding_item) chirp.unEquip(chirp.holding_item) /datum/hud/diona_nymph - var/obj/screen/diona/hat/hat - var/obj/screen/diona/held/held + var/obj/screen/diona_hat/hat + var/obj/screen/diona_held/held + +/datum/hud/diona_nymph/get_ui_style() + return 'mods/mobs/dionaea/icons/ui.dmi' + +/datum/hud/diona_nymph/get_ui_color() + return COLOR_WHITE + +/datum/hud/diona_nymph/get_ui_alpha() + return 255 /datum/hud/diona_nymph/FinalizeInstantiation() + var/ui_style = get_ui_style() + var/ui_color = get_ui_color() + var/ui_alpha = get_ui_alpha() + src.adding = list() src.other = list() hat = new + hat.icon = ui_style + hat.color = ui_color + hat.alpha = ui_alpha adding += hat held = new + held.icon = ui_style + held.color = ui_color + held.alpha = ui_alpha adding += held action_intent = new /obj/screen/intent/diona_nymph() + action_intent.icon = ui_style + action_intent.color = ui_color + action_intent.alpha = ui_alpha adding += action_intent mymob.healths = new /obj/screen() - mymob.healths.icon = 'mods/mobs/dionaea/icons/ui.dmi' + mymob.healths.icon = ui_style + mymob.healths.color = ui_color + mymob.healths.alpha = ui_alpha mymob.healths.icon_state = "health0" mymob.healths.SetName("health") mymob.healths.screen_loc = DIONA_SCREEN_LOC_HEALTH diff --git a/mods/persistence/_persistence.dme b/mods/persistence/_persistence.dme index 128a828b7f3..e4224ad97a4 100644 --- a/mods/persistence/_persistence.dme +++ b/mods/persistence/_persistence.dme @@ -189,6 +189,7 @@ #include "modules\modular_computers\networking\machines\_network_machine.dm" #include "modules\modular_computers\networking\machines\area_controller.dm" #include "modules\modular_computers\networking\machines\router.dm" +#include "modules\multiz\level_data.dm" #include "modules\multiz\structures.dm" #include "modules\organs\organs.dm" #include "modules\organs\external\_external_saving.dm" diff --git a/mods/persistence/controllers/subsystems/initialization/chargen.dm b/mods/persistence/controllers/subsystems/initialization/chargen.dm index 37a2eb29b83..c4505480a92 100644 --- a/mods/persistence/controllers/subsystems/initialization/chargen.dm +++ b/mods/persistence/controllers/subsystems/initialization/chargen.dm @@ -11,7 +11,7 @@ SUBSYSTEM_DEF(chargen) var/obj/abstract/limbo_holder /datum/controller/subsystem/chargen/Initialize() - INCREMENT_WORLD_Z_SIZE + SSmapping.increment_world_z_size(/obj/abstract/level_data/chargen) map_z = world.maxz report_progress("Loading chargen map data.") @@ -93,6 +93,9 @@ SUBSYSTEM_DEF(chargen) SSchargen.release_spawn_pod(A) return ..() +/obj/abstract/level_data/chargen + level_flags = ZLEVEL_SEALED + //Chargen spawnpoint /decl/spawnpoint/chargen/Initialize() . = ..() diff --git a/mods/persistence/controllers/subsystems/mapping.dm b/mods/persistence/controllers/subsystems/mapping.dm index 04edc208803..e55c78ea87b 100644 --- a/mods/persistence/controllers/subsystems/mapping.dm +++ b/mods/persistence/controllers/subsystems/mapping.dm @@ -1,5 +1,10 @@ /datum/controller/subsystem/mapping - var/loaded_maps = FALSE + /// List of z-levels that are marked to be saved + var/list/saved_levels = list() + /// List of z-levels that regenerates mining turfs periodically + var/list/mining_levels = list() + + var/tmp/loaded_maps = FALSE /datum/controller/subsystem/mapping/Initialize(timeofday) . = ..() @@ -7,27 +12,23 @@ var/save_exists = SSpersistence.SaveExists() if(save_exists) report_progress_serializer("Existing save found.") - else + else report_progress_serializer("No existing save found.") #endif // Load our maps dynamically. for(var/z in global.using_map.default_levels) var/map_file = global.using_map.default_levels[z] #ifndef UNIT_TEST - if(save_exists && (text2num(z) in SSpersistence.saved_levels)) + if(save_exists && (text2num(z) in SSpersistence.saved_levels)) //#FIXME: DANGER This should use level_ids not level z!!!!! // Load a default map instead. - INCREMENT_WORLD_Z_SIZE + SSmapping.increment_world_z_size(/obj/abstract/level_data/space) continue #endif maploader.load_map(file(map_file), 1, 1, text2num(z), no_changeturf = TRUE) CHECK_TICK - + // Persistence overmaps use premapped overmaps at the moment, so we override here to delay building the overmaps until appropriate. loaded_maps = TRUE - if(length(global.overmaps_by_name)) - for(var/name in global.overmaps_by_name) - var/datum/overmap/O = global.overmaps_by_name[name] - O.late_initialize() // Build the list of static persisted levels from our map. #ifdef UNIT_TEST report_progress_serializer("Unit testing, so not loading saved map") diff --git a/mods/persistence/controllers/subsystems/mining.dm b/mods/persistence/controllers/subsystems/mining.dm index f6e3704d33d..8b35d9d7034 100644 --- a/mods/persistence/controllers/subsystems/mining.dm +++ b/mods/persistence/controllers/subsystems/mining.dm @@ -72,7 +72,7 @@ SUBSYSTEM_DEF(mining) /datum/controller/subsystem/mining/fire() if(collapse_imminent) if(world.timeofday - last_collapse >= ((regen_interval + warning_wait) * 600)) - var/list/z_levels = GetConnectedZlevels(global.using_map.mining_levels[1]) + var/list/z_levels = SSmapping.get_connected_levels(global.using_map.mining_levels[1]) for(var/mob/M in global.player_list) if(M.z in z_levels) to_chat(M, SPAN_DANGER(collapse_message)) @@ -82,7 +82,7 @@ SUBSYSTEM_DEF(mining) Regenerate() else if(world.timeofday - last_collapse >= regen_interval * 600) - var/list/z_levels = GetConnectedZlevels(global.using_map.mining_levels[1]) + var/list/z_levels = SSmapping.get_connected_levels(global.using_map.mining_levels[1]) for(var/mob/M in global.player_list) if(M.z in z_levels) to_chat(M, SPAN_DANGER(warning_message)) diff --git a/mods/persistence/controllers/subsystems/persistence.dm b/mods/persistence/controllers/subsystems/persistence.dm index 5be6bf12a19..3cbbc3987e2 100644 --- a/mods/persistence/controllers/subsystems/persistence.dm +++ b/mods/persistence/controllers/subsystems/persistence.dm @@ -133,7 +133,7 @@ var/list/z_transform = list() var/new_z_index = 1 // First we find the highest non-dynamic z_level. - for(var/z in global.using_map.station_levels) + for(var/z in SSmapping.station_levels) //#FIXME: That logic is flawed. We got levels that aren't dynamic and aren't station levels!!!! if(z in saved_levels) new_z_index = max(new_z_index, z) @@ -142,7 +142,7 @@ var/datum/persistence/load_cache/z_level/z_level = new() z_level.default_turf = get_base_turf(z) z_level.index = z - if(z in global.using_map.station_levels) + if(z in SSmapping.station_levels) //#FIXME: That logic is flawed. We got levels that aren't dynamic and aren't station levels!!!! z_level.dynamic = FALSE z_level.new_index = z else @@ -378,7 +378,7 @@ //var/last_index = world.maxz for(var/datum/persistence/load_cache/z_level/z_level in serializer.resolver.z_levels) if(z_level.dynamic) - INCREMENT_WORLD_Z_SIZE + SSmapping.increment_world_z_size(/obj/abstract/level_data/space) z_level.new_index = world.maxz else z_level.new_index = z_level.index diff --git a/mods/persistence/modules/modular_computers/networking/machines/area_controller.dm b/mods/persistence/modules/modular_computers/networking/machines/area_controller.dm index 54c3f5e9447..61582958359 100644 --- a/mods/persistence/modules/modular_computers/networking/machines/area_controller.dm +++ b/mods/persistence/modules/modular_computers/networking/machines/area_controller.dm @@ -28,7 +28,7 @@ set_extension(src, /datum/extension/eye/blueprints/area_control) for(var/A in owned_areas) global.protected_areas[A] = src - + recalculate_power() update_protected_count() @@ -61,11 +61,11 @@ /obj/machinery/network/area_controller/proc/check_area_access(var/mob/user, var/area/checked_area) if(!(checked_area in owned_areas)) return TRUE - + // Area controller needs to be active to work. if(use_power != POWER_USE_ACTIVE) return TRUE - if(stat & (NOPOWER|BROKEN)) + if(stat & (NOPOWER|BROKEN)) return TRUE var/list/req_access = list(owned_areas[checked_area]) // List of a list for OR type access check. @@ -86,10 +86,10 @@ . = ..() if(.) return - + if(href_list["create_area"]) var/datum/extension/eye/area_eye = get_extension(src, /datum/extension/eye) - area_eye.look(user, list(GetConnectedZlevels(z), "AREA CONTROLLER", src)) + area_eye.look(user, list(SSmapping.get_connected_levels(z), "AREA CONTROLLER", src)) return TOPIC_REFRESH var/datum/extension/network_device/net_device = get_extension(src, /datum/extension/network_device) @@ -160,7 +160,7 @@ /obj/machinery/network/area_controller/ui_data(mob/user, ui_key) . = ..() - + var/datum/extension/network_device/net_device = get_extension(src, /datum/extension/network_device) var/datum/computer_network/net = net_device.get_network() if(!net) @@ -243,7 +243,7 @@ max_protected_areas += 3 else max_protected_areas +=2 - + . = ..() /atom/proc/check_area_protection(var/mob/user, var/area/checked_area) @@ -257,9 +257,9 @@ if(!ac) global.protected_areas -= checked_area return TRUE - if(!(ac.z in GetConnectedZlevels(z))) // Area controller must be in the same sector. + if(!(ac.z in SSmapping.get_connected_levels(z))) // Area controller must be in the same sector. return TRUE - + return ac.check_area_access(user, checked_area) /obj/item/stock_parts/circuitboard/area_controller diff --git a/mods/persistence/modules/multiz/level_data.dm b/mods/persistence/modules/multiz/level_data.dm new file mode 100644 index 00000000000..ee8916b7181 --- /dev/null +++ b/mods/persistence/modules/multiz/level_data.dm @@ -0,0 +1,6 @@ +/obj/abstract/level_data/setup_level_data() + if(level_flags & ZLEVEL_SAVED) + SSmapping.saved_levels |= my_z + if(level_flags & ZLEVEL_MINING) + SSmapping.mining_levels |= my_z + . = ..() \ No newline at end of file diff --git a/mods/persistence/modules/organs/organs.dm b/mods/persistence/modules/organs/organs.dm index 31438ce0db6..8d3f622eefa 100644 --- a/mods/persistence/modules/organs/organs.dm +++ b/mods/persistence/modules/organs/organs.dm @@ -1,7 +1,6 @@ SAVED_VAR(/obj/item/organ/external, burn_dam) SAVED_VAR(/obj/item/organ/external, last_dam) SAVED_VAR(/obj/item/organ/external, limb_flags) -SAVED_VAR(/obj/item/organ/external, icon_name) SAVED_VAR(/obj/item/organ/external, body_part) SAVED_VAR(/obj/item/organ/external, icon_position) SAVED_VAR(/obj/item/organ/external, model) diff --git a/mods/persistence/modules/overmap/_overmap.dm b/mods/persistence/modules/overmap/_overmap.dm index bbc015c7cf5..cde2ceb4eeb 100644 --- a/mods/persistence/modules/overmap/_overmap.dm +++ b/mods/persistence/modules/overmap/_overmap.dm @@ -1,30 +1,30 @@ -// Complete override since Persistence hotloads it maps, and most of these functions must be delayed. -/datum/overmap/New(var/_name) +// // Complete override since Persistence hotloads it maps, and most of these functions must be delayed. +// /datum/overmap/New(var/_name) - name = _name +// name = _name - if(!map_turf_type) - map_turf_type = world.turf +// if(!map_turf_type) +// map_turf_type = world.turf - if(!name) - PRINT_STACK_TRACE("Unnamed overmap datum instantiated: [type]") +// if(!name) +// PRINT_STACK_TRACE("Unnamed overmap datum instantiated: [type]") - if(global.overmaps_by_name[name]) - PRINT_STACK_TRACE("Duplicate overmap datum instantiated: [type], [name], [overmaps_by_name[name]]") - global.overmaps_by_name[name] = src +// if(global.overmaps_by_name[name]) +// PRINT_STACK_TRACE("Duplicate overmap datum instantiated: [type], [name], [overmaps_by_name[name]]") +// global.overmaps_by_name[name] = src -/datum/overmap/proc/late_initialize() - generate_overmap() - testing("Overmap build for [name] complete.") +// /datum/overmap/proc/late_initialize() +// generate_overmap() +// testing("Overmap build for [name] complete.") - if(!assigned_z) - PRINT_STACK_TRACE("Overmap datum generated null assigned z_level.") +// if(!assigned_z) +// PRINT_STACK_TRACE("Overmap datum generated null assigned z_level.") - if(global.overmaps_by_z["[assigned_z]"]) - PRINT_STACK_TRACE("Duplicate overmap datum instantiated for z-level: [type], [assigned_z], [overmaps_by_name[name]]") - global.overmaps_by_z["[assigned_z]"] = src +// if(global.overmaps_by_z["[assigned_z]"]) +// PRINT_STACK_TRACE("Duplicate overmap datum instantiated for z-level: [type], [assigned_z], [overmaps_by_name[name]]") +// global.overmaps_by_z["[assigned_z]"] = src - for(var/event_type in subtypesof(/datum/overmap_event)) - var/datum/overmap_event/event = event_type - if(initial(event.overmap_id) == name) - LAZYADD(valid_event_types, event_type) \ No newline at end of file +// for(var/event_type in subtypesof(/datum/overmap_event)) +// var/datum/overmap_event/event = event_type +// if(initial(event.overmap_id) == name) +// LAZYADD(valid_event_types, event_type) \ No newline at end of file diff --git a/mods/persistence/modules/overmap/sectors.dm b/mods/persistence/modules/overmap/sectors.dm index 794bbcfd3ba..d8ee52fa7b3 100644 --- a/mods/persistence/modules/overmap/sectors.dm +++ b/mods/persistence/modules/overmap/sectors.dm @@ -48,17 +48,17 @@ return TRUE return FALSE +//#FIXME: This has to go. It's causing hard deletes in unit tests for something that really should be handled differently. // This is terrible, but because of when they are generated, there's no good way to override the creation of visiting_shuttle landmarks without // a ridiculous amount of copypasta. -/obj/effect/overmap/visitable/add_landmark(obj/effect/shuttle_landmark/landmark, shuttle_restricted_type) - if(istype(landmark, /obj/effect/shuttle_landmark/visiting_shuttle)) - SSshuttle.unregister_landmark(landmark) - qdel(landmark) - return - . = ..() +// /obj/effect/overmap/visitable/add_landmark(obj/effect/shuttle_landmark/landmark, shuttle_restricted_type) +// if(istype(landmark, /obj/effect/shuttle_landmark/visiting_shuttle)) +// SSshuttle.unregister_landmark(landmark) +// qdel(landmark) +// return +// . = ..() SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, planetary_area) -SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, lightlevel) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, night) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, daycycle) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, daycolumn) @@ -81,7 +81,6 @@ SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, ice_material) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, skybox_image) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, actors) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, species) -SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, atmosphere) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, breathgas) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, badgas) SAVED_VAR(/obj/effect/overmap/visitable/sector/exoplanet, repopulating) diff --git a/mods/persistence/modules/overmap/stellar_anchor.dm b/mods/persistence/modules/overmap/stellar_anchor.dm index eab45ea8591..784267fd575 100644 --- a/mods/persistence/modules/overmap/stellar_anchor.dm +++ b/mods/persistence/modules/overmap/stellar_anchor.dm @@ -21,7 +21,7 @@ /obj/machinery/stellar_anchor/interface_interact(user) ui_interact(user) return TRUE - + /obj/machinery/stellar_anchor/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, datum/topic_state/state = global.default_topic_state) var/data[0] data["anchored_areas"] = anchored_areas @@ -70,10 +70,10 @@ else if(href_list["check_errors"]) check_errors() return TOPIC_REFRESH - + else if(href_list["sector_type"]) sector_type = ((sector_type == "sector") ? "ship" : "sector") - return TOPIC_REFRESH + return TOPIC_REFRESH /obj/machinery/stellar_anchor/proc/launch() var/obj/effect/overmap/origin_sector = global.overmap_sectors["[z]"] @@ -82,7 +82,7 @@ var/overmap_x = origin_sector.x var/overmap_y = origin_sector.y - INCREMENT_WORLD_Z_SIZE // Create a new z-level for the sector to correspond to. + SSmapping.increment_world_z_size(/obj/abstract/level_data/space) // Create a new z-level for the sector to correspond to. new /obj/effect/portal(get_turf(src)) qdel_self() diff --git a/mods/species/ascent/icons/species/body/alate/body.dmi b/mods/species/ascent/icons/species/body/alate/body.dmi index 68efba56efd..d7093628bcf 100644 Binary files a/mods/species/ascent/icons/species/body/alate/body.dmi and b/mods/species/ascent/icons/species/body/alate/body.dmi differ diff --git a/mods/species/ascent/icons/species/body/gyne/body.dmi b/mods/species/ascent/icons/species/body/gyne/body.dmi index a147a64c1af..1f2dd777507 100644 Binary files a/mods/species/ascent/icons/species/body/gyne/body.dmi and b/mods/species/ascent/icons/species/body/gyne/body.dmi differ diff --git a/mods/species/ascent/icons/ui.dmi b/mods/species/ascent/icons/ui.dmi index aee54c87031..b85f1deeb96 100644 Binary files a/mods/species/ascent/icons/ui.dmi and b/mods/species/ascent/icons/ui.dmi differ diff --git a/mods/species/ascent/mobs/bodyparts_insectoid.dm b/mods/species/ascent/mobs/bodyparts_insectoid.dm index 8147b28376b..79ac588ae40 100644 --- a/mods/species/ascent/mobs/bodyparts_insectoid.dm +++ b/mods/species/ascent/mobs/bodyparts_insectoid.dm @@ -38,7 +38,6 @@ name = "central grasper" joint = "central wrist" organ_tag = BP_M_HAND - icon_name = BP_M_HAND parent_organ = BP_CHEST amputation_point = "central wrist" icon_position = 0 @@ -51,7 +50,6 @@ joint = "left upper wrist" amputation_point = "left upper wrist" organ_tag = BP_L_HAND_UPPER - icon_name = BP_L_HAND_UPPER gripper_ui_loc = "CENTER:16,BOTTOM+1:14" gripper_ui_label = "UL" @@ -70,7 +68,6 @@ joint = "right upper wrist" amputation_point = "right upper wrist" organ_tag = BP_R_HAND_UPPER - icon_name = BP_R_HAND_UPPER gripper_ui_loc = "CENTER-1:16,BOTTOM+1:14" gripper_ui_label = "UR" @@ -137,7 +134,7 @@ if(.) if(H.incapacitated()) to_chat(H, SPAN_WARNING("You can't produce eggs in your current state.")) - return + return if(H.nutrition < egg_metabolic_cost) to_chat(H, SPAN_WARNING("You are too ravenously hungry to produce more eggs.")) return diff --git a/mods/species/ascent/mobs/nymph/_nymph.dm b/mods/species/ascent/mobs/nymph/_nymph.dm index ecee07f5fb1..da13c9a5b71 100644 --- a/mods/species/ascent/mobs/nymph/_nymph.dm +++ b/mods/species/ascent/mobs/nymph/_nymph.dm @@ -1,7 +1,7 @@ -#define ANYMPH_SCREEN_LOC_HELD "EAST-8:16,SOUTH:5" -#define ANYMPH_SCREEN_LOC_HAT "EAST-7:16,SOUTH:5" -#define ANYMPH_SCREEN_LOC_MOLT "EAST-6:16,SOUTH:5" -#define ANYMPH_SCREEN_LOC_INTENT "EAST-2,SOUTH:5" +#define ANYMPH_SCREEN_LOC_HELD "RIGHT-8:16,BOTTOM:5" +#define ANYMPH_SCREEN_LOC_HAT "RIGHT-7:16,BOTTOM:5" +#define ANYMPH_SCREEN_LOC_MOLT "RIGHT-6:16,BOTTOM:5" +#define ANYMPH_SCREEN_LOC_INTENT "RIGHT-2,BOTTOM:5" #define ANYMPH_SCREEN_LOC_HEALTH ui_alien_health #define ANYMPH_MAX_CRYSTALS 20000 @@ -53,7 +53,7 @@ . = ..(mapload) set_extension(src, /datum/extension/base_icon_state, icon_state) -/mob/living/carbon/alien/ascent_nymph/examine(mob/user) +/mob/living/carbon/alien/ascent_nymph/show_examined_worn_held_items(mob/user, distance, infix, suffix, hideflags, decl/pronouns/pronouns) . = ..() if(holding_item) to_chat(user, SPAN_NOTICE("It is holding \icon[holding_item] \a [holding_item].")) diff --git a/mods/species/ascent/mobs/nymph/nymph_inventory.dm b/mods/species/ascent/mobs/nymph/nymph_inventory.dm index b335aebcb09..822618db4f8 100644 --- a/mods/species/ascent/mobs/nymph/nymph_inventory.dm +++ b/mods/species/ascent/mobs/nymph/nymph_inventory.dm @@ -81,3 +81,7 @@ visible_message(SPAN_NOTICE("\The [src] regurgitates \the [item].")) return TRUE . = ..() + +// Makes it so that the held item's screen_loc isn't unset. +/mob/living/carbon/alien/ascent_nymph/item_should_have_screen_presence(obj/item/item, slot) + return (item == holding_item) || ..() \ No newline at end of file diff --git a/mods/species/ascent/mobs/nymph/nymph_ui.dm b/mods/species/ascent/mobs/nymph/nymph_ui.dm index 3bb1ae08faa..ed5b890c142 100644 --- a/mods/species/ascent/mobs/nymph/nymph_ui.dm +++ b/mods/species/ascent/mobs/nymph/nymph_ui.dm @@ -1,53 +1,68 @@ /obj/screen/intent/ascent_nymph - icon = 'mods/species/ascent/icons/ui.dmi' icon_state = "intent_devour" screen_loc = ANYMPH_SCREEN_LOC_INTENT /obj/screen/intent/ascent_nymph/on_update_icon() if(intent == I_HURT || intent == I_GRAB) intent = I_GRAB - icon_state = "intent_expel" + icon_state = "intent_harm" else intent = I_DISARM - icon_state = "intent_devour" + icon_state = "intent_help" -/obj/screen/ascent_nymph - icon = 'mods/species/ascent/icons/ui.dmi' - -/obj/screen/ascent_nymph/held +/obj/screen/ascent_nymph_held name = "held item" screen_loc = ANYMPH_SCREEN_LOC_HELD icon_state = "held" -/obj/screen/ascent_nymph/held/Click() +/obj/screen/ascent_nymph_held/Click() var/mob/living/carbon/alien/ascent_nymph/nymph = usr if(istype(nymph) && nymph.holding_item) nymph.unEquip(nymph.holding_item) -/obj/screen/ascent_nymph/molt +/obj/screen/ascent_nymph_molt name = "molt" icon = 'icons/obj/action_buttons/organs.dmi' screen_loc = ANYMPH_SCREEN_LOC_MOLT icon_state = "molt-on" -/obj/screen/ascent_nymph/molt/Click() +/obj/screen/ascent_nymph_molt/Click() var/mob/living/carbon/alien/ascent_nymph/nymph = usr if(istype(nymph)) nymph.molt() /datum/hud/ascent_nymph - var/obj/screen/ascent_nymph/held/held - var/obj/screen/ascent_nymph/molt/molt + var/obj/screen/ascent_nymph_held/held + var/obj/screen/ascent_nymph_molt/molt var/obj/screen/food/food var/obj/screen/drink/drink +/datum/hud/ascent_nymph/get_ui_style() + return 'mods/species/ascent/icons/ui.dmi' + +/datum/hud/ascent_nymph/get_ui_color() + return COLOR_WHITE + +/datum/hud/ascent_nymph/get_ui_alpha() + return 255 + /datum/hud/ascent_nymph/FinalizeInstantiation() + var/ui_style = get_ui_style() + var/ui_color = get_ui_color() + var/ui_alpha = get_ui_alpha() + src.adding = list() src.other = list() held = new + held.icon = ui_style + held.color = ui_color + held.alpha = ui_alpha adding += held molt = new + molt.icon = ui_style + molt.color = ui_color + molt.alpha = ui_alpha adding += molt food = new @@ -66,9 +81,15 @@ adding += drink action_intent = new /obj/screen/intent/ascent_nymph() + action_intent.icon = ui_style + action_intent.color = ui_color + action_intent.alpha = ui_alpha adding += action_intent mymob.healths = new /obj/screen() + mymob.healths.icon = ui_style + mymob.healths.color = ui_color + mymob.healths.alpha = ui_alpha mymob.healths.SetName("health") mymob.healths.screen_loc = ANYMPH_SCREEN_LOC_HEALTH diff --git a/mods/species/bayliens/adherent/icons/body_amethyst.dmi b/mods/species/bayliens/adherent/icons/body_amethyst.dmi index 2ea58afbbce..7f4af05740c 100644 Binary files a/mods/species/bayliens/adherent/icons/body_amethyst.dmi and b/mods/species/bayliens/adherent/icons/body_amethyst.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_emerald.dmi b/mods/species/bayliens/adherent/icons/body_emerald.dmi index b13887f944e..49f7e9ecf08 100644 Binary files a/mods/species/bayliens/adherent/icons/body_emerald.dmi and b/mods/species/bayliens/adherent/icons/body_emerald.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_jet.dmi b/mods/species/bayliens/adherent/icons/body_jet.dmi index 84031cc4195..e32bcd6b932 100644 Binary files a/mods/species/bayliens/adherent/icons/body_jet.dmi and b/mods/species/bayliens/adherent/icons/body_jet.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_quartz.dmi b/mods/species/bayliens/adherent/icons/body_quartz.dmi index 1746f84f8c4..5dfc428bf66 100644 Binary files a/mods/species/bayliens/adherent/icons/body_quartz.dmi and b/mods/species/bayliens/adherent/icons/body_quartz.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_ruby.dmi b/mods/species/bayliens/adherent/icons/body_ruby.dmi index 9cc2983e73f..8aa2c99e62c 100644 Binary files a/mods/species/bayliens/adherent/icons/body_ruby.dmi and b/mods/species/bayliens/adherent/icons/body_ruby.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_sapphire.dmi b/mods/species/bayliens/adherent/icons/body_sapphire.dmi index 850b34f12e3..0e8e8646289 100644 Binary files a/mods/species/bayliens/adherent/icons/body_sapphire.dmi and b/mods/species/bayliens/adherent/icons/body_sapphire.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_topaz.dmi b/mods/species/bayliens/adherent/icons/body_topaz.dmi index 9da15d62126..76148324033 100644 Binary files a/mods/species/bayliens/adherent/icons/body_topaz.dmi and b/mods/species/bayliens/adherent/icons/body_topaz.dmi differ diff --git a/mods/species/bayliens/adherent/icons/body_turquoise.dmi b/mods/species/bayliens/adherent/icons/body_turquoise.dmi index 78952bfb04a..4570f52fb88 100644 Binary files a/mods/species/bayliens/adherent/icons/body_turquoise.dmi and b/mods/species/bayliens/adherent/icons/body_turquoise.dmi differ diff --git a/mods/species/bayliens/adherent/icons/damage_mask.dmi b/mods/species/bayliens/adherent/icons/damage_mask.dmi deleted file mode 100644 index f42eb2760e6..00000000000 Binary files a/mods/species/bayliens/adherent/icons/damage_mask.dmi and /dev/null differ diff --git a/mods/species/bayliens/adherent/organs/organs_external.dm b/mods/species/bayliens/adherent/organs/organs_external.dm index 2e47331bd0b..e7f3c3426b8 100644 --- a/mods/species/bayliens/adherent/organs/organs_external.dm +++ b/mods/species/bayliens/adherent/organs/organs_external.dm @@ -71,7 +71,6 @@ name = "first tendril" amputation_point = "midpoint" joint = "base" - icon_name = "l_leg" organ_tag = BP_L_LEG parent_organ = BP_CHEST max_damage =20 @@ -81,15 +80,12 @@ /obj/item/organ/external/tendril/two name = "second tendril" - icon_name = "r_leg" organ_tag = BP_R_LEG /obj/item/organ/external/tendril/three name = "third tendril" - icon_name = "l_foot" organ_tag = BP_L_FOOT /obj/item/organ/external/tendril/four name = "fourth tendril" - icon_name = "r_foot" organ_tag = BP_R_FOOT diff --git a/mods/species/bayliens/skrell/datum/accessory.dm b/mods/species/bayliens/skrell/datum/accessory.dm index 01649e06395..6bcff595dc3 100644 --- a/mods/species/bayliens/skrell/datum/accessory.dm +++ b/mods/species/bayliens/skrell/datum/accessory.dm @@ -1,9 +1,3 @@ -/decl/sprite_accessory/skin/skrell - name = "Default skrell skin" - icon_state = "default" - icon = 'mods/species/bayliens/skrell/icons/body/body.dmi' - species_allowed = list(SPECIES_SKRELL) - /decl/sprite_accessory/hair/skrell name = "Kanin - Very Short Headtails" icon = 'mods/species/bayliens/skrell/icons/body/hair.dmi' diff --git a/mods/species/bayliens/skrell/icons/body/body.dmi b/mods/species/bayliens/skrell/icons/body/body.dmi index 5d71019d7b1..91b0e86f3b1 100644 Binary files a/mods/species/bayliens/skrell/icons/body/body.dmi and b/mods/species/bayliens/skrell/icons/body/body.dmi differ diff --git a/mods/species/bayliens/tajaran/datum/accessory.dm b/mods/species/bayliens/tajaran/datum/accessory.dm index d2057a82a6d..c1b34d49b97 100644 --- a/mods/species/bayliens/tajaran/datum/accessory.dm +++ b/mods/species/bayliens/tajaran/datum/accessory.dm @@ -1,13 +1,4 @@ //Hairstyles - -/decl/sprite_accessory/facial_hair/shaved/Initialize() - . = ..() - species_allowed |= SPECIES_TAJARA - -/decl/sprite_accessory/hair/bald/Initialize() - . = ..() - species_allowed |= SPECIES_TAJARA - /decl/sprite_accessory/hair/taj name = "Tajaran Rattail" icon_state = "hair_rattail" @@ -139,45 +130,40 @@ name = "Tajaran Small Moustache" icon_state = "facial_smallstache" -/decl/sprite_accessory/skin/tajaran - name = "Default Tajaran skin" - icon_state = "default" - icon = 'mods/species/bayliens/tajaran/icons/body.dmi' - species_allowed = list(SPECIES_TAJARA) - /decl/sprite_accessory/marking/tajaran - name = "Tajaran Wide Ears" + name = "Tajaran Nose" + icon_state = "nose" icon = 'mods/species/bayliens/tajaran/icons/markings.dmi' species_allowed = list(SPECIES_TAJARA) body_parts = list(BP_HEAD) - icon_state = "ears_plain" blend = ICON_MULTIPLY -/decl/sprite_accessory/marking/tajaran/nose - name = "Tajaran Nose" - icon_state = "nose" +/decl/sprite_accessory/marking/tajaran/ears + name = "Tajaran Wide Ears" + icon_state = "ears_plain" + mask_to_bodypart = FALSE -/decl/sprite_accessory/marking/tajaran/wide_ears_inner +/decl/sprite_accessory/marking/tajaran/ears/wide_inner name = "Tajaran Wide Ears Interior" icon_state = "ears_plain_inner" -/decl/sprite_accessory/marking/tajaran/wide_ears_tuft +/decl/sprite_accessory/marking/tajaran/ears/wide_tuft name = "Tajaran Wide Ears Tuft" icon_state = "ears_plain_tuft" -/decl/sprite_accessory/marking/tajaran/narrow_ears +/decl/sprite_accessory/marking/tajaran/ears/narrow name = "Tajaran Narrow Ears" icon_state = "ears_narrow" -/decl/sprite_accessory/marking/tajaran/narrow_ears_inner +/decl/sprite_accessory/marking/tajaran/ears/narrow_inner name = "Tajaran Narrow Ears Interior" icon_state = "ears_narrow_inner" -/decl/sprite_accessory/marking/tajaran/narrow_ears_tuft +/decl/sprite_accessory/marking/tajaran/ears/narrow_tuft name = "Tajaran Narrow Ears Tuft" icon_state = "ears_narrow_tuft" -/decl/sprite_accessory/marking/tajaran/earrings +/decl/sprite_accessory/marking/tajaran/ears/earrings name = "Tajaran Earrings" icon_state = "taj_earrings" diff --git a/mods/species/bayliens/tajaran/datum/species.dm b/mods/species/bayliens/tajaran/datum/species.dm index 3cafaca8d80..bcd89b2aad9 100644 --- a/mods/species/bayliens/tajaran/datum/species.dm +++ b/mods/species/bayliens/tajaran/datum/species.dm @@ -16,6 +16,9 @@ name_plural = "Tajaran" base_prosthetics_model = null + low_light_vision_effectiveness = 0.15 + low_light_vision_adjustment_speed = 0.3 + description = "A small mammalian carnivore. If you are reading this, you are probably a Tajaran." hidden_from_codex = FALSE @@ -40,7 +43,7 @@ ) flesh_color = "#ae7d32" - base_markings = list(/decl/sprite_accessory/marking/tajaran = "#ae7d32") + base_markings = list(/decl/sprite_accessory/marking/tajaran/ears = "#ae7d32") base_hair_color = "#46321c" base_color = "#ae7d32" base_eye_color = "#00aa00" @@ -126,4 +129,4 @@ eye_icon = 'mods/species/bayliens/tajaran/icons/eyes.dmi' /decl/species/tajaran/handle_additional_hair_loss(var/mob/living/carbon/human/H, var/defer_body_update = TRUE) - . = H && H.change_skin_color(189, 171, 143) + . = H && H.change_skin_color(rgb(189, 171, 143)) diff --git a/mods/species/bayliens/tajaran/icons/body.dmi b/mods/species/bayliens/tajaran/icons/body.dmi index d8b41cd7c36..eec525ffac2 100644 Binary files a/mods/species/bayliens/tajaran/icons/body.dmi and b/mods/species/bayliens/tajaran/icons/body.dmi differ diff --git a/mods/species/bayliens/tajaran/icons/deformed_body.dmi b/mods/species/bayliens/tajaran/icons/deformed_body.dmi index 3b21a3d871b..05fb34deca6 100644 Binary files a/mods/species/bayliens/tajaran/icons/deformed_body.dmi and b/mods/species/bayliens/tajaran/icons/deformed_body.dmi differ diff --git a/mods/species/bayliens/tajaran/icons/eyes.dmi b/mods/species/bayliens/tajaran/icons/eyes.dmi index 1b29ac5de32..e7b1f1241a2 100644 Binary files a/mods/species/bayliens/tajaran/icons/eyes.dmi and b/mods/species/bayliens/tajaran/icons/eyes.dmi differ diff --git a/mods/species/bayliens/tajaran/icons/markings.dmi b/mods/species/bayliens/tajaran/icons/markings.dmi index 74acb457387..e92348f2851 100644 Binary files a/mods/species/bayliens/tajaran/icons/markings.dmi and b/mods/species/bayliens/tajaran/icons/markings.dmi differ diff --git a/mods/species/bayliens/tajaran/icons/tail.dmi b/mods/species/bayliens/tajaran/icons/tail.dmi index 946c7bf3e45..5d0e5e2bf02 100644 Binary files a/mods/species/bayliens/tajaran/icons/tail.dmi and b/mods/species/bayliens/tajaran/icons/tail.dmi differ diff --git a/mods/species/bayliens/tritonian/icons/body_female.dmi b/mods/species/bayliens/tritonian/icons/body_female.dmi index f41f334dd69..117b732bd3b 100644 Binary files a/mods/species/bayliens/tritonian/icons/body_female.dmi and b/mods/species/bayliens/tritonian/icons/body_female.dmi differ diff --git a/mods/species/bayliens/tritonian/icons/body_male.dmi b/mods/species/bayliens/tritonian/icons/body_male.dmi index c3d6554a5fd..44df6e916b7 100644 Binary files a/mods/species/bayliens/tritonian/icons/body_male.dmi and b/mods/species/bayliens/tritonian/icons/body_male.dmi differ diff --git a/mods/species/bayliens/unathi/icons/body_female.dmi b/mods/species/bayliens/unathi/icons/body_female.dmi index fad7c93f17a..77620a6b942 100644 Binary files a/mods/species/bayliens/unathi/icons/body_female.dmi and b/mods/species/bayliens/unathi/icons/body_female.dmi differ diff --git a/mods/species/bayliens/unathi/icons/body_male.dmi b/mods/species/bayliens/unathi/icons/body_male.dmi index 582c1ccd584..75d2a831377 100644 Binary files a/mods/species/bayliens/unathi/icons/body_male.dmi and b/mods/species/bayliens/unathi/icons/body_male.dmi differ diff --git a/mods/species/bayliens/unathi/icons/deformed_body_female.dmi b/mods/species/bayliens/unathi/icons/deformed_body_female.dmi index 63f99147848..ba4e40e8142 100644 Binary files a/mods/species/bayliens/unathi/icons/deformed_body_female.dmi and b/mods/species/bayliens/unathi/icons/deformed_body_female.dmi differ diff --git a/mods/species/bayliens/unathi/icons/deformed_body_male.dmi b/mods/species/bayliens/unathi/icons/deformed_body_male.dmi index 687db5ff7a6..a03dce76634 100644 Binary files a/mods/species/bayliens/unathi/icons/deformed_body_male.dmi and b/mods/species/bayliens/unathi/icons/deformed_body_male.dmi differ diff --git a/mods/species/neoavians/datum/accessory.dm b/mods/species/neoavians/datum/accessory.dm index bdd6cca21ef..7e05d3c0ec4 100644 --- a/mods/species/neoavians/datum/accessory.dm +++ b/mods/species/neoavians/datum/accessory.dm @@ -133,7 +133,3 @@ name = "Wing Feathers, Additive (Right)" icon_state = "wing_feathers-add" blend = ICON_ADD - -/decl/sprite_accessory/hair/bald/Initialize() - . = ..() - LAZYADD(species_allowed, SPECIES_AVIAN) diff --git a/mods/species/neoavians/icons/body.dmi b/mods/species/neoavians/icons/body.dmi index b83c9c64f83..5e9915ed184 100644 Binary files a/mods/species/neoavians/icons/body.dmi and b/mods/species/neoavians/icons/body.dmi differ diff --git a/mods/species/neoavians/icons/body_add.dmi b/mods/species/neoavians/icons/body_add.dmi index 56c31a46a9a..bd52c9a0b8d 100644 Binary files a/mods/species/neoavians/icons/body_add.dmi and b/mods/species/neoavians/icons/body_add.dmi differ diff --git a/mods/species/neoavians/icons/body_raptor.dmi b/mods/species/neoavians/icons/body_raptor.dmi index 5ec0239386c..fd339fb8f3b 100644 Binary files a/mods/species/neoavians/icons/body_raptor.dmi and b/mods/species/neoavians/icons/body_raptor.dmi differ diff --git a/mods/species/neoavians/icons/body_raptor_add.dmi b/mods/species/neoavians/icons/body_raptor_add.dmi index e1f3697bdb7..5294c1e3e1c 100644 Binary files a/mods/species/neoavians/icons/body_raptor_add.dmi and b/mods/species/neoavians/icons/body_raptor_add.dmi differ diff --git a/mods/species/neoavians/icons/markings.dmi b/mods/species/neoavians/icons/markings.dmi index 9febe1a0ad7..68489bb750f 100644 Binary files a/mods/species/neoavians/icons/markings.dmi and b/mods/species/neoavians/icons/markings.dmi differ diff --git a/mods/species/serpentid/icons/body_green.dmi b/mods/species/serpentid/icons/body_green.dmi index d939879615d..97c96f522fc 100644 Binary files a/mods/species/serpentid/icons/body_green.dmi and b/mods/species/serpentid/icons/body_green.dmi differ diff --git a/mods/species/serpentid/icons/body_grey.dmi b/mods/species/serpentid/icons/body_grey.dmi index 0849b9dbbe8..6d17829bf86 100644 Binary files a/mods/species/serpentid/icons/body_grey.dmi and b/mods/species/serpentid/icons/body_grey.dmi differ diff --git a/mods/species/utility_frames/icons/body.dmi b/mods/species/utility_frames/icons/body.dmi index d8e45d2b97b..0f439fd257b 100644 Binary files a/mods/species/utility_frames/icons/body.dmi and b/mods/species/utility_frames/icons/body.dmi differ diff --git a/mods/species/utility_frames/icons/markings.dmi b/mods/species/utility_frames/icons/markings.dmi index b824b5efc47..9867444ff91 100644 Binary files a/mods/species/utility_frames/icons/markings.dmi and b/mods/species/utility_frames/icons/markings.dmi differ diff --git a/mods/species/vox/datum/accessories.dm b/mods/species/vox/datum/accessories.dm index 8aa3c9809ce..462d2677b56 100644 --- a/mods/species/vox/datum/accessories.dm +++ b/mods/species/vox/datum/accessories.dm @@ -1,11 +1,3 @@ -/decl/sprite_accessory/hair/bald/Initialize() - . = ..() - LAZYDISTINCTADD(species_allowed, SPECIES_VOX) - -/decl/sprite_accessory/facial_hair/shaved/Initialize() - . = ..() - LAZYDISTINCTADD(species_allowed, SPECIES_VOX) - /decl/sprite_accessory/hair/vox name = "Long Vox Quills" icon = 'mods/species/vox/icons/body/soldier/hair.dmi' diff --git a/mods/species/vox/icons/body/deformed_body.dmi b/mods/species/vox/icons/body/deformed_body.dmi index 2db5c85b2cc..72ff01c5ddf 100644 Binary files a/mods/species/vox/icons/body/deformed_body.dmi and b/mods/species/vox/icons/body/deformed_body.dmi differ diff --git a/mods/species/vox/icons/body/improvised_cyberlimbs.dmi b/mods/species/vox/icons/body/improvised_cyberlimbs.dmi index 5fde28f9b19..697b248d4ee 100644 Binary files a/mods/species/vox/icons/body/improvised_cyberlimbs.dmi and b/mods/species/vox/icons/body/improvised_cyberlimbs.dmi differ diff --git a/mods/species/vox/icons/body/primalis_cyberlimbs.dmi b/mods/species/vox/icons/body/primalis_cyberlimbs.dmi index 4dd51b30efb..9472d8aba8d 100644 Binary files a/mods/species/vox/icons/body/primalis_cyberlimbs.dmi and b/mods/species/vox/icons/body/primalis_cyberlimbs.dmi differ diff --git a/mods/species/vox/icons/body/servitor/body.dmi b/mods/species/vox/icons/body/servitor/body.dmi index 5f3c67d504e..8c4d0df4178 100644 Binary files a/mods/species/vox/icons/body/servitor/body.dmi and b/mods/species/vox/icons/body/servitor/body.dmi differ diff --git a/mods/species/vox/icons/body/servitor/markings.dmi b/mods/species/vox/icons/body/servitor/markings.dmi index db38155d980..f59bea11239 100644 Binary files a/mods/species/vox/icons/body/servitor/markings.dmi and b/mods/species/vox/icons/body/servitor/markings.dmi differ diff --git a/mods/species/vox/icons/body/soldier/body.dmi b/mods/species/vox/icons/body/soldier/body.dmi index 500789d05fa..c77e6ab97ac 100644 Binary files a/mods/species/vox/icons/body/soldier/body.dmi and b/mods/species/vox/icons/body/soldier/body.dmi differ diff --git a/mods/species/vox/icons/body/soldier/markings.dmi b/mods/species/vox/icons/body/soldier/markings.dmi index ce604bf8ee7..b5ff4a42dee 100644 Binary files a/mods/species/vox/icons/body/soldier/markings.dmi and b/mods/species/vox/icons/body/soldier/markings.dmi differ diff --git a/nebula.dme b/nebula.dme index 99d4de4e068..e5d7c96da0a 100644 --- a/nebula.dme +++ b/nebula.dme @@ -45,6 +45,7 @@ #include "code\__defines\fluids.dm" #include "code\__defines\gamemode.dm" #include "code\__defines\guns.dm" +#include "code\__defines\holomap.dm" #include "code\__defines\hydroponics.dm" #include "code\__defines\integrated_circuits.dm" #include "code\__defines\interactions.dm" @@ -52,6 +53,7 @@ #include "code\__defines\items_clothing.dm" #include "code\__defines\jobs.dm" #include "code\__defines\languages.dm" +#include "code\__defines\level_data.dm" #include "code\__defines\lighting.dm" #include "code\__defines\lists.dm" #include "code\__defines\machinery.dm" @@ -71,6 +73,7 @@ #include "code\__defines\power.dm" #include "code\__defines\proc_presets.dm" #include "code\__defines\qdel.dm" +#include "code\__defines\radio.dm" #include "code\__defines\research.dm" #include "code\__defines\ruin_tags.dm" #include "code\__defines\shields.dm" @@ -209,12 +212,14 @@ #include "code\controllers\subsystems\ghost_images.dm" #include "code\controllers\subsystems\goals.dm" #include "code\controllers\subsystems\graphs.dm" +#include "code\controllers\subsystems\holomap.dm" #include "code\controllers\subsystems\icon_updates.dm" #include "code\controllers\subsystems\inactivity.dm" #include "code\controllers\subsystems\input.dm" #include "code\controllers\subsystems\jobs.dm" #include "code\controllers\subsystems\lighting.dm" #include "code\controllers\subsystems\machines.dm" +#include "code\controllers\subsystems\managed_instance.dm" #include "code\controllers\subsystems\mapping.dm" #include "code\controllers\subsystems\misc_late.dm" #include "code\controllers\subsystems\overlays.dm" @@ -1102,6 +1107,7 @@ #include "code\game\objects\items\weapons\circuitboards\machinery\docking_beacon.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\engineering_circuits.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\forensic.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\holomap.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\household.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\inertial_damper.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\mech_recharger.dm" @@ -1364,6 +1370,7 @@ #include "code\game\turfs\flooring\flooring_shuttle.dm" #include "code\game\turfs\initialization\init.dm" #include "code\game\turfs\initialization\maintenance.dm" +#include "code\game\turfs\simulated\_wall_icon_cache.dm" #include "code\game\turfs\simulated\floor.dm" #include "code\game\turfs\simulated\floor_acts.dm" #include "code\game\turfs\simulated\floor_attackby.dm" @@ -2038,6 +2045,7 @@ #include "code\modules\holodeck\HolodeckControl.dm" #include "code\modules\holodeck\HolodeckObjects.dm" #include "code\modules\holodeck\HolodeckPrograms.dm" +#include "code\modules\holomap\holomap.dm" #include "code\modules\hotloading\_admin.dm" #include "code\modules\hotloading\note.dm" #include "code\modules\hydroponics\grown.dm" @@ -2135,7 +2143,6 @@ #include "code\modules\locks\lock_construct.dm" #include "code\modules\maps\_map_template.dm" #include "code\modules\maps\_map_template_unit_testing.dm" -#include "code\modules\maps\dmm_suite.dm" #include "code\modules\maps\helper_landmarks.dm" #include "code\modules\maps\reader.dm" #include "code\modules\maps\template_types\antag_spawn.dm" @@ -2203,6 +2210,7 @@ #include "code\modules\mechs\components\software.dm" #include "code\modules\mechs\equipment\_equipment.dm" #include "code\modules\mechs\equipment\combat.dm" +#include "code\modules\mechs\equipment\combat_projectile.dm" #include "code\modules\mechs\equipment\engineering.dm" #include "code\modules\mechs\equipment\medical.dm" #include "code\modules\mechs\equipment\utility.dm" @@ -2233,6 +2241,7 @@ #include "code\modules\mob\animations.dm" #include "code\modules\mob\death.dm" #include "code\modules\mob\dview.dm" +#include "code\modules\mob\examine.dm" #include "code\modules\mob\floating_message.dm" #include "code\modules\mob\hear_say.dm" #include "code\modules\mob\hugs.dm" @@ -2272,6 +2281,7 @@ #include "code\modules\mob\living\damage_procs.dm" #include "code\modules\mob\living\death.dm" #include "code\modules\mob\living\default_language.dm" +#include "code\modules\mob\living\internals.dm" #include "code\modules\mob\living\inventory.dm" #include "code\modules\mob\living\life.dm" #include "code\modules\mob\living\living.dm" @@ -2306,6 +2316,7 @@ #include "code\modules\mob\living\carbon\give.dm" #include "code\modules\mob\living\carbon\hallucinations.dm" #include "code\modules\mob\living\carbon\immunity.dm" +#include "code\modules\mob\living\carbon\internals.dm" #include "code\modules\mob\living\carbon\life.dm" #include "code\modules\mob\living\carbon\resist.dm" #include "code\modules\mob\living\carbon\taste.dm" @@ -3282,7 +3293,6 @@ #include "code\modules\sprite_accessories\_accessory_facial.dm" #include "code\modules\sprite_accessories\_accessory_hair.dm" #include "code\modules\sprite_accessories\_accessory_markings.dm" -#include "code\modules\sprite_accessories\_accessory_skin.dm" #include "code\modules\status_conditions\_status.dm" #include "code\modules\status_conditions\_status_markers.dm" #include "code\modules\status_conditions\status_counters_simple.dm" @@ -3506,6 +3516,7 @@ #include "code\unit_tests\uplink_tests.dm" #include "code\unit_tests\view_variables_test.dm" #include "code\unit_tests\zas_tests.dm" +#include "code\unit_tests\zlevel_tests.dm" #include "code\unit_tests\~helpers.dm" #include "interface\interface.dm" #include "interface\skin.dmf" @@ -3549,7 +3560,6 @@ #include "maps\~mapsystem\maps_antagonism.dm" #include "maps\~mapsystem\maps_areas.dm" #include "maps\~mapsystem\maps_currency.dm" -#include "maps\~mapsystem\maps_environment.dm" #include "maps\~mapsystem\maps_jobs.dm" #include "maps\~mapsystem\maps_unit_testing.dm" #include "maps\~unit_tests\unit_testing.dm" diff --git a/test/check-paths.sh b/test/check-paths.sh index 2ee195efd88..43b8bfd3e98 100755 --- a/test/check-paths.sh +++ b/test/check-paths.sh @@ -47,7 +47,7 @@ exactly 3 "unmarked globally scoped variables" -P '^(/|)var/(?!global)' exactly 0 "global-marked member variables" -P '\t(/|)var.*/global/.+' exactly 0 "static-marked globally scoped variables" -P '^(/|)var.*/static/.+' exactly 1 "direct usage of decls_repository.get_decl()" 'decls_repository\.get_decl\(' -exactly 21 "direct loc set" -P '(\t|;|\.)loc\s*=(?!=)' +exactly 22 "direct loc set" -P '(\t|;|\.)loc\s*=(?!=)' # With the potential exception of << if you increase any of these numbers you're probably doing it wrong diff --git a/tools/ReplicateSaves/README.md b/tools/ReplicateSaves/README.md new file mode 100644 index 00000000000..a2ce3bd3111 --- /dev/null +++ b/tools/ReplicateSaves/README.md @@ -0,0 +1,7 @@ +# Save replicator + +Very quick and dirty script used to replicate the player saves for a given map for all other maps. Does not overwrite existing saves. + +# Usage + +`python tools/ReplicateSaves/replicate_saves.py [map to copy saves from]` diff --git a/tools/ReplicateSaves/replicate_saves.py b/tools/ReplicateSaves/replicate_saves.py new file mode 100644 index 00000000000..b935edab597 --- /dev/null +++ b/tools/ReplicateSaves/replicate_saves.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 + +import os +import sys +import re +import json + +__author__ = "MistakeNot4892" +__version__ = "0.1.0" +__license__ = "MIT" + +def main(): + + # Make sure they gave us a map to replicate. + if len(sys.argv) < 2: + print("Specify a map to replicate.") + return + + # Make sure we can access the maps folder. + mapname = sys.argv[1] + mapdir = os.path.join("maps") + if not os.path.isdir(mapdir): + print("Cannot find directory '" + mapdir + "', make sure you are running this script from the root repository directory.") + return + + # Work out what maps we actually need to replicate to. + # This should be updated as map directories change, or the script will break. + targetmaps = [] + ignoremaps = [ + "away", + "away_sites_testing", + "antag_spawn", + "example", + "modpack_testing", + "random_ruins", + "~mapsystem", + "~unit_tests" + ] + for dir in os.scandir(mapdir): + if os.path.isdir(dir): + targetmap = dir.path + targetmap = targetmap.replace(mapdir + os.sep, "") + if targetmap not in ignoremaps and targetmap != mapname: + targetmaps.append(targetmap) + + # Make sure we can actually see the save directory. + scrapedir = os.path.join("data", "player_saves") + if not os.path.isdir(scrapedir): + print("Cannot find directory '" + scrapedir + "', make sure you are running this script from the root repository directory.") + return + + # Find existing saves for the target map, then replicate them to all our target map dirs. + # If they exist already, don't copy over, just move on. + filename_regex = r"character_([a-zA-Z_]+)_(\d+)\.json" + print("Scanning saves in " + scrapedir + "...") + save_slots_to_update = [] + saves_to_replicate = [] + for (root, dirs, files) in os.walk(scrapedir): + for file in files: + match = re.match(filename_regex, file, re.I) + if match is None: + continue + if match.group(1) != mapname: + continue + savefile = os.path.join(root, file) + with open(savefile, "r") as loadedsave: + wrote = 0 + loadedlines = loadedsave.readlines() + for targetmap in targetmaps: + newfilename = savefile.replace(mapname, targetmap) + if not os.path.exists(newfilename): + with open(newfilename, "w") as writesave: + for line in loadedlines: + writesave.write(line) + wrote = wrote+1 + if wrote > 0: + print("Wrote " + str(wrote) + " copies of " + file + ".") + + # Collect slot names for each user to update their preferences.json + for (root, dirs, files) in os.walk(scrapedir): + has_prefs = False + has_saves = [] + for file in files: + if file == "preferences.json": + has_prefs = True + continue + match = re.match(filename_regex, file, re.I) + if match is None: + continue + has_saves.append(file) + + if has_prefs and len(has_saves): + new_slot_names = {} + for savefile in has_saves: + with open(os.path.join(root, savefile), "r") as loaded_save: + loaded_save_json = json.load(loaded_save) + new_slot_names[savefile.replace(".json", "")] = loaded_save_json["real_name"] + if len(new_slot_names): + loaded_pref_json = "" + with open(os.path.join(root, "preferences.json"), "r") as pref_file: + loaded_json = pref_file.read() + loaded_pref_json = json.loads(loaded_json) + loaded_pref_json["slot_names"] = new_slot_names + with open(os.path.join(root, "preferences.json"), "w") as pref_file: + pref_file.write(json.dumps(loaded_pref_json)) + + # Fin. + print("Done.") + +if __name__ == "__main__": + main()