diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index a1214000364e..f8e60a92b5a7 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -63,7 +63,7 @@ These are the few directives we have for project maintainers. - Emergency fixes. - Try to get secondary maintainer approval before merging if you are able to. - PRs with empty commits intended to generate a changelog. -- Do not merge PRs that contain content from the [banned content list](./CONTRIBUTING.md#banned-content). +- Do not merge PRs that contain content from the [banned content list](/CONTRIBUTING.md#banned-content). - Do not close PRs purely for breaking a template if the same information is contained without it. These are not steadfast rules as maintainers are expected to use their best judgement when operating. @@ -90,7 +90,7 @@ Things you **CAN'T** do: - [Close PRs](https://imgur.com/w2RqpX8.png): Only maintainers are allowed to close PRs. Do not hit that button. - Close issues purely for breaking a template if the same information is contained without it. -For more information reference the [Issue Manager Guide](./guides/ISSUE_MANAGER.md). +For more information reference the [Issue Manager Guide](/guides/ISSUE_MANAGER.md) @@ -102,28 +102,28 @@ Our team is entirely voluntary, as such we extend our thanks to maintainers, iss #### Writing readable code -[Style guide](./guides/STYLE.md) +[Style guide](/.github/guides/STYLE.md) #### Writing sane code -[Code standards](./guides/STANDARDS.md) +[Code standards](/.github/guides/STANDARDS.md) #### Writing understandable code -[Autodocumenting code](./guides/AUTODOC.md) +[Autodocumenting code](/.github/guides/AUTODOC.md) #### Misc -- [AI Datums](../code/datums/ai/learn_ai.md) -- [Embedding TGUI Components in Chat](../tgui/docs/chat-embedded-components.md) -- [Hard Deletes](./guides/HARDDELETES.md) -- [MC Tab Guide](./guides/MC_tab.md) -- [Policy Configuration System](./guides/POLICYCONFIG.md) -- [Quickly setting up a development database with ezdb](./guides/EZDB.md) -- [Required Tests (Continuous Integration)](./guides/CI.md) -- [Splitting up pull requests, aka atomization](./guides/ATOMIZATION.md) -- [UI Development](../tgui/README.md) -- [Visual Effects and Systems](./guides/VISUALS.md) +- [AI Datums](/code/datums/ai/learn_ai.md) +- [Embedding TGUI Components in Chat](/tgui/docs/chat-embedded-components.md) +- [Hard Deletes](/.github/guides/HARDDELETES.md) +- [MC Tab Guide](/.github/guides/MC_tab.md) +- [Policy Configuration System](/.github/guides/POLICYCONFIG.md) +- [Quickly setting up a development database with ezdb](/.github/guides/EZDB.md) +- [Required Tests (Continuous Integration)](/.github/guides/CI.md) +- [Splitting up pull requests, aka atomization](/.github/guides/ATOMIZATION.md) +- [UI Development](/.github/tgui/README.md) +- [Visual Effects and Systems](/.github/guides/VISUALS.md) ## Pull Request Process diff --git a/.github/workflows/auto_changelog.yml b/.github/workflows/auto_changelog.yml index 3feaaf87c236..37dc7d2e054e 100644 --- a/.github/workflows/auto_changelog.yml +++ b/.github/workflows/auto_changelog.yml @@ -14,7 +14,7 @@ jobs: if: github.event.pull_request.merged == true steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Generate App Token id: app-token-generation diff --git a/.github/workflows/autowiki.yml b/.github/workflows/autowiki.yml index b022eda4ea4f..2f6cadbbf922 100644 --- a/.github/workflows/autowiki.yml +++ b/.github/workflows/autowiki.yml @@ -20,7 +20,7 @@ jobs: echo "SECRETS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT - name: Checkout if: steps.secrets_set.outputs.SECRETS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Install BYOND if: steps.secrets_set.outputs.SECRETS_ENABLED uses: ./.github/actions/restore_or_install_byond diff --git a/.github/workflows/codeowner_reviews.yml b/.github/workflows/codeowner_reviews.yml index 8ebaed36a53f..cc5d8e8a20e0 100644 --- a/.github/workflows/codeowner_reviews.yml +++ b/.github/workflows/codeowner_reviews.yml @@ -12,7 +12,7 @@ jobs: steps: # Checks-out your repository under $GITHUB_WORKSPACE, so the job can access it - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 #Parse the Codeowner file on non draft PRs - name: CodeOwnersParser diff --git a/.github/workflows/collect_data.yml b/.github/workflows/collect_data.yml index dba143f0e05f..b82575bfd873 100644 --- a/.github/workflows/collect_data.yml +++ b/.github/workflows/collect_data.yml @@ -27,7 +27,7 @@ jobs: required_build_versions: ${{ steps.setup_required_build_versions.outputs.required_build_versions }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Find Maps id: map_finder run: | diff --git a/.github/workflows/compare_screenshots.yml b/.github/workflows/compare_screenshots.yml index b0c024508296..d9fdaa2b1ff9 100644 --- a/.github/workflows/compare_screenshots.yml +++ b/.github/workflows/compare_screenshots.yml @@ -8,12 +8,12 @@ jobs: timeout-minutes: 15 runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup directory run: mkdir -p artifacts # If we ever add more artifacts, this is going to break, but it'll be obvious. - name: Download screenshot tests - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: path: artifacts - name: ls -R diff --git a/.github/workflows/compile_all_maps.yml b/.github/workflows/compile_all_maps.yml index 528120051851..2512d5fa9796 100644 --- a/.github/workflows/compile_all_maps.yml +++ b/.github/workflows/compile_all_maps.yml @@ -14,7 +14,7 @@ jobs: timeout-minutes: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Bun uses: ./.github/actions/setup_bun - name: Restore BYOND from Cache @@ -35,7 +35,7 @@ jobs: timeout-minutes: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Bun uses: ./.github/actions/setup_bun - name: Restore BYOND from Cache diff --git a/.github/workflows/compile_changelogs.yml b/.github/workflows/compile_changelogs.yml index 01fcb6f7f0e8..eae668d4a4ed 100644 --- a/.github/workflows/compile_changelogs.yml +++ b/.github/workflows/compile_changelogs.yml @@ -35,7 +35,7 @@ jobs: - name: "Checkout" if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 25 persist-credentials: false diff --git a/.github/workflows/discord_discussions.yml b/.github/workflows/discord_discussions.yml index 439315cbb954..7f894fa18ca2 100644 --- a/.github/workflows/discord_discussions.yml +++ b/.github/workflows/discord_discussions.yml @@ -34,7 +34,7 @@ jobs: dotnet-quality: ga - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Build Tgstation.DiscordDiscussions run: dotnet publish -c Release -o discord_discussions_bins tools/Tgstation.DiscordDiscussions/Tgstation.DiscordDiscussions.csproj diff --git a/.github/workflows/gbp.yml b/.github/workflows/gbp.yml index 62e7dbec7dba..4931252e962e 100644 --- a/.github/workflows/gbp.yml +++ b/.github/workflows/gbp.yml @@ -12,7 +12,7 @@ jobs: issues: write # to apply labels steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Run Auto Labeler uses: actions/github-script@v7 with: @@ -40,7 +40,7 @@ jobs: echo "ACTIONS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT - name: Checkout if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup git if: steps.value_holder.outputs.ACTIONS_ENABLED run: | @@ -48,7 +48,7 @@ jobs: git config --global user.email "<>" - name: Checkout alternate branch if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: "gbp-balances" # The branch name path: gbp-balances diff --git a/.github/workflows/gbp_collect.yml b/.github/workflows/gbp_collect.yml index 644595e13365..1e83e860ab72 100644 --- a/.github/workflows/gbp_collect.yml +++ b/.github/workflows/gbp_collect.yml @@ -18,7 +18,7 @@ jobs: echo "ACTIONS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT - name: Checkout if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup git if: steps.value_holder.outputs.ACTIONS_ENABLED run: | @@ -26,7 +26,7 @@ jobs: git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - name: Checkout alternate branch if: steps.value_holder.outputs.ACTIONS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: "gbp-balances" # The branch name path: gbp-balances diff --git a/.github/workflows/generate_documentation.yml b/.github/workflows/generate_documentation.yml index 79c6f180ffe0..79dc2593681d 100644 --- a/.github/workflows/generate_documentation.yml +++ b/.github/workflows/generate_documentation.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-22.04 concurrency: gen-docs steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup cache uses: actions/cache@v4 with: diff --git a/.github/workflows/remove_guide_comments.yml b/.github/workflows/remove_guide_comments.yml index 2c65239133f8..4bbc0c602515 100644 --- a/.github/workflows/remove_guide_comments.yml +++ b/.github/workflows/remove_guide_comments.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Remove guide comments uses: actions/github-script@v7 with: diff --git a/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml index b7313767f4d0..fc9238bcf025 100644 --- a/.github/workflows/rerun_flaky_tests.yml +++ b/.github/workflows/rerun_flaky_tests.yml @@ -10,7 +10,7 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt == 1 }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Rerun flaky tests uses: actions/github-script@v7 with: @@ -22,7 +22,7 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.run_attempt == 2 }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Report flaky tests uses: actions/github-script@v7 with: diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml index c61d3238aa1e..e50b47324e3e 100644 --- a/.github/workflows/run_integration_tests.yml +++ b/.github/workflows/run_integration_tests.yml @@ -29,14 +29,14 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Restore BYOND from Cache uses: ./.github/actions/restore_or_install_byond with: major: ${{ inputs.major }} minor: ${{ inputs.minor }} - name: Download build outputs - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: name: build-artifact-${{ inputs.major || env.BYOND_MAJOR }}-${{ inputs.minor || env.BYOND_MINOR}} path: ./ diff --git a/.github/workflows/run_linters.yml b/.github/workflows/run_linters.yml index b3abb82f0f5d..b97c16d451e5 100644 --- a/.github/workflows/run_linters.yml +++ b/.github/workflows/run_linters.yml @@ -9,7 +9,7 @@ jobs: timeout-minutes: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Restore SpacemanDMM cache uses: actions/cache@v4 with: diff --git a/.github/workflows/setup_build_artifact.yml b/.github/workflows/setup_build_artifact.yml index a6a6a94068bd..aaf4cfb45538 100644 --- a/.github/workflows/setup_build_artifact.yml +++ b/.github/workflows/setup_build_artifact.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-22.04 timeout-minutes: 5 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Setup Bun uses: ./.github/actions/setup_bun - name: Restore BYOND from Cache diff --git a/.github/workflows/show_screenshot_test_results.yml b/.github/workflows/show_screenshot_test_results.yml index b48ca983b35e..6901e1d1d176 100644 --- a/.github/workflows/show_screenshot_test_results.yml +++ b/.github/workflows/show_screenshot_test_results.yml @@ -25,7 +25,7 @@ jobs: echo "SECRETS_ENABLED=$SECRET_EXISTS" >> $GITHUB_OUTPUT - name: Checkout if: steps.secrets_set.outputs.SECRETS_ENABLED - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Prepare module if: steps.secrets_set.outputs.SECRETS_ENABLED run: | diff --git a/.github/workflows/test_merge_bot.yml b/.github/workflows/test_merge_bot.yml index 00f6bd19cb59..101c3ad2b322 100644 --- a/.github/workflows/test_merge_bot.yml +++ b/.github/workflows/test_merge_bot.yml @@ -23,7 +23,7 @@ jobs: echo "GET_TEST_MERGES_URL=$SECRET_EXISTS" >> $GITHUB_OUTPUT - name: Checkout if: steps.secrets_set.outputs.GET_TEST_MERGES_URL - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Prepare module if: steps.secrets_set.outputs.GET_TEST_MERGES_URL run: | diff --git a/.github/workflows/tgs_test.yml b/.github/workflows/tgs_test.yml index 466d4ee86cd7..6c689ae7d1a0 100644 --- a/.github/workflows/tgs_test.yml +++ b/.github/workflows/tgs_test.yml @@ -64,7 +64,7 @@ jobs: dotnet-version: 8.0.x - name: Checkout Repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Test TGS Integration run: dotnet run -c Release --project tools/tgs_test ${{ github.repository }} /tgs_instances/tgstation ${{ env.TGS_API_PORT }} ${{ github.event.pull_request.head.sha || github.sha }} ${{ secrets.GITHUB_TOKEN }} ${{ env.PR_NUMBER }} diff --git a/.github/workflows/update_tgs_dmapi.yml b/.github/workflows/update_tgs_dmapi.yml index 977a8affc520..885ac26c8391 100644 --- a/.github/workflows/update_tgs_dmapi.yml +++ b/.github/workflows/update_tgs_dmapi.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Clone - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Branch run: | diff --git a/.gitignore b/.gitignore index 87c5006457ea..640ac9e61d86 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # Local overrides--you can use this to change the config for your dev environment (like setting up SQL) without worrying about committing it /config/dev_overrides.txt +/config/dev_preferences.json #Ignore everything in datafolder and subdirectories /data/**/* diff --git a/Dockerfile b/Dockerfile index 2265d03ada62..332d18e840fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,7 @@ FROM base AS byond WORKDIR /byond RUN apt-get install -y --no-install-recommends \ + libcurl4 \ curl \ unzip \ make \ diff --git a/README.md b/README.md index 835c6c65ff1f..6f35513f457c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -## SittleStation (/tg/station Downstream) +## PostMeta (/tg/station Downstream) [![Build Status](https://github.com/Lambda-13/massmeta/workflows/CI%20Suite/badge.svg)](https://github.com/Huz2e/massmeta/actions?query=workflow%3A%22CI+Suite%22) [![Percentage of issues still open](http://isitmaintained.com/badge/open/Lambda-13/massmeta.svg)](http://isitmaintained.com/project/Lambda-13/massmeta "Percentage of issues still open") @@ -16,14 +16,14 @@ ![Goodge](https://forthebadge.com/images/badges/ctrl-c-ctrl-v.svg) ![endingbadge](https://forthebadge.com/images/badges/works-on-my-machine-1.svg) -| Website | Link | -| ----------------------- | ------------------------------------------------------------------------------- | -| MassMeta Code | [https://github.com/Alliance-codeBase/SittleStation](https://github.com/Alliance-codeBase/SittleStation) | -| Guide to Modularization | [./modular_meta/modularization_guide_ru.md](./massmeta/modularization_guide.md) | -| Our Discord | [https://discord.gg/lambda](https://discord.gg/XHRzsmG4Eq) | -| /TG/ Website | [https://www.tgstation13.org](https://www.tgstation13.org) | -| /TG/ Codedocs | [https://codedocs.tgstation13.org/](https://codedocs.tgstation13.org/) | -| /TG/ Coderbus Discord | [https://discord.gg/Vh8TJp9](https://discord.gg/Vh8TJp9) | +| Website | Link | +| ----------------------- | -------------------------------------------------------------------------------------------------------- | +| MassMeta Code | [https://github.com/Alliance-codeBase/SittleStation](https://github.com/Alliance-codeBase/SittleStation) | +| Guide to Modularization | [./modular_meta/modularization_guide_ru.md](./massmeta/modularization_guide.md) | +| Our Discord | [https://discord.gg/lambda](https://discord.gg/XHRzsmG4Eq) | +| /TG/ Website | [https://www.tgstation13.org](https://www.tgstation13.org) | +| /TG/ Codedocs | [https://codedocs.tgstation13.org/](https://codedocs.tgstation13.org/) | +| /TG/ Coderbus Discord | [https://discord.gg/Vh8TJp9](https://discord.gg/Vh8TJp9) | This is MassMeta downstream fork of /tg/station SpaceStation 13. diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_gloves.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_gloves.dmm new file mode 100644 index 000000000000..e6aebfa12a76 --- /dev/null +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_gloves.dmm @@ -0,0 +1,2327 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ak" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/edge, +/area/ruin/roroco) +"am" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"as" = ( +/turf/closed/wall/r_wall/rust, +/area/ruin/roroco/harvesting) +"aM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"aU" = ( +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"be" = ( +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + pixel_y = -3; + pixel_x = 3; + puzzle_id = "roro_factory" + }, +/turf/closed/wall, +/area/ruin/roroco/management) +"bP" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"bR" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/ruin/roroco/harvesting) +"cG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"cR" = ( +/obj/structure/closet/l3closet, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/anticorner{ + dir = 4 + }, +/turf/open/floor/iron/freezer/corner{ + dir = 8 + }, +/area/ruin/roroco/extraction) +"cU" = ( +/obj/machinery/light/small/red/directional/east, +/turf/open/floor/iron/smooth_large, +/area/ruin/roroco) +"cV" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"dg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating/rust, +/area/ruin/roroco/maintenance) +"dk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/obj/machinery/conveyor_switch/oneway{ + name = "product conveyor switch" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/half, +/turf/open/floor/iron/freezer/half, +/area/ruin/roroco/extraction) +"dD" = ( +/obj/structure/closet/firecloset, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco) +"dZ" = ( +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 1 + }, +/obj/machinery/duct, +/obj/effect/decal/cleanable/blood/trail_holder{ + dir = 10 + }, +/turf/open/floor/iron/freezer, +/area/ruin/roroco/extraction) +"ed" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 8 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/dark_blue/half, +/turf/open/floor/iron/freezer/edge{ + dir = 2 + }, +/area/ruin/roroco/extraction) +"ee" = ( +/obj/machinery/door/airlock{ + name = "Janitor's Closet"; + id_tag = "roro_factory"; + req_access = list("roroco") + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/poddoor/shutters/indestructible{ + id = "roro_factory" + }, +/obj/item/restraints/legcuffs/beartrap/prearmed, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/ruin/roroco/janitor) +"eq" = ( +/obj/structure/billboard/gloves, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"ev" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/flowers_br/style_random, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"ez" = ( +/obj/machinery/duct, +/obj/effect/decal/cleanable/blood/trail_holder{ + dir = 10 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/ruin/roroco/harvesting) +"eP" = ( +/obj/machinery/door/airlock/hatch{ + name = "Harvesting Room"; + req_access = list("roroco_secure") + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/duct, +/turf/open/floor/iron/freezer/large, +/area/ruin/roroco/harvesting) +"eS" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"eW" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/large/style_random, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"fB" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/door/airlock/multi_tile/public/glass{ + name = "Packing Room"; + req_access = list("roroco") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"gV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"gX" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/ruin/roroco) +"hM" = ( +/obj/structure/closet/l3closet, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/mob_spawn/corpse/human/roroco_processing, +/turf/open/floor/iron/freezer/edge{ + dir = 4 + }, +/area/ruin/roroco/extraction) +"hS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_edge, +/area/ruin/roroco/harvesting) +"hZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/maintenance) +"ii" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/ruin/roroco) +"il" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/button/door/directional/south{ + id = "RoroToilet"; + name = "Emergency Washroom Override"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/roroco/janitor) +"io" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"iq" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Fabric Processing Maintenance"; + req_access = list("roroco_secure") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/maintenance) +"iz" = ( +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + pixel_y = 5; + pixel_x = 3; + puzzle_id = "roro_factory" + }, +/turf/closed/wall, +/area/ruin/roroco) +"iN" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/puzzle_dots{ + pixel_y = 32; + id = "roro_factory" + }, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"iW" = ( +/obj/machinery/shower/directional/east, +/obj/structure/fluff/shower_drain, +/turf/open/floor/iron/freezer/large, +/area/ruin/roroco/harvesting) +"jA" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/half, +/obj/effect/decal/cleanable/blood/trail_holder, +/turf/open/floor/iron/freezer/edge, +/area/ruin/roroco/extraction) +"kh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/ruin/roroco/janitor) +"kt" = ( +/obj/structure/rack, +/obj/item/stack/sheet/cardboard, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"kS" = ( +/obj/effect/puzzle_poddoor_open{ + icon = 'icons/effects/mapping_helpers.dmi'; + id = "roro_factory"; + queue_id = "roro_factory" + }, +/turf/closed/wall, +/area/ruin/roroco/janitor) +"ll" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/item/crowbar, +/obj/structure/closet/cardboard/roroco, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"lm" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/machinery/duct, +/obj/effect/decal/cleanable/blood/trail_holder{ + dir = 1 + }, +/turf/open/floor/iron/corner{ + dir = 1 + }, +/area/ruin/roroco) +"lq" = ( +/turf/closed/wall/rust, +/area/ruin/roroco/janitor) +"lO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/anticorner, +/turf/open/floor/iron/freezer/corner{ + dir = 1 + }, +/area/ruin/roroco/extraction) +"lY" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"md" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron, +/area/ruin/roroco) +"mk" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"mm" = ( +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + pixel_y = -2; + pixel_x = -6; + puzzle_id = "roro_factory" + }, +/turf/closed/wall/r_wall, +/area/ruin/roroco/harvesting) +"mD" = ( +/obj/effect/turf_decal/delivery/red, +/obj/effect/decal/cleanable/blood/splatter, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"mF" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/ruin/roroco) +"nj" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/full, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"nA" = ( +/turf/closed/wall, +/area/ruin/roroco/packing) +"nO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"nY" = ( +/turf/closed/wall, +/area/ruin/roroco/janitor) +"oa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"ok" = ( +/turf/closed/wall, +/area/ruin/roroco) +"ot" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/ruin/roroco) +"oA" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/structure/plasticflaps/opaque, +/turf/open/floor/plating, +/area/ruin/roroco/extraction) +"oS" = ( +/obj/item/kirbyplants/random, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"oV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"py" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical/old, +/obj/machinery/light/blacklight/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"pK" = ( +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + pixel_y = -2; + pixel_x = 1; + puzzle_id = "roro_factory" + }, +/turf/closed/wall, +/area/ruin/roroco) +"pX" = ( +/obj/machinery/door/airlock/external{ + req_access = list("roroco") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "roro_maint" + }, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"qo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/steps, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"qA" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/half, +/turf/open/floor/iron/freezer/edge, +/area/ruin/roroco/extraction) +"qN" = ( +/obj/structure/sink/directional/south, +/turf/open/floor/plating/rust, +/area/ruin/roroco/janitor) +"rd" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"rp" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + puzzle_id = "roro_factory" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/south, +/obj/structure/closet/cardboard/roroco, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"rw" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/rack, +/obj/item/mop, +/obj/item/reagent_containers/cup/bucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/janitor) +"rQ" = ( +/turf/closed/wall/r_wall, +/area/ruin/roroco/extraction) +"sr" = ( +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/turf/open/floor/iron/corner{ + dir = 4 + }, +/area/ruin/roroco) +"sG" = ( +/obj/structure/sink/directional/east, +/obj/effect/turf_decal/siding/dark_blue, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 8 + }, +/turf/open/floor/iron/freezer/edge{ + dir = 8 + }, +/area/ruin/roroco/extraction) +"sH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"sM" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"sS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Fabric Processing Maintenance"; + req_access = list("roroco_secure") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/maintenance) +"th" = ( +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/iron/corner{ + dir = 8 + }, +/area/ruin/roroco) +"tk" = ( +/mob/living/basic/roro, +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"tv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"tG" = ( +/obj/machinery/door/window/right/directional/south{ + name = "Harvest Transfer"; + req_access = list("roroco_secure") + }, +/obj/machinery/door/window/left/directional/north{ + name = "Harvest Transfer"; + req_access = list("roroco_secure") + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/ruin/roroco/harvesting) +"tU" = ( +/obj/structure/fence, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"um" = ( +/obj/structure/sign/warning/secure_area/directional/south, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/turf/open/floor/iron/corner{ + dir = 4 + }, +/area/ruin/roroco) +"uv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"uL" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/ruin/roroco/management) +"uO" = ( +/obj/machinery/door/airlock/external{ + req_access = list("roroco") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "roro_maint" + }, +/turf/open/floor/plating/rust, +/area/ruin/roroco/maintenance) +"uW" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"vb" = ( +/obj/machinery/airalarm/directional/east, +/obj/structure/window/reinforced/tinted/frosted/spawner/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/ruin/roroco/harvesting) +"vj" = ( +/turf/open/floor/iron/smooth_large, +/area/ruin/roroco) +"vG" = ( +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"vV" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"wm" = ( +/obj/machinery/vending/coffee, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco) +"wA" = ( +/obj/machinery/power/smes/full, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"wH" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/maintenance) +"wM" = ( +/mob/living/basic/roro, +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"wP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/structure/electrified_grille, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"wQ" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/secateurs{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/circular_saw{ + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/dark_blue/anticorner{ + dir = 1 + }, +/turf/open/floor/iron/freezer/corner, +/area/ruin/roroco/extraction) +"wU" = ( +/turf/closed/wall/rust, +/area/ruin/roroco/maintenance) +"xj" = ( +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/anticorner{ + dir = 8 + }, +/turf/open/floor/iron/freezer/corner{ + dir = 4 + }, +/area/ruin/roroco/extraction) +"xI" = ( +/turf/closed/wall, +/area/ruin/roroco/harvesting) +"xK" = ( +/turf/template_noop, +/area/template_noop) +"xP" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 1 + }, +/turf/open/floor/iron/freezer/edge{ + dir = 1 + }, +/area/ruin/roroco/extraction) +"xT" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/packing) +"xX" = ( +/obj/machinery/door/window/left/directional/west{ + name = "Roro Pen"; + req_access = list("roroco_secure") + }, +/turf/open/floor/iron/dark/textured_corner{ + dir = 1 + }, +/area/ruin/roroco/harvesting) +"yh" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"yz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_half, +/area/ruin/roroco/harvesting) +"yD" = ( +/obj/effect/turf_decal/roroco, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco) +"yN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"zd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/steps{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"zl" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock{ + req_access = list("roroco"); + name = "Employee Washroom"; + id_tag = "RoroToilet" + }, +/turf/open/floor/iron/freezer, +/area/ruin/roroco/management) +"zn" = ( +/turf/closed/wall, +/area/ruin/roroco/extraction) +"zq" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + puzzle_id = "roro_factory" + }, +/turf/open/floor/plating/rust, +/area/ruin/roroco/maintenance) +"zJ" = ( +/turf/closed/wall, +/area/ruin/roroco/maintenance) +"zN" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Aw" = ( +/obj/structure/closet/emcloset, +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + puzzle_id = "roro_factory" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco) +"AF" = ( +/obj/structure/closet/emcloset, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"AL" = ( +/obj/item/card/id/away/roroco, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"AP" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/ruin/roroco/maintenance) +"AZ" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/mop_bucket/janitorialcart, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/roroco/janitor) +"Bh" = ( +/obj/machinery/atmospherics/components/unary/passive_vent/layer2, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"BO" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/roroco/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"BS" = ( +/turf/closed/wall/r_wall, +/area/ruin/roroco/harvesting) +"Ce" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/west, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Cf" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Management Office"; + req_access = list("roroco") + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/ruin/roroco/management) +"Ci" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/ruin/roroco) +"CV" = ( +/obj/effect/turf_decal/tile/brown, +/turf/open/floor/iron/corner, +/area/ruin/roroco) +"Dr" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + pixel_x = 4; + pixel_y = -8; + puzzle_id = "roro_factory" + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"DK" = ( +/obj/machinery/button/door/directional/south{ + id = "RoroToilet"; + name = "Lock Control"; + normaldoorcontrol = 1; + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet/secret{ + dir = 4; + secret_type = /obj/item/keycard/roro + }, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/iron/freezer, +/area/ruin/roroco/management) +"Ef" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"Eh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/platform/iron, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Es" = ( +/obj/machinery/door/airlock/freezer{ + name = "Product Extraction"; + req_access = list("roroco_secure") + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/freezer/large, +/area/ruin/roroco/extraction) +"EA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"ES" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/directional/east, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 4 + }, +/area/ruin/roroco) +"EX" = ( +/obj/structure/chair/office/light, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"Fr" = ( +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco) +"FB" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"FQ" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Main Entrance"; + req_access = list("roroco") + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "roro_entrance" + }, +/turf/open/floor/iron/smooth_large, +/area/ruin/roroco) +"GA" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/gibspawner, +/obj/item/clothing/gloves/color/yellow, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 1 + }, +/turf/open/floor/iron/freezer/edge{ + dir = 1 + }, +/area/ruin/roroco/extraction) +"GC" = ( +/turf/closed/wall/rust, +/area/ruin/roroco) +"GS" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco) +"Hk" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/mob_spawn/corpse/human/roroco_packing, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Ho" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Hx" = ( +/obj/structure/fence/door/opened{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"HE" = ( +/obj/machinery/duct, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/ruin/roroco/harvesting) +"JK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"JL" = ( +/obj/structure/tank_holder, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"JV" = ( +/turf/open/floor/plating/snowed/icemoon, +/area/ruin/roroco) +"KO" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/dark_blue/anticorner, +/turf/open/floor/iron/freezer/corner{ + dir = 1 + }, +/area/ruin/roroco/extraction) +"Lb" = ( +/obj/structure/rack, +/obj/item/melee/baseball_bat/british, +/obj/item/hatchet/wooden, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"Lo" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 8 + }, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/dark_blue/half{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/trail_holder, +/turf/open/floor/iron/freezer/edge{ + dir = 1 + }, +/area/ruin/roroco/extraction) +"LE" = ( +/obj/machinery/modular_computer/preset/civilian, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"LL" = ( +/obj/effect/decal/cleanable/crayon/puzzle/pin{ + puzzle_id = "roro_factory" + }, +/obj/structure/rack, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"LZ" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"Mg" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 4 + }, +/area/ruin/roroco) +"Mk" = ( +/obj/structure/rack, +/obj/item/stack/sheet/cardboard, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"MA" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 8 + }, +/obj/item/boxcutter/extended{ + pixel_y = 5; + pixel_x = 9 + }, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/tile/dark_blue/anticorner{ + dir = 4 + }, +/turf/open/floor/iron/freezer/corner{ + dir = 8 + }, +/area/ruin/roroco/extraction) +"Nf" = ( +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Ni" = ( +/obj/structure/table/wood, +/obj/machinery/firealarm/directional/east, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"Nt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"NH" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/ruin/roroco/packing) +"NN" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"Oq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"OF" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ruin/roroco/janitor) +"OV" = ( +/obj/machinery/conveyor/auto{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/iron/freezer/edge{ + dir = 1 + }, +/area/ruin/roroco/extraction) +"Pj" = ( +/obj/structure/reagent_dispensers/plumbed{ + name = "water reservoir"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"PN" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"PY" = ( +/turf/closed/mineral/random/snow, +/area/icemoon/surface/outdoors/nospawn) +"Qr" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/firealarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/corner{ + dir = 1 + }, +/area/ruin/roroco) +"Qv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"Qw" = ( +/obj/structure/flora/bush/fullgrass/style_random, +/turf/open/floor/grass, +/area/ruin/roroco/harvesting) +"QA" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/edge, +/area/ruin/roroco) +"QF" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/ruin/roroco/harvesting) +"QP" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/warm/directional/south, +/turf/open/floor/iron/edge, +/area/ruin/roroco) +"Rd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/smooth_large, +/area/ruin/roroco) +"Rf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"Rg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Rl" = ( +/obj/structure/sink/directional/south, +/obj/structure/mirror/broken/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/iron/freezer, +/area/ruin/roroco/management) +"Rt" = ( +/obj/machinery/light/blacklight/directional/north, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"RA" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/textured_corner{ + dir = 8 + }, +/area/ruin/roroco/harvesting) +"Sf" = ( +/obj/machinery/atmospherics/components/tank/oxygen{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating/rust, +/area/ruin/roroco/maintenance) +"Sr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"SN" = ( +/obj/machinery/firealarm/directional/west, +/obj/structure/sink/directional/east, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"Tk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Tl" = ( +/obj/structure/rack, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/item/storage/box, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/packing) +"Uh" = ( +/obj/machinery/door/window/left/directional/north{ + name = "Harvest Transfer"; + req_access = list("roroco_secure") + }, +/obj/machinery/door/window/right/directional/south{ + name = "Harvest Transfer"; + req_access = list("roroco_secure") + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/blood/trail_holder{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 1 + }, +/area/ruin/roroco/harvesting) +"Ut" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/puzzle/password/pin/directional/north{ + id = "roro_factory"; + late_initialize_pop = 1 + }, +/obj/machinery/duct, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"Uz" = ( +/turf/closed/wall, +/area/ruin/roroco/management) +"UA" = ( +/obj/structure/fence/corner{ + dir = 10 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"UO" = ( +/obj/machinery/shower/directional/east, +/obj/structure/fluff/shower_drain, +/turf/open/floor/iron/freezer/large, +/area/ruin/roroco/extraction) +"UV" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Vl" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"VA" = ( +/obj/effect/turf_decal/siding/dark_blue/corner{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"VQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"VS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/maintenance{ + name = "Primary Hallway Maintenance"; + req_access = list("roroco") + }, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Wd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/duct, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/catwalk_floor, +/area/ruin/roroco/maintenance) +"WB" = ( +/obj/machinery/door/airlock/external/ruin{ + name = "Main Entrance"; + req_access = list("roroco") + }, +/obj/structure/fans/tiny, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "roro_entrance" + }, +/turf/open/floor/iron/smooth_large, +/area/ruin/roroco) +"Xc" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/ruin/roroco) +"Xf" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/edge{ + dir = 1 + }, +/area/ruin/roroco) +"Xm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Xs" = ( +/turf/closed/wall/r_wall, +/area/ruin/roroco) +"Xv" = ( +/obj/structure/cable, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) +"Xw" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/turf/open/floor/iron/edge{ + dir = 8 + }, +/area/ruin/roroco) +"XQ" = ( +/obj/effect/turf_decal/siding/dark_blue, +/obj/machinery/duct, +/turf/open/floor/iron/dark/smooth_large, +/area/ruin/roroco/harvesting) +"Yy" = ( +/obj/machinery/door/puzzle/keycard/roro, +/obj/machinery/door/firedoor, +/obj/machinery/duct, +/obj/effect/decal/cleanable/blood/trail_holder{ + dir = 1 + }, +/turf/open/floor/iron/freezer/large, +/area/ruin/roroco/extraction) +"YV" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance{ + name = "Plant Room"; + req_access = list("roroco") + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ruin/roroco/maintenance) +"Zi" = ( +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Zs" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/dark_red{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/edge, +/area/ruin/roroco) +"ZE" = ( +/obj/structure/chair/office/light, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/carpet/blue, +/area/ruin/roroco/management) + +(1,1,1) = {" +xK +xK +xK +xK +xK +xK +xK +mF +gX +ii +UV +UV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(2,1,1) = {" +xK +xK +xK +xK +xK +UV +mF +JV +JV +JV +ii +UV +UV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(3,1,1) = {" +xK +xK +xK +xK +UV +UV +GC +WB +Xc +FQ +iz +UV +UV +UV +UV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(4,1,1) = {" +xK +xK +xK +xK +UV +UV +Xc +Rd +Rd +vj +Xc +UV +PY +PY +UV +UV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(5,1,1) = {" +xK +xK +xK +xK +UV +UV +Xc +vj +cU +vj +Xc +PY +PY +PY +PY +UV +UV +UV +UV +Hk +Zi +Zi +xK +xK +xK +xK +"} +(6,1,1) = {" +xK +xK +xK +UV +UV +ok +ok +FQ +ok +FQ +ok +ok +PY +PY +PY +PY +PY +tU +tU +Hx +tU +tU +tU +tU +UA +UV +"} +(7,1,1) = {" +xK +xK +xK +UV +ok +ok +Aw +CV +Xw +sr +dD +Xs +rQ +rQ +rQ +rQ +PY +PY +UV +UV +UV +UV +UV +eq +zN +xK +"} +(8,1,1) = {" +xK +xK +UV +UV +Xc +CV +Xw +Ci +yD +ot +um +rQ +UO +sG +UO +BS +BS +BS +BS +mm +UV +AL +UV +UV +zN +xK +"} +(9,1,1) = {" +xK +xK +UV +ok +pK +BO +md +ES +Mg +Mg +lm +Yy +Lo +dZ +ed +eP +SN +XQ +iW +BS +PY +UV +UV +UV +zN +UV +"} +(10,1,1) = {" +xK +xK +xK +ok +wm +FB +ak +nA +NH +NH +NH +rQ +cR +hM +lO +xI +lY +VA +xI +BS +BS +as +PY +PY +zN +UV +"} +(11,1,1) = {" +xK +nY +nY +nY +kS +uW +Zs +nA +Tl +Mk +kt +rQ +rQ +zn +Es +xI +py +Rf +bR +LZ +NN +BS +BS +PY +PY +PY +"} +(12,1,1) = {" +xK +lq +qN +AZ +nY +Ut +QA +fB +am +cG +sH +rp +rQ +wQ +xj +xI +Lb +Rf +bR +wM +Qw +Qw +BS +PY +PY +UV +"} +(13,1,1) = {" +xK +nY +OF +kh +ee +yh +QA +aU +nO +ll +oV +aM +rQ +GA +jA +Uh +ez +QF +bR +Qw +eW +ev +BS +PY +UV +UV +"} +(14,1,1) = {" +xK +nY +rw +il +nY +Xf +QA +nA +nj +nj +xT +xT +oA +OV +dk +xI +mD +yz +bR +NN +tk +Qw +BS +PY +PY +xK +"} +(15,1,1) = {" +xK +nY +nY +nY +nY +io +QA +Uz +uL +uL +uL +uL +rQ +xP +qA +tG +HE +hS +bR +Qw +Qw +BS +BS +PY +PY +xK +"} +(16,1,1) = {" +xK +xK +xK +ok +Fr +Ef +QP +Uz +oS +JK +EX +Dr +rQ +MA +KO +xI +Rt +RA +vb +xX +BS +BS +PY +PY +xK +xK +"} +(17,1,1) = {" +xK +xK +PY +ok +GS +sM +QA +Cf +bP +bP +Xv +Vl +rQ +rQ +sS +BS +AF +gV +BS +BS +as +UV +PY +PY +xK +xK +"} +(18,1,1) = {" +xK +PY +PY +ok +ok +th +Qr +Uz +LE +Qv +ZE +Ni +Uz +iN +wH +BS +BS +iq +BS +PY +PY +UV +PY +xK +xK +xK +"} +(19,1,1) = {" +PY +PY +PY +PY +ok +ok +VS +Uz +Uz +zl +Uz +Uz +Uz +oa +oa +PN +Wd +hZ +zJ +xK +xK +xK +xK +xK +xK +xK +"} +(20,1,1) = {" +PY +PY +wU +wU +zJ +Ce +oa +Rg +Uz +Rl +DK +Uz +Xm +oa +Oq +Pj +wU +eS +zJ +xK +xK +xK +xK +xK +xK +xK +"} +(21,1,1) = {" +PY +PY +zJ +zq +wU +Ho +uv +vG +Uz +Uz +Uz +be +wP +Rg +zJ +zJ +zJ +UV +UV +xK +xK +xK +xK +xK +xK +xK +"} +(22,1,1) = {" +PY +PY +zJ +AP +rd +Nf +uv +yN +EA +Nt +uv +uv +uv +Tk +pX +VQ +eS +UV +xK +xK +xK +xK +xK +xK +xK +xK +"} +(23,1,1) = {" +PY +PY +wU +zJ +zJ +zJ +dg +qo +Eh +zd +Rg +Sr +JL +wU +zJ +uO +wU +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(24,1,1) = {" +xK +PY +PY +PY +PY +wU +wU +zJ +zJ +zJ +wU +YV +zJ +zJ +Bh +tv +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(25,1,1) = {" +xK +xK +xK +PY +PY +xK +xK +xK +xK +zJ +cV +vV +mk +zJ +UV +UV +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(26,1,1) = {" +xK +xK +xK +xK +xK +xK +xK +xK +xK +zJ +wA +LL +Sf +zJ +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} +(27,1,1) = {" +xK +xK +xK +xK +xK +xK +xK +xK +xK +zJ +zJ +zJ +wU +zJ +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +xK +"} diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm index 86db7b55fe7a..80e245fa11ba 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_homestead.dmm @@ -77,7 +77,7 @@ /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) "sF" = ( -/turf/open/openspace/icemoon/keep_below, +/turf/open/lava/plasma/ice_moon, /area/icemoon/surface/outdoors/nospawn) "tD" = ( /obj/structure/flora/rock/pile/icy/style_random, @@ -148,7 +148,7 @@ }, /area/ruin/powered/shuttle) "wN" = ( -/turf/open/openspace/icemoon/keep_below, +/turf/open/lava/plasma/ice_moon, /area/ruin/powered/shuttle) "ym" = ( /obj/structure/chair/wood{ diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm index 0ea4048d1276..137ddbbca247 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_mining_site.dmm @@ -74,9 +74,10 @@ /turf/open/floor/plating/snowed/smoothed/icemoon, /area/icemoon/underground/explored) "mQ" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) @@ -103,9 +104,10 @@ /area/icemoon/underground/explored) "pi" = ( /obj/effect/turf_decal/weather/snow/corner, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) @@ -121,17 +123,19 @@ /area/icemoon/underground/explored) "rx" = ( /obj/structure/flora/rock/pile/icy, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) "rI" = ( /obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) @@ -151,9 +155,10 @@ /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) "uN" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) @@ -161,9 +166,10 @@ /obj/effect/turf_decal/weather/snow/corner{ dir = 5 }, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) @@ -171,9 +177,10 @@ /obj/effect/turf_decal/weather/snow/corner{ dir = 1 }, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) @@ -215,9 +222,10 @@ /obj/effect/turf_decal/weather/snow/corner{ dir = 10 }, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) @@ -303,9 +311,10 @@ /obj/effect/turf_decal/weather/snow/corner{ dir = 4 }, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/ice/icemoon, /area/icemoon/underground/explored) diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm index 94bdf86b23d7..f93bfc737a0f 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_syndidome.dmm @@ -560,6 +560,19 @@ /obj/machinery/light/small/red/directional/west, /turf/open/floor/mineral/plastitanium/red, /area/ruin/syndibiodome) +"hC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/machinery/light/small/dim/directional/west, +/obj/item/polymorph_belt/functioning, +/obj/item/pen/edagger, +/obj/item/clothing/under/costume/seifuku/red, +/obj/structure/sign/poster/contraband/communist_state/directional/west, +/turf/open/floor/carpet/green, +/area/ruin/syndibiodome) "hF" = ( /obj/structure/chair/office/tactical{ dir = 8 @@ -1320,6 +1333,10 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/ruin/syndibiodome) +"qJ" = ( +/obj/effect/turf_decal/trimline/tram/filled, +/turf/closed/indestructible/syndicate, +/area/ruin/syndibiodome) "qN" = ( /turf/closed/indestructible/syndicate, /area/ruin/syndibiodome) @@ -2192,9 +2209,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/ruin/syndibiodome) -"zM" = ( -/turf/closed/indestructible/syndicate/nodiagonal, -/area/ruin/syndibiodome) "zP" = ( /obj/machinery/door/airlock/hatch{ name = "Observation Room" @@ -3077,19 +3091,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/ruin/syndibiodome) -"Lg" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/closet/syndicate, -/obj/item/clothing/mask/gas/syndicate, -/obj/machinery/light/small/dim/directional/west, -/obj/item/polymorph_belt/functioning, -/obj/item/pen/edagger, -/obj/item/clothing/under/costume/seifuku/red, -/obj/structure/sign/poster/contraband/communist_state/directional/west, -/turf/open/floor/carpet/green, -/area/ruin/syndibiodome) "Lm" = ( /obj/effect/turf_decal/siding/wideplating/dark{ dir = 5 @@ -3411,10 +3412,6 @@ /obj/effect/turf_decal/trimline/neutral/line, /turf/open/floor/iron/dark, /area/ruin/syndibiodome) -"Os" = ( -/obj/effect/turf_decal/trimline/tram/filled, -/turf/closed/indestructible/syndicate/nodiagonal, -/area/ruin/syndibiodome) "Oy" = ( /obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, /obj/machinery/door/poddoor/shutters/indestructible{ @@ -4527,9 +4524,9 @@ mZ ys ys ys -zM +qN zT -zM +qN ys tL JU @@ -4573,11 +4570,11 @@ mZ ys ys ys -zM -zM +qN +qN IF -zM -zM +qN +qN LN tL UG @@ -4620,11 +4617,11 @@ ys ck ys ys -zM +qN QM VJ MK -zM +qN ys ys ys @@ -4666,13 +4663,13 @@ ys ys ys ys -zM -zM -zM +qN +qN +qN OH -zM -zM -zM +qN +qN +qN ys ys LN @@ -4710,17 +4707,17 @@ ys ys ys ys -zM -zM -zM -zM +qN +qN +qN +qN Tc bb ui oq Mc -zM -zM +qN +qN ys ys ys @@ -4757,7 +4754,7 @@ ys ck ys ys -zM +qN Kl on xi @@ -4767,8 +4764,8 @@ xi xH ZD oq -zM -zM +qN +qN ys ys ys @@ -4803,22 +4800,22 @@ ys ys ys Hi -zM -zM +qN +qN mW -zM +qN Sr -zM +qN Ui zl YG qN Ux Bw -zM -zM -zM -zM +qN +qN +qN +qN qN ys LN @@ -4850,23 +4847,23 @@ ys jS ys ys -zM +qN Kl Kl -zM +qN Sr -zM -zM -zM -zM +qN +qN +qN +qN qN Gm NP OI -zM +qN AA ab -zM +qN qN ys Aw @@ -4896,16 +4893,16 @@ Wz RL pg pg -zM -zM +qN +qN Kl -zM -zM +qN +qN Ab -zM +qN Lm kX -zM +qN qN WH JQ @@ -4943,10 +4940,10 @@ ys bJ zd ys -zM +qN Db Kl -zM +qN kK MB oQ @@ -4990,10 +4987,10 @@ ha pg pg pg -zM +qN ic Kl -zM +qN rK YZ yH @@ -5037,10 +5034,10 @@ ys Gx uD ys -zM +qN wY Kl -zM +qN cB ja oQ @@ -5051,11 +5048,11 @@ sD Vw jR qx -zM +qN yi LR UK -zM +qN ys cO ys @@ -5084,25 +5081,25 @@ Wz RL pg pg -zM -zM +qN +qN mW -zM -zM -Os -zM +qN +qN +qJ +qN xf oH -zM +qN qN Tx vO qN -zM +qN OL AV -zM -zM +qN +qN ys ys LN @@ -5132,25 +5129,25 @@ ys AI ys ys -zM +qN Kl Kl Iq Ro -zM -zM -zM -zM +qN +qN +qN +qN GM Ax Ij ue -zM -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN +qN ys ys ys @@ -5179,12 +5176,12 @@ ys ys ck Hi -zM -zM +qN +qN Ut Kl Ut -zM +qN qN qU Ss @@ -5197,8 +5194,8 @@ PY qh tk xq -zM -zM +qN +qN ys ys ys @@ -5227,8 +5224,8 @@ ys ys ys ys -zM -zM +qN +qN Kl Kl Kl @@ -5245,8 +5242,8 @@ Sr kw FW Sr -zM -zM +qN +qN ys cO ys @@ -5271,14 +5268,14 @@ mZ mZ ys ys -zM -zM -zM -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN +qN +qN +qN YN rQ XC @@ -5293,7 +5290,7 @@ ip Sr Sr ux -zM +qN ys ys ys @@ -5317,15 +5314,15 @@ mZ mZ ys ys -zM -zM +qN +qN Dd Ex kb -zM +qN km SH -zM +qN wf XC nn @@ -5340,7 +5337,7 @@ WB ip Sr vg -zM +qN ys VG ys @@ -5363,8 +5360,8 @@ mZ mZ ys ys -zM -zM +qN +qN xP dl cJ @@ -5387,10 +5384,10 @@ WB WB my QS -zM -zM -zM -zM +qN +qN +qN +qN ys ys Dg @@ -5437,8 +5434,8 @@ Sr iH qN vl -zM -zM +qN +qN eM up ys @@ -5532,7 +5529,7 @@ ts qN xL BY -zM +qN Lv ys Wq @@ -5551,8 +5548,8 @@ mZ mZ ys ys -zM -zM +qN +qN Dr Mo gH @@ -5599,8 +5596,8 @@ mZ mZ ys ys -zM -zM +qN +qN NE TF iS @@ -5625,8 +5622,8 @@ Vv iH qN cu -zM -zM +qN +qN vZ JU ys @@ -5646,12 +5643,12 @@ mZ mZ ys ys -zM -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN +qN qN vx qN @@ -5669,10 +5666,10 @@ WB WB GD ux -zM -zM -zM -zM +qN +qN +qN +qN ys ys vZ @@ -5693,8 +5690,8 @@ mZ mZ ys ck -zM -zM +qN +qN vH bp ir @@ -5716,7 +5713,7 @@ WB wf xi vg -zM +qN ys Nl ys @@ -5740,14 +5737,14 @@ mZ ys ys ys -zM +qN MP bp -zM -zM +qN +qN Ut -zM -zM +qN +qN qN QG Sr @@ -5763,7 +5760,7 @@ wf kO Sr QS -zM +qN xN ys ys @@ -5787,13 +5784,13 @@ ys ys ys ys -zM +qN qa bp -zM -zM +qN +qN dS -zM +qN pA qN VK @@ -5809,8 +5806,8 @@ CK uL xi jd -zM -zM +qN +qN ys ys ck @@ -5833,11 +5830,11 @@ ys ys ys ys -zM -zM +qN +qN Sv bp -zM +qN wx RH Do @@ -5855,8 +5852,8 @@ al hR QE WR -zM -zM +qN +qN ys ys ys @@ -5879,12 +5876,12 @@ mZ Gr ck ys -zM -zM +qN +qN rZ Ut bp -zM +qN Ra RX Do @@ -5893,18 +5890,18 @@ Va bK XC By -zM -zM +qN +qN Oy Oy -zM +qN ag vF hU -zM -zM -zM -zM +qN +qN +qN +qN ys jS ys @@ -5925,13 +5922,13 @@ mZ mZ mZ ys -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN bp -zM +qN Pw Oi Do @@ -5939,19 +5936,19 @@ Uu kd gv Vv -zM -zM -zM +qN +qN +qN uE oV -zM -zM +qN +qN Ze -zM -zM +qN +qN Xt Se -zM +qN pg pg RL @@ -5972,23 +5969,23 @@ mZ mZ ys ys -zM -Lg +qN +hC xZ yt -zM +qN ON -zM -zM -zM -zM +qN +qN +qN +qN qN qN kq Vv -zM +qN ym -zM +qN aC ws Oy @@ -5998,7 +5995,7 @@ hA WB yU Zd -zM +qN ys zd bJ @@ -6018,12 +6015,12 @@ mZ (34,1,1) = {" mZ ys -zM -zM +qN +qN Uc qp sR -zM +qN bp bp LA @@ -6035,7 +6032,7 @@ uW Vv qN Ks -zM +qN tb sM Oy @@ -6045,7 +6042,7 @@ kQ WB FH Fn -zM +qN pg pg pg @@ -6069,20 +6066,20 @@ bB KS he OK -zM -zM -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN +qN +qN qN pY XC XC To Ut -zM +qN Vj Uh Oy @@ -6092,7 +6089,7 @@ Mt WB iX cN -zM +qN ys uD fI @@ -6136,10 +6133,10 @@ qN qN SJ qN -zM +qN kz -zM -zM +qN +qN pg pg RL @@ -6163,7 +6160,7 @@ bB DL jT Lc -zM +qN uH EY WJ @@ -6185,7 +6182,7 @@ uS gB pE cb -zM +qN ys ys AI @@ -6206,22 +6203,22 @@ mZ (38,1,1) = {" mZ ys -zM -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN +qN zu WJ NB -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN To -zM +qN LU qN lg @@ -6230,9 +6227,9 @@ wR vJ Ye ZT -zM -zM -zM +qN +qN +qN xN ys ys @@ -6258,14 +6255,14 @@ Av ze hM OR -zM +qN mV WJ Ol -zM +qN ek Dc -zM +qN Mr Ut Mr @@ -6277,8 +6274,8 @@ of xj TL MX -zM -zM +qN +qN ys ys ys @@ -6312,19 +6309,19 @@ DS mA MM bu -zM +qN Kz Ut Ut Ut -zM +qN lx qC SY xk Jm Ib -zM +qN ys ys ys @@ -6348,30 +6345,30 @@ mZ mZ Gr ck -zM -zM -zM +qN +qN +qN tq -zM +qN SO xB vA -zM +qN oA fV -zM +qN Db io Ut cE -zM +qN DI Br nH oc cG -zM -zM +qN +qN ys ck ys @@ -6397,27 +6394,27 @@ mZ ys ys ys -zM -zM -zM -zM +qN +qN +qN +qN Nj GA -zM +qN UW -zM -zM +qN +qN qa TJ Ay -zM -zM -zM +qN +qN +qN wi aa Ba -zM -zM +qN +qN ys ys ys @@ -6445,25 +6442,25 @@ mZ ys ys ys -zM -zM +qN +qN jV Ie lh -zM -zM -zM -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN +qN +qN +qN ys -zM -zM -zM -zM -zM +qN +qN +qN +qN +qN ys ys ys @@ -6493,12 +6490,12 @@ mZ ys ck ys -zM +qN XM me Hp -zM -zM +qN +qN ys ys ys @@ -6540,11 +6537,11 @@ mZ mZ ys ys -zM +qN si si si -zM +qN ys mZ mZ diff --git a/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm b/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm index b9bf82f72412..eb168fbedc76 100644 --- a/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm +++ b/_maps/RandomRuins/SpaceRuins/dragoontomb.dmm @@ -426,9 +426,6 @@ /obj/structure/statue/dragonman, /turf/open/misc/asteroid/basalt/airless, /area/ruin/unpowered/no_grav) -"BU" = ( -/turf/open/space, -/area/space) "BX" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -915,138 +912,138 @@ /area/ruin/unpowered/no_grav) (1,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP "} (2,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP "} (3,1,1) = {" -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP wD wD Rp Rp -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Rp Rp Rp Rp -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP "} (4,1,1) = {" -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP wD wD wD @@ -1054,9 +1051,9 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP Rp Rp Rp @@ -1071,24 +1068,24 @@ Rp Rp Rp Rp -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP "} (5,1,1) = {" -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP wD wD Rp @@ -1119,17 +1116,17 @@ Rp Rp Rp Rp -BU -BU -BU -BU +TP +TP +TP +TP "} (6,1,1) = {" -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP wD wD wD @@ -1162,15 +1159,15 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (7,1,1) = {" -BU -BU -BU -BU +TP +TP +TP +TP wD wD wD @@ -1204,14 +1201,14 @@ VZ Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (8,1,1) = {" -BU -BU -BU +TP +TP +TP wD wD wD @@ -1246,14 +1243,14 @@ wD Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (9,1,1) = {" -BU -BU -BU +TP +TP +TP Rp Rp Rp @@ -1289,13 +1286,13 @@ Rp Rp Rp Rp -BU -BU +TP +TP "} (10,1,1) = {" -BU -BU -BU +TP +TP +TP Rp Rp Rp @@ -1331,14 +1328,14 @@ Rp Rp Rp Rp -BU -BU +TP +TP "} (11,1,1) = {" -BU -BU -BU -BU +TP +TP +TP +TP Rp Rp Rp @@ -1373,13 +1370,13 @@ Rp Rp Rp Rp -BU -BU +TP +TP "} (12,1,1) = {" -BU -BU -BU +TP +TP +TP wD Rp Rp @@ -1415,13 +1412,13 @@ Rp Rp Rp wD -BU -BU +TP +TP "} (13,1,1) = {" -BU -BU -BU +TP +TP +TP wD Rp Rp @@ -1457,12 +1454,12 @@ Rp Rp Rp wD -BU -BU +TP +TP "} (14,1,1) = {" -BU -BU +TP +TP wD wD Rp @@ -1498,13 +1495,13 @@ Rp Rp wD wD -BU -BU -BU +TP +TP +TP "} (15,1,1) = {" -BU -BU +TP +TP wD Rp Rp @@ -1540,13 +1537,13 @@ Rp Rp wD wD -BU -BU +TP +TP TP "} (16,1,1) = {" -BU -BU +TP +TP wD Rp Rp @@ -1582,13 +1579,13 @@ Rp wD wD wD -BU -BU -BU +TP +TP +TP "} (17,1,1) = {" -BU -BU +TP +TP wD wD Rp @@ -1624,14 +1621,14 @@ Rp wD wD wD -BU -BU -BU +TP +TP +TP "} (18,1,1) = {" -BU -BU -BU +TP +TP +TP wD Rp Rp @@ -1666,14 +1663,14 @@ Rp wD wD wD -BU -BU -BU +TP +TP +TP "} (19,1,1) = {" -BU -BU -BU +TP +TP +TP wD Rp Rp @@ -1708,14 +1705,14 @@ Rp Rp wD wD -BU -BU -BU +TP +TP +TP "} (20,1,1) = {" -BU -BU -BU +TP +TP +TP wD Rp Rp @@ -1750,15 +1747,15 @@ Rp Rp Rp wD -BU -BU -BU +TP +TP +TP "} (21,1,1) = {" -BU -BU -BU -BU +TP +TP +TP +TP Rp Rp wD @@ -1793,15 +1790,15 @@ Rp Rp wD wD -BU -BU +TP +TP "} (22,1,1) = {" -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP Rp Rp Rl @@ -1835,15 +1832,15 @@ Rp Rp Rp Rp -BU -BU +TP +TP "} (23,1,1) = {" -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP Rp Rp Ew @@ -1876,16 +1873,16 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (24,1,1) = {" -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP wD Rp nm @@ -1918,19 +1915,19 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (25,1,1) = {" -BU -BU -BU -BU -BU -wD -Rp -Rp +TP +TP +TP +TP +TP +wD +Rp +Rp Rp Rp wD @@ -1961,15 +1958,15 @@ Rp Rp Rp Rp -BU -BU +TP +TP "} (26,1,1) = {" -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP wD wD Rp @@ -2003,15 +2000,15 @@ Rp Rp Rp Rp -BU -BU +TP +TP "} (27,1,1) = {" -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP wD wD Rp @@ -2045,16 +2042,16 @@ wD wD wD wD -BU -BU +TP +TP "} (28,1,1) = {" -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP wD Rp wD @@ -2087,17 +2084,17 @@ wD wD wD wD -BU -BU +TP +TP "} (29,1,1) = {" -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP Rp Rp we @@ -2128,19 +2125,19 @@ wD wD Rp Rp -BU -BU -BU +TP +TP +TP "} (30,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Yf @@ -2171,19 +2168,19 @@ Rp Rp wD wD -BU -BU +TP +TP "} (31,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Rp @@ -2212,20 +2209,20 @@ wD Rp Rp wD -BU -BU -BU +TP +TP +TP "} (32,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Rp @@ -2254,21 +2251,21 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (33,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Rp @@ -2296,22 +2293,22 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (34,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Rp @@ -2338,23 +2335,23 @@ Rp Rp Rp Rp -BU -BU -BU +TP +TP +TP "} (35,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP TP Rp Rp @@ -2379,24 +2376,24 @@ Rp Rp Rp Rp -BU -BU -BU -BU +TP +TP +TP +TP "} (36,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP TP TP TP @@ -2420,29 +2417,29 @@ Rp Rp Rp Rp -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP "} (37,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP Rp Rp Rp @@ -2461,136 +2458,136 @@ Rp Rp Rp Rp -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP "} (38,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -Rp -Rp -Rp -Rp -Rp -Rp -BU -BU -BU -BU -Rp -Rp -Rp -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +Rp +Rp +Rp +Rp +Rp +Rp +TP +TP +TP +TP +Rp +Rp +Rp +TP +TP +TP +TP +TP +TP +TP +TP +TP "} (39,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -Rp -Rp -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +Rp +Rp +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP "} (40,1,1) = {" -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU -BU +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP +TP "} diff --git a/_maps/RandomRuins/SpaceRuins/film_studio.dmm b/_maps/RandomRuins/SpaceRuins/film_studio.dmm index f5446779a062..595583e81405 100644 --- a/_maps/RandomRuins/SpaceRuins/film_studio.dmm +++ b/_maps/RandomRuins/SpaceRuins/film_studio.dmm @@ -873,7 +873,7 @@ /turf/open/floor/catwalk_floor/iron, /area/ruin/space/has_grav/film_studio/dorms) "qL" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/pod/light, @@ -2623,7 +2623,7 @@ /turf/open/space/basic, /area/ruin/space) "Te" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/pod/light, /area/ruin/space/has_grav/film_studio/starboard) diff --git a/_maps/RandomZLevels/SnowCabin.dmm b/_maps/RandomZLevels/SnowCabin.dmm index 09fffa494c8f..91c1feb25456 100644 --- a/_maps/RandomZLevels/SnowCabin.dmm +++ b/_maps/RandomZLevels/SnowCabin.dmm @@ -2719,9 +2719,10 @@ /area/awaymission/cabin/caves) "pv" = ( /obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/structure/statue/snow/snowlegion{ anchored = 1; @@ -3080,16 +3081,18 @@ "ts" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) "tC" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -3344,9 +3347,10 @@ /turf/open/floor/plating/snowed/snow_cabin, /area/awaymission/cabin/snowforest/sovietsurface) "vJ" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/effect/decal/cleanable/plasma, /turf/open/misc/asteroid/snow/snow_cabin, @@ -3457,9 +3461,10 @@ /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin) "xw" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/structure/statue/snow/snowlegion{ anchored = 1; @@ -3471,9 +3476,10 @@ "xx" = ( /obj/effect/decal/cleanable/blood/old, /obj/item/knife/shiv/carrot, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -3684,9 +3690,10 @@ /area/awaymission/cabin/caves) "zI" = ( /obj/item/weldingtool/mini, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -3926,9 +3933,10 @@ /turf/open/misc/ice/smooth, /area/awaymission/cabin/caves) "Dw" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/effect/decal/cleanable/generic, /turf/open/misc/asteroid/snow/snow_cabin, @@ -4071,9 +4079,10 @@ /turf/open/floor/plating/snowed/smoothed, /area/awaymission/cabin/caves) "EU" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/effect/decal/cleanable/blood/oil, /turf/open/misc/asteroid/snow/snow_cabin, @@ -4473,9 +4482,10 @@ /area/awaymission/cabin/caves) "Lj" = ( /obj/effect/decal/remains/xeno, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -4551,9 +4561,10 @@ /area/awaymission/cabin/snowforest/sovietsurface) "Mk" = ( /obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -4615,9 +4626,10 @@ /turf/open/floor/wood, /area/awaymission/cabin) "Nb" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/effect/decal/remains/xeno/larva, /turf/open/misc/asteroid/snow/snow_cabin, @@ -4736,9 +4748,10 @@ /area/awaymission/cabin/snowforest) "Po" = ( /obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -4856,9 +4869,10 @@ /area/awaymission/cabin/snowforest/sovietsurface) "QT" = ( /obj/item/chair/stool, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) @@ -4893,9 +4907,10 @@ /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/snowforest) "RD" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /mob/living/basic/statue/frosty, /turf/open/misc/asteroid/snow/snow_cabin, @@ -5086,9 +5101,10 @@ /turf/open/floor/wood/freezing, /area/awaymission/cabin/lumbermill) "SS" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/effect/decal/cleanable/molten_object/large, /turf/open/misc/asteroid/snow/snow_cabin, @@ -5148,9 +5164,10 @@ /turf/open/floor/wood, /area/awaymission/cabin) "TU" = ( -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/effect/decal/cleanable/shreds, /turf/open/misc/asteroid/snow/snow_cabin, @@ -5326,9 +5343,10 @@ /area/awaymission/cabin/caves) "WH" = ( /obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /obj/item/clothing/head/helmet/skull, /turf/open/misc/asteroid/snow/snow_cabin, @@ -5424,9 +5442,10 @@ "Yc" = ( /obj/effect/decal/cleanable/blood/old, /obj/item/melee/baseball_bat, -/obj/effect/decal/cleanable/glitter/blue{ +/obj/effect/decal/cleanable/glitter{ desc = "It looks like fancy glitter to me."; - name = "icy wind" + name = "icy wind"; + color = "4040ff" }, /turf/open/misc/asteroid/snow/snow_cabin, /area/awaymission/cabin/caves) diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index f507c0be1208..9891aa74685e 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -1,52 +1,30 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/closed/indestructible/rock, -/area/space/nearstation) -"ab" = ( -/turf/open/space, -/area/space) "ac" = ( /turf/closed/mineral/volcanic, /area/awaymission/caves/bmp_asteroid/level_three) "ad" = ( -/turf/open/lava/smooth{ - desc = "Looks hot."; - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - luminosity = 5 - }, +/turf/open/lava/smooth, /area/awaymission/caves/bmp_asteroid/level_four) "ah" = ( -/turf/open/lava/smooth{ - desc = "Looks hot."; - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - luminosity = 5 - }, +/turf/open/lava/smooth, /area/awaymission/caves/bmp_asteroid/level_three) "ak" = ( /turf/closed/mineral/random/high_chance, /area/awaymission/caves/bmp_asteroid/level_three) "ao" = ( -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "ap" = ( /obj/structure/destructible/cult/pylon, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "ar" = ( /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "as" = ( /obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "au" = ( /obj/structure/destructible/cult/item_dispenser/altar, @@ -57,24 +35,18 @@ /obj/item/veilrender/honkrender, /obj/item/clothing/mask/gas/clown_hat, /obj/item/organ/heart/demon, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "av" = ( /obj/structure/trap/stun{ desc = "A rune inscribed in the floor, the air feeling electrified around it."; name = "shock rune" }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aw" = ( /obj/effect/decal/remains/human, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "ax" = ( /turf/closed/wall/mineral/cult, @@ -86,84 +58,57 @@ amount = 25 }, /obj/item/coin/antagtoken, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "az" = ( /obj/structure/constructshell, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aA" = ( /obj/structure/girder/cult, /obj/item/stack/sheet/runed_metal, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aB" = ( /obj/structure/spawner/skeleton, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aC" = ( /obj/structure/bed, /obj/item/bedsheet/cult, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aD" = ( /obj/item/stack/sheet/runed_metal, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aF" = ( -/obj/structure/barricade/wooden{ - desc = "A forcefield meant to block off areas. Time has aged this forcefield into a weakened state, you could probably smash through it."; - icon = 'icons/effects/effects.dmi'; - icon_state = "m_shield"; - name = "weak forcefield" - }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/structure/barricade/wooden, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aG" = ( /obj/item/ectoplasm, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aH" = ( /turf/closed/wall, /area/awaymission/caves/bmp_asteroid/level_three) "aI" = ( /obj/machinery/door/airlock/external/ruin, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "aJ" = ( /turf/closed/wall/rust, /area/awaymission/caves/bmp_asteroid/level_three) "aK" = ( -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "aM" = ( /obj/structure/ladder/unbreakable{ height = 1; id = "minedeep" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "aP" = ( /obj/structure/ladder/unbreakable{ @@ -171,35 +116,23 @@ id = "dungeon"; name = "rusty ladder" }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aR" = ( -/obj/effect/forcefield/cult, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/effect/forcefield/cult/permanent, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aS" = ( /obj/structure/girder/cult, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "aV" = ( -/obj/effect/forcefield/cult, -/turf/open/lava/smooth{ - desc = "Looks hot."; - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - luminosity = 5 - }, +/obj/effect/forcefield/cult/permanent, +/turf/open/lava/smooth, /area/awaymission/caves/bmp_asteroid/level_four) "aW" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "aX" = ( /obj/effect/bump_teleporter{ @@ -211,45 +144,30 @@ mouse_opacity = 0; name = "light of the tunnel" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "aZ" = ( -/obj/structure/trap/fire{ - desc = "An old rune inscribed on the floor, giving off an intense amount of heat."; - name = "flame rune" - }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/effect/mob_spawn/corpse/human/syndicatecommando/lessenedgear, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "ba" = ( -/obj/structure/destructible/cult/item_dispenser/altar, -/obj/item/book/granter/martial/plasma_fist/nobomb, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/structure/table/wood/fancy, +/obj/item/clothing/gloves/krav_maga/combatglovesplus, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bf" = ( /obj/effect/decal/cleanable/blood, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bl" = ( /obj/structure/ore_box, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "bm" = ( /obj/machinery/gateway/away{ calibrated = 0 }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bn" = ( /obj/machinery/light/small/directional/west, @@ -258,42 +176,30 @@ "bw" = ( /obj/effect/decal/cleanable/blood, /obj/structure/spawner/skeleton, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bz" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bA" = ( /obj/structure/destructible/cult/item_dispenser/archives, -/obj/item/necromantic_stone, /obj/effect/decal/cleanable/blood, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/item/disk/design_disk/knight_gear, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bC" = ( -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_three) "bD" = ( /mob/living/basic/skeleton, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_three) "bE" = ( /obj/structure/destructible/cult/pylon, /obj/effect/decal/cleanable/blood, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "bF" = ( /obj/structure/ladder/unbreakable{ @@ -301,9 +207,7 @@ id = "dungeon"; name = "rusty ladder" }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_three) "bK" = ( /turf/closed/mineral/volcanic, @@ -312,21 +216,13 @@ /turf/closed/mineral/volcanic, /area/awaymission/caves/bmp_asteroid) "bM" = ( -/turf/open/lava/smooth{ - desc = "Looks hot."; - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - luminosity = 5 - }, +/turf/open/lava/smooth, /area/awaymission/caves/bmp_asteroid) "bN" = ( /turf/closed/mineral/random/high_chance, /area/awaymission/caves/bmp_asteroid/level_two) "bO" = ( -/turf/open/lava/smooth{ - desc = "Looks hot."; - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - luminosity = 5 - }, +/turf/open/lava/smooth, /area/awaymission/caves/bmp_asteroid/level_two) "bQ" = ( /turf/closed/wall/rust, @@ -336,14 +232,10 @@ /area/awaymission/caves/bmp_asteroid/level_two) "bS" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_two) "bT" = ( -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_two) "bU" = ( /obj/effect/bump_teleporter{ @@ -355,35 +247,21 @@ mouse_opacity = 0; name = "light of the tunnel" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_two) "bY" = ( /mob/living/basic/skeleton, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_two) -"ca" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid) "ce" = ( /obj/structure/ladder/unbreakable{ height = 1; id = "mineintro" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_two) "cf" = ( -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid/level_two) "cg" = ( /turf/closed/wall, @@ -391,12 +269,6 @@ "ch" = ( /turf/closed/wall/rust, /area/awaymission/caves/research) -"cl" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid/level_two) "cm" = ( /turf/closed/mineral/random/low_chance, /area/awaymission/caves/bmp_asteroid/level_two) @@ -433,9 +305,7 @@ /turf/open/floor/plating, /area/awaymission/caves/research) "cx" = ( -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid) "cA" = ( /obj/effect/decal/remains/xeno, @@ -453,16 +323,8 @@ /area/awaymission/caves/research) "cF" = ( /obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/research) -"cH" = ( -/obj/machinery/door/airlock/external/ruin, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid/level_two) "cK" = ( /obj/structure/sign/warning/secure_area{ desc = "A warning sign which reads 'HOLY SHIT SWAGMAN WHAT ARE YOU DOING'."; @@ -472,7 +334,6 @@ /area/awaymission/caves/bmp_asteroid/level_two) "cN" = ( /obj/machinery/door/window/left/directional/east, -/obj/effect/decal/cleanable/blood/gibs/xeno, /turf/open/floor/plating, /area/awaymission/caves/research) "cP" = ( @@ -480,23 +341,17 @@ /turf/open/floor/plating, /area/awaymission/caves/research) "cR" = ( -/obj/effect/landmark/awaystart/caves, +/obj/effect/landmark/awaystart, /turf/open/floor/plating, /area/awaymission/caves/research) "cS" = ( /obj/machinery/door/window/right/directional/east, /turf/open/floor/plating, /area/awaymission/caves/research) -"cV" = ( -/obj/effect/decal/cleanable/blood/gibs/xeno, -/turf/open/floor/plating, -/area/awaymission/caves/research) "cX" = ( /obj/structure/table, /obj/item/melee/baton/security, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron, /area/awaymission/caves/research) "cY" = ( /obj/structure/glowshroom/single, @@ -506,9 +361,7 @@ /obj/structure/table, /obj/machinery/cell_charger, /obj/item/stock_parts/power_store/cell/crap, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron, /area/awaymission/caves/research) "dd" = ( /obj/structure/closet/emcloset, @@ -518,9 +371,6 @@ /obj/structure/closet/secure_closet/miner{ name = "weapon equipment" }, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, /turf/open/floor/iron, /area/awaymission/caves/research) "dg" = ( @@ -533,9 +383,7 @@ mouse_opacity = 0; name = "light of the tunnel" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_two) "dh" = ( /obj/machinery/door/airlock/external/ruin, @@ -610,15 +458,9 @@ "dw" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/effect/landmark/awaystart/caves, +/obj/effect/landmark/awaystart, /turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid/level_two) -"dx" = ( -/obj/structure/closet/secure_closet/personal, -/obj/effect/decal/cleanable/cobweb, -/obj/item/sord, -/turf/open/floor/wood, -/area/awaymission/caves/northblock) "dy" = ( /turf/open/floor/wood, /area/awaymission/caves/northblock) @@ -653,7 +495,7 @@ "dH" = ( /obj/structure/bed, /obj/item/bedsheet, -/obj/effect/landmark/awaystart/caves, +/obj/effect/landmark/awaystart, /turf/open/floor/wood, /area/awaymission/caves/northblock) "dI" = ( @@ -705,7 +547,7 @@ /obj/structure/bed, /obj/item/bedsheet, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/landmark/awaystart/caves, +/obj/effect/landmark/awaystart, /turf/open/floor/wood, /area/awaymission/caves/northblock) "ea" = ( @@ -714,19 +556,9 @@ /area/awaymission/caves/northblock) "ed" = ( /obj/structure/bed, -/obj/effect/landmark/awaystart/caves, +/obj/effect/landmark/awaystart, /turf/open/floor/wood, /area/awaymission/caves/northblock) -"ee" = ( -/obj/structure/girder, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/northblock) -"eg" = ( -/obj/effect/decal/cleanable/blood/gibs/robot_debris/old, -/turf/open/floor/iron, -/area/awaymission/caves/listeningpost) "eh" = ( /obj/structure/table, /obj/item/radio, @@ -744,7 +576,7 @@ /area/awaymission/caves/bmp_asteroid) "el" = ( /obj/structure/closet/secure_closet/personal, -/obj/item/gun/energy/laser/captain/scattershot, +/obj/item/gun/energy/laser/carbine, /turf/open/floor/wood, /area/awaymission/caves/northblock) "em" = ( @@ -759,20 +591,13 @@ /obj/item/stack/rods, /turf/open/floor/wood, /area/awaymission/caves/northblock) -"ep" = ( -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/northblock) "er" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/plating, /area/awaymission/caves/listeningpost) "et" = ( /obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/northblock) "ev" = ( /turf/open/floor/iron, @@ -844,12 +669,8 @@ /obj/machinery/vending/sovietsoda, /turf/open/floor/iron, /area/awaymission/caves/listeningpost) -"eN" = ( -/obj/effect/decal/cleanable/blood/oil, -/turf/open/floor/iron, -/area/awaymission/caves/listeningpost) "eO" = ( -/obj/effect/landmark/awaystart/caves, +/obj/effect/landmark/awaystart, /turf/open/floor/iron, /area/awaymission/caves/listeningpost) "eP" = ( @@ -921,20 +742,11 @@ mouse_opacity = 0; name = "light of the tunnel" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid) -"fy" = ( -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "fz" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "fA" = ( /obj/structure/bed{ @@ -970,21 +782,12 @@ /turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "fQ" = ( -/turf/open/floor/plating/elevatorshaft{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - name = "elevator flooring" - }, +/turf/open/floor/plating/elevatorshaft, /area/awaymission/caves/bmp_asteroid) "fT" = ( /obj/machinery/iv_drip, /turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid) -"fW" = ( -/obj/structure/girder, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid) "fY" = ( /obj/structure/table, /obj/machinery/microwave, @@ -995,20 +798,12 @@ height = 2; id = "mineintro" }, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "gb" = ( /obj/structure/closet/secure_closet/freezer/kitchen, /turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid) -"gc" = ( -/obj/item/stack/rods, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid) "gf" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/glass/drinkingglass, @@ -1017,22 +812,16 @@ "gg" = ( /obj/structure/table/reinforced, /obj/item/storage/box/donkpockets, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "gh" = ( /obj/structure/table/reinforced, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "gi" = ( /obj/structure/table/reinforced, /obj/item/stack/rods, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "gj" = ( /obj/machinery/door/airlock/mining{ @@ -1050,15 +839,11 @@ /area/awaymission/caves/bmp_asteroid) "go" = ( /obj/structure/chair/stool/directional/west, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "gp" = ( /obj/structure/table_frame, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) "gq" = ( /obj/structure/chair/stool/directional/west, @@ -1104,17 +889,13 @@ /area/awaymission/caves/bmp_asteroid) "gB" = ( /obj/machinery/mech_bay_recharge_port, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid) "gF" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, /obj/item/clothing/glasses/material, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid) "gG" = ( /obj/structure/mecha_wreckage/durand, @@ -1126,17 +907,6 @@ /obj/item/paper/fluff/awaymissions/caves/mech_notice, /turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid) -"gI" = ( -/obj/structure/chair/stool/directional/west, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid) -"gJ" = ( -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid) "gK" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -1151,29 +921,21 @@ /area/awaymission/caves/bmp_asteroid) "gN" = ( /obj/structure/hoop, -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid) "gO" = ( /obj/structure/closet/emcloset, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid) "gP" = ( /obj/item/toy/basketball, -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid) "gU" = ( /obj/structure/hoop{ dir = 1 }, -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid) "gX" = ( /obj/effect/baseturf_helper/lava, @@ -1181,11 +943,7 @@ /area/awaymission/caves/bmp_asteroid/level_three) "gY" = ( /obj/effect/baseturf_helper/lava, -/turf/open/lava/smooth{ - desc = "Looks hot."; - initial_gas_mix = "n2=23;o2=14;TEMP=2.7"; - luminosity = 5 - }, +/turf/open/lava/smooth, /area/awaymission/caves/bmp_asteroid/level_four) "gZ" = ( /obj/effect/baseturf_helper/lava, @@ -1206,21 +964,15 @@ /turf/open/floor/plating, /area/awaymission/caves/listeningpost) "hq" = ( -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "hr" = ( /obj/structure/spider/stickyweb, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "hw" = ( /obj/structure/barricade/wooden, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "hQ" = ( /obj/machinery/light/small/directional/south, @@ -1228,9 +980,7 @@ /area/awaymission/caves/northblock) "hT" = ( /obj/structure/flora/rock/style_random, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "ix" = ( /obj/structure/window/reinforced/spawner/directional/north, @@ -1239,25 +989,20 @@ /area/awaymission/caves/research) "jH" = ( /obj/structure/spawner/mining/basilisk, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "jU" = ( /obj/structure/spawner/mining/basilisk, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "ki" = ( /obj/structure/closet/crate/preopen, /obj/item/paper/fluff/awaymissions/caves/shipment_receipt, -/obj/item/organ/eyes/robotic/thermals, -/obj/item/gun/energy/laser/captain/scattershot, /obj/item/slimepotion/fireproof, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/item/gun/energy/e_gun/mini, +/obj/item/gun/energy/laser/musket, +/obj/item/organ/eyes/robotic/thermals, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "kE" = ( /mob/living/basic/spider/giant/hunter/away_caves, @@ -1265,9 +1010,7 @@ /area/awaymission/caves/bmp_asteroid) "kL" = ( /obj/structure/sign/warning/xeno_mining/directional/south, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "lp" = ( /obj/machinery/light/small/directional/west, @@ -1282,23 +1025,17 @@ /area/awaymission/caves/listeningpost) "ml" = ( /mob/living/basic/wumborian_fugu, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "ms" = ( /obj/structure/spawner/mining/goliath, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "mX" = ( /obj/structure/closet/crate/miningcar{ name = "Mining cart" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "nw" = ( /obj/machinery/light/small/built/directional/east, @@ -1310,20 +1047,14 @@ desc = "Rusted mines planted out by the miners before, probably to keep the cave monsters at bay."; name = "rusted mine" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "nY" = ( /obj/item/slimepotion/fireproof, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "oI" = ( -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "pc" = ( /obj/machinery/light/small/directional/west, @@ -1333,9 +1064,7 @@ "pC" = ( /obj/item/mjollnir, /mob/living/basic/spider/giant/nurse/away_caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "pL" = ( /obj/structure/window/reinforced/spawner/directional/south, @@ -1344,9 +1073,7 @@ /area/awaymission/caves/research) "qD" = ( /obj/machinery/light/small/directional/north, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "qE" = ( /obj/machinery/light/small/directional/north, @@ -1354,9 +1081,7 @@ /area/awaymission/caves/northblock) "ra" = ( /obj/structure/glowshroom/single, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "rl" = ( /obj/structure/closet/crate/miningcar{ @@ -1365,14 +1090,10 @@ /obj/item/stack/sheet/mineral/mythril{ amount = 12 }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "rv" = ( -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "rF" = ( /obj/machinery/light/small/directional/east, @@ -1380,9 +1101,7 @@ /area/awaymission/caves/bmp_asteroid) "sl" = ( /obj/structure/spawner/mining/hivelord, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "sw" = ( /obj/machinery/light/directional/north, @@ -1390,21 +1109,15 @@ /area/awaymission/caves/listeningpost) "sE" = ( /obj/item/greentext, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "sI" = ( /obj/machinery/light/small/directional/east, -/turf/open/floor/iron{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron, /area/awaymission/caves/bmp_asteroid) "sT" = ( /obj/structure/spawner/mining/hivelord, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "tz" = ( /obj/structure/table, @@ -1413,9 +1126,7 @@ /area/awaymission/caves/bmp_asteroid) "tU" = ( /obj/machinery/light/small/directional/west, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "uo" = ( /obj/machinery/light/small/directional/west, @@ -1423,9 +1134,7 @@ desc = "A warning sign which warns of potential mech traffic to and from different levels of the mine."; name = "\improper MECH TUNNEL PASSAGE A2 TO A1" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "uN" = ( /obj/structure/spider/stickyweb, @@ -1441,15 +1150,11 @@ name = "\improper MECH TUNNEL PASSAGE A2 TO B1" }, /obj/machinery/light/small/built/directional/east, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "vR" = ( /obj/structure/sign/departments/medbay/directional/west, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "vU" = ( /obj/structure/noticeboard/directional/north, @@ -1458,31 +1163,23 @@ /turf/open/floor/iron, /area/awaymission/caves/listeningpost) "vX" = ( -/obj/effect/forcefield/cult, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/effect/forcefield/cult/permanent, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "wl" = ( /obj/machinery/light/small/directional/east, -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid) "ww" = ( /turf/open/misc/asteroid/basalt/airless, /area/awaymission/caves/bmp_asteroid/level_two) "wT" = ( /obj/structure/destructible/cult/pylon, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "xs" = ( /obj/item/bedsheet/patriot, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "yg" = ( /obj/structure/sign/warning/vacuum/directional/east{ @@ -1493,70 +1190,50 @@ "yS" = ( /obj/structure/closet/crate, /obj/item/paper/fluff/awaymissions/caves/shipment_receipt, -/obj/item/gun/energy/laser/captain/scattershot, -/obj/item/gun/energy/laser/captain/scattershot, /obj/item/gun/energy/laser, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, -/obj/item/grenade/syndieminibomb/concussion, /obj/item/slimepotion/fireproof, /obj/item/slimepotion/fireproof, /obj/item/clothing/glasses/thermal, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/item/grenade/frag, +/obj/item/grenade/frag, +/obj/item/gun/energy/e_gun/old, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "yV" = ( /obj/structure/flora/rock/style_random, -/obj/item/soulstone/anybody, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/item/soulstone/anybody/purified, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "zH" = ( /obj/structure/flora/rock/style_random, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "zN" = ( /obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/iron/dark, /area/awaymission/caves/bmp_asteroid) "zR" = ( /obj/effect/decal/cleanable/ash, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "zS" = ( /obj/machinery/light/small/directional/west, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Aj" = ( /obj/structure/grille, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "AN" = ( /obj/structure/trap/stun{ desc = "A rune inscribed in the floor, the air feeling electrified around it."; name = "shock rune" }, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "AZ" = ( /obj/structure/girder, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Bb" = ( /obj/structure/sign/warning/pods/directional/west{ @@ -1564,73 +1241,46 @@ name = "\improper MECH TUNNEL PASSAGE A1 TO A2" }, /obj/machinery/light/small/directional/west, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Bd" = ( -/obj/structure/trap/fire{ - desc = "An old rune inscribed on the floor, giving off an intense amount of heat."; - name = "flame rune" - }, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid/level_four) +/turf/closed/indestructible/rock, +/area/awaymission/caves/bmp_asteroid) "Bo" = ( /obj/structure/ore_box, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Bs" = ( -/obj/effect/landmark/awaystart/caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/effect/landmark/awaystart, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Bz" = ( /mob/living/basic/spider/giant/nurse/away_caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "BH" = ( /obj/structure/spawner/skeleton, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "BK" = ( -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "BL" = ( /obj/item/stack/rods, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "BQ" = ( /obj/effect/decal/remains/human, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Cc" = ( -/obj/item/gun/energy/laser/captain/scattershot, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/closed/indestructible/rock, /area/awaymission/caves/bmp_asteroid/level_two) "Ds" = ( /obj/item/pickaxe/rusted{ pixel_x = 5 }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Dw" = ( /obj/structure/destructible/cult/item_dispenser/archives, @@ -1641,9 +1291,7 @@ /obj/item/book/granter/action/spell/summonitem{ name = "\proper an extremely flamboyant book" }, -/turf/open/floor/engine/cult{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/engine/cult, /area/awaymission/caves/bmp_asteroid/level_four) "DH" = ( /obj/structure/closet/crate/miningcar{ @@ -1652,18 +1300,14 @@ /obj/item/pickaxe/rusted{ pixel_x = 5 }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Fj" = ( /obj/item/toy/beach_ball{ name = "\proper wilson"; desc = "It's a beachball with a face crudely drawn onto it with some soot." }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "FI" = ( /obj/machinery/light/directional/south, @@ -1677,9 +1321,7 @@ /area/awaymission/caves/bmp_asteroid) "FV" = ( /obj/effect/decal/cleanable/blood/old, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Gt" = ( /obj/machinery/light/small/built/directional/north, @@ -1691,15 +1333,11 @@ /area/awaymission/caves/listeningpost) "HK" = ( /obj/structure/destructible/cult/pylon, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "Ik" = ( /obj/item/stack/rods, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "Iz" = ( /obj/structure/sign/warning/vacuum/directional/east{ @@ -1714,9 +1352,7 @@ desc = "A warning sign which warns of potential mech traffic to and from different levels of the mine."; name = "\improper MECH TUNNEL PASSAGE B1 TO A2" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "IH" = ( /obj/structure/window/spawner/directional/west, @@ -1725,33 +1361,20 @@ /area/awaymission/caves/listeningpost) "IN" = ( /obj/machinery/light/small/directional/east, -/turf/open/floor/plating{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/floor/plating, /area/awaymission/caves/bmp_asteroid/level_three) "IY" = ( /obj/structure/spider/cocoon, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "IZ" = ( /obj/item/clothing/head/collectable/wizard, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "JD" = ( /obj/structure/ore_box, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) -"JP" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/effect/decal/cleanable/blood/xeno, -/turf/open/floor/plating, -/area/awaymission/caves/research) "Kq" = ( /obj/structure/sign/departments/exam_room/directional/north, /turf/open/floor/iron, @@ -1759,9 +1382,7 @@ "KY" = ( /obj/structure/table, /obj/item/paper/crumpled/awaymissions/caves/unsafe_area, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Ly" = ( /obj/structure/closet/crate/miningcar{ @@ -1773,9 +1394,7 @@ /obj/item/stack/sheet/mineral/adamantine{ amount = 15 }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Mk" = ( /obj/machinery/light/small/built/directional/west, @@ -1783,21 +1402,15 @@ /area/awaymission/caves/northblock) "Mq" = ( /obj/structure/flora/rock/style_random, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Mw" = ( /obj/item/shard, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "MB" = ( /obj/item/grown/log, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "MC" = ( /obj/structure/table, @@ -1808,18 +1421,14 @@ /area/awaymission/caves/bmp_asteroid) "MM" = ( /obj/machinery/light/small/directional/south, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Np" = ( /obj/effect/mine/explosive{ desc = "Rusted mines planted out by the miners before, probably to keep the cave monsters at bay."; name = "rusted mine" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "NO" = ( /obj/machinery/light/directional/north, @@ -1829,15 +1438,11 @@ /area/awaymission/caves/research) "NX" = ( /obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "OA" = ( /obj/item/gun/ballistic/automatic/pistol/deagle/gold, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "OX" = ( /turf/closed/indestructible/oldshuttle{ @@ -1846,7 +1451,7 @@ icon_state = "black"; name = "the other side" }, -/area/space/nearstation) +/area/awaymission/caves/bmp_asteroid) "PS" = ( /obj/machinery/light/small/built/directional/south, /obj/machinery/suit_storage_unit/mining{ @@ -1857,52 +1462,36 @@ /area/awaymission/caves/listeningpost) "Qe" = ( /mob/living/basic/bat/away_caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Rm" = ( /obj/effect/decal/remains/human, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "Rt" = ( /mob/living/basic/bat/away_caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Ry" = ( /obj/structure/grille, /obj/structure/barricade/wooden, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "RJ" = ( /obj/machinery/light/small/directional/west, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "SV" = ( /obj/machinery/light/small/directional/east, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "Tj" = ( /obj/item/assembly/igniter, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "TT" = ( /obj/item/ectoplasm, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "Uu" = ( /obj/structure/table, @@ -1913,17 +1502,13 @@ "UT" = ( /obj/effect/decal/remains/human, /obj/item/clothing/under/misc/patriotsuit, -/turf/open/misc/asteroid/basalt/lava{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_four) "VK" = ( /obj/effect/mob_spawn/ghost_role/human/skeleton{ name = "spooky skeleton remains" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "Wj" = ( /obj/machinery/light/small/directional/north, @@ -1950,1864 +1535,1620 @@ /area/awaymission/caves/northblock) "Xs" = ( /mob/living/basic/spider/giant/hunter/away_caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "XG" = ( /obj/effect/mine/explosive{ desc = "Rusted mines planted out by the miners before, probably to keep the cave monsters at bay."; name = "rusted mine" }, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "XN" = ( -/obj/item/grenade/syndieminibomb/concussion, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/obj/item/grenade/frag, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_two) "XR" = ( /obj/structure/spider/stickyweb, /mob/living/basic/spider/giant/hunter/away_caves, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, -/area/awaymission/caves/bmp_asteroid/level_three) -"YG" = ( -/obj/item/organ/brain/alien, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "YZ" = ( /mob/living/basic/skeleton, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) "Zj" = ( /obj/effect/decal/remains/human, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid) "ZS" = ( /obj/structure/barricade/wooden, -/turf/open/misc/asteroid/basalt{ - initial_gas_mix = "n2=23;o2=14;TEMP=2.7" - }, +/turf/open/misc/asteroid/basalt, /area/awaymission/caves/bmp_asteroid/level_three) (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 -aa -aa -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(5,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(6,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -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 -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 -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 -ab -ab -ab -ab -ab -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 -OX -OX -OX -OX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(2,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(3,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(4,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(5,1,1) = {" +Bd +ww +Bd +ww +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd +Bd +ww +Bd +"} +(6,1,1) = {" +Bd +ww +Bd +ww +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +ww +ww +ww +ww +Bd +"} +(7,1,1) = {" +Bd +Bd +Cc +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +OX +OX +OX +OX +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd "} (8,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd gX ac ac @@ -3880,92 +3221,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd ha bL bL @@ -4049,22 +3358,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +ww +Bd +Bd +Bd +Bd "} (9,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +ww +ww +ww +ww +ww +Bd ac ac ac @@ -4137,92 +3446,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -4263,8 +3540,8 @@ bL bL bL dX -fy -fy +ej +ej dW bL dW @@ -4306,22 +3583,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +ww +Bd +ww +Bd +ww +Bd "} (10,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +ww +Bd +ww +Bd +Bd +Bd ac ac ac @@ -4394,92 +3671,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -4520,14 +3765,14 @@ bL bL bL dW -fy -fy +ej +ej dW bL dW -fy -fy -fy +ej +ej +ej dX bL bL @@ -4563,22 +3808,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +ww +Bd +ww +Bd +ww +Bd "} (11,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +ww +Bd +ww +ww +Bd ac ac ac @@ -4651,92 +3896,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -4777,14 +3990,14 @@ bL bL bL dX -fy -fy +ej +ej dX bL dX -fy +ej ga -fy +ej dX bL bL @@ -4820,22 +4033,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +ww +Bd +Bd "} (12,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -4898,102 +4111,70 @@ hr hr hq Xs -YG -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +hq +ac +ac +ac +ac +ac +ac +ac +ac +ac +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -5034,14 +4215,14 @@ bL bL bL dW -fy -fy +ej +ej dX bL dW -fy -fy -fy +ej +ej +ej dW bL bL @@ -5077,22 +4258,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (13,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +ww +ww +ww +ww +ww +Bd ac ac ac @@ -5165,92 +4346,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -5270,7 +4419,7 @@ bL bL bL dt -dx +dC Mk dI dM @@ -5291,8 +4440,8 @@ bL bL bL dW -fy -fy +ej +ej dW bL dW @@ -5334,22 +4483,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +ww +Bd +Bd +Bd +Bd +Bd "} (14,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +ww +Bd +Bd +Bd +ww +Bd ac ac ac @@ -5422,92 +4571,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ww -ab -ww -ab -ww -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -5591,22 +4708,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +ww +ww +ww +ww +ww +Bd "} (15,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +ww +ww +ww +Bd +Bd ac ac ac @@ -5679,92 +4796,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ww -ab -ww -ab -ww -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 -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 -ab -ab -ab -ab -ww -ab -ab -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -5805,8 +4890,8 @@ bL bL bL dX -fy -fy +ej +ej dW BK BK @@ -5848,22 +4933,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +ww +Bd +Bd +Bd +Bd +Bd "} (16,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -5936,92 +5021,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ab -ww -ab -ww -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 -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 -ab -ab -ab -ab -ww -ww -ww -ww -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -6105,22 +5158,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (17,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -6193,92 +5246,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -6362,22 +5383,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -6450,92 +5471,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -ww -ww -ww -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 -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 -ab -ab -ab -ab -ww -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -6619,22 +5608,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -6707,92 +5696,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ww -ab -ww -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 -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 -ab -ab -ab -ab -ab -ww -ab -ww -ab -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -6876,22 +5833,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -6964,92 +5921,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ab -ww -ab -ww -ww -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 -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 -ab -ab -ab -ww -ab -ww -ab -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -7133,22 +6058,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -7221,92 +6146,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -7390,22 +6283,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -7478,92 +6371,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -ww -ww -ww -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -7591,7 +6452,7 @@ dQ dt dy en -ee +dK BK bL bL @@ -7647,22 +6508,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -7735,92 +6596,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ww -ab -ab -ab -ww -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 -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 -ab -ab -ab -ww -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -7848,7 +6677,7 @@ dR dt ed eo -ep +dR zR bM bM @@ -7904,22 +6733,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -7992,92 +6821,60 @@ hq ac ac ac -aa -aa -aa -aa -aa -aa -aa -ab -ab -ww -ww -ww -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 -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 -ab -ab -ab -ab -ww -ww -ww -ww -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -8103,8 +6900,8 @@ dt dQ dQ du -ee -ep +dK +dR et BK bM @@ -8161,22 +6958,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -8249,92 +7046,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -8418,22 +7183,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -8506,92 +7271,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -8675,22 +7408,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -8763,92 +7496,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -8932,22 +7633,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -9020,92 +7721,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -9189,22 +7858,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -9277,92 +7946,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -9375,7 +8012,7 @@ cr cA cr cR -cV +cr cr cg bL @@ -9446,22 +8083,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac sE @@ -9534,92 +8171,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -9629,11 +8234,11 @@ bL bL ch cs -JP +Wx cN cS Wx -JP +Wx cg bL bL @@ -9703,22 +8308,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -9791,92 +8396,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -9960,22 +8533,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -10048,92 +8621,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -10217,22 +8758,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -10305,92 +8846,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -10474,22 +8983,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -10562,92 +9071,60 @@ hq hq ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -10731,22 +9208,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq ac @@ -10819,92 +9296,60 @@ hq ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -10988,22 +9433,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (36,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq ac @@ -11076,92 +9521,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -11245,22 +9658,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq ac @@ -11333,92 +9746,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -11453,7 +9834,7 @@ eH eL eJ eW -eN +eJ eJ eO fh @@ -11479,14 +9860,14 @@ bL bL bL BK -Aj -Aj -Aj +fJ +fJ +fJ dW cx cx dW -Aj +fJ bL bL bL @@ -11502,22 +9883,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (38,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -11590,92 +9971,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -11701,7 +10050,7 @@ BK BK bL eF -eg +eJ lE eJ eJ @@ -11759,22 +10108,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (39,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -11847,92 +10196,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -11960,7 +10277,7 @@ bL eG eh fm -eg +eJ eJ eF eI @@ -12016,22 +10333,22 @@ BK bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (40,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -12104,92 +10421,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -12221,7 +10506,7 @@ fm eJ eG eJ -eN +eJ eJ eF sw @@ -12273,22 +10558,22 @@ BK bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (41,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -12361,92 +10646,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -12530,22 +10783,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (42,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -12618,92 +10871,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -12740,7 +10961,7 @@ eJ eJ eJ eJ -eN +eJ fh BK BK @@ -12787,22 +11008,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (43,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ZS @@ -12875,92 +11096,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -13044,22 +11233,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ZS @@ -13132,92 +11321,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -13301,22 +11458,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (45,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -13389,92 +11546,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -13558,22 +11683,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (46,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -13646,92 +11771,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -13815,22 +11908,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -13903,92 +11996,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -14072,22 +12133,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -14160,92 +12221,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -14329,22 +12358,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (49,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -14417,92 +12446,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -14536,7 +12533,7 @@ bM bM bM bM -ca +fH zS BK BK @@ -14586,22 +12583,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -14674,92 +12671,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -14793,7 +12758,7 @@ bM bM bM bM -ca +fH BK BK bL @@ -14843,22 +12808,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (51,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -14931,92 +12896,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -15050,7 +12983,7 @@ bM bM bM bM -ca +fH BK BK bL @@ -15100,22 +13033,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (52,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -15188,92 +13121,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -15307,7 +13208,7 @@ bM bM bM bM -ca +fH BK BK bL @@ -15357,22 +13258,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (53,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -15445,92 +13346,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -15564,7 +13433,7 @@ bM bM bM bM -ca +fH BK BK bL @@ -15614,22 +13483,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (54,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -15702,97 +13571,65 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM bM -ca +fH BK BK BK @@ -15821,7 +13658,7 @@ bM bM bM bM -ca +fH BK BK bL @@ -15832,8 +13669,8 @@ bM bM bM bM -fW -fy +gK +ej ev gf gm @@ -15871,22 +13708,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (55,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -15959,98 +13796,66 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bL -bM -bM -bM -bM -ca +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bL +bM +bM +bM +bM +fH BK BK BK @@ -16078,7 +13883,7 @@ bM bM bM bM -ca +fH BK BK bL @@ -16090,10 +13895,10 @@ bM bM bM bM -fy -gc +ej +gL gg -fy +ej ev gm dW @@ -16128,22 +13933,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (56,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -16216,98 +14021,66 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM bM bM -ca +fH BK BK BK @@ -16348,7 +14121,7 @@ bM bM bM bM -fy +ej gh bM go @@ -16385,22 +14158,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (57,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -16473,92 +14246,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -16581,11 +14322,11 @@ bL bL bL bL -ca -ca -ca -ca -ca +fH +fH +fH +fH +fH bL bM bM @@ -16642,22 +14383,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (58,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -16730,92 +14471,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -16861,11 +14570,11 @@ bM bM bM bM -fy -fy +ej +ej gi -fy -fy +ej +ej gq gy fH @@ -16899,22 +14608,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (59,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -16987,92 +14696,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -17119,9 +14796,9 @@ bM bM bM bM -fy +ej dW -fy +ej gq gu gq @@ -17156,22 +14833,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (60,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac hq hq @@ -17244,92 +14921,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -17376,7 +15021,7 @@ bM bM bM bM -fy +ej gj ev gr @@ -17413,22 +15058,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (61,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -17501,92 +15146,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -17633,8 +15246,8 @@ bM bM bM bM -fy -fW +ej +gK ev gq gm @@ -17670,22 +15283,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (62,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -17758,92 +15371,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -17927,22 +15508,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (63,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac hq @@ -18015,92 +15596,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -18156,7 +15705,7 @@ bL bL BK BK -fy +ej gF gH ej @@ -18184,22 +15733,22 @@ bM bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (64,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -18272,92 +15821,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bM bM @@ -18414,9 +15931,9 @@ BK BK BK BK -fy -gI -fy +ej +gq +ej sT BL BL @@ -18441,22 +15958,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (65,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -18529,92 +16046,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -18671,9 +16156,9 @@ BK BK BK sT -fy -fy -fy +ej +ej +ej BK BK BK @@ -18698,22 +16183,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (66,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -18786,92 +16271,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -18925,13 +16378,13 @@ bL bL bL BK -fW +gK gB -fy +ej gB -gJ -fy -fy +ev +ej +ej bM BL BK @@ -18955,22 +16408,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (67,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -19043,92 +16496,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -19186,9 +16607,9 @@ dX WH sI gG -gJ +ev gB -fy +ej bM BK BL @@ -19212,22 +16633,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (68,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -19300,92 +16721,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -19443,9 +16832,9 @@ dW dW dW dX -gJ +ev gM -gJ +ev gO dX gK @@ -19469,22 +16858,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (69,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -19557,92 +16946,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -19726,22 +17083,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (70,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -19814,92 +17171,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -19983,22 +17308,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (71,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -20071,92 +17396,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -20240,22 +17533,22 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (72,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd ac ac ac @@ -20328,92 +17621,60 @@ ac ac ac ac -aa -aa -aa -aa -aa -aa -aa -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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bL bL bL @@ -20497,25979 +17758,3172 @@ bL bL bL bL -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (73,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 +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd OX OX OX OX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (74,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (75,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (76,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (77,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (78,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (79,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 -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 -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 -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (80,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (81,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (82,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (83,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (84,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (85,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} (86,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(87,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(88,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(89,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(90,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(91,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(92,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(93,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(94,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(95,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(96,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(97,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(98,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(99,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(100,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(101,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(102,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(103,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(104,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(105,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(106,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(107,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(108,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(109,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(110,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(111,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(112,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(113,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(114,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(115,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(116,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(117,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(118,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(119,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(120,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(121,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(122,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(123,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(124,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(125,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(126,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(127,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(128,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(129,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(130,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(131,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(132,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(133,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(134,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(135,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(136,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(137,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(138,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(139,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(140,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(141,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(142,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(143,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(144,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(145,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(146,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(147,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(148,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(149,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(150,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(151,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(152,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(153,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(154,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(155,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(156,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(157,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(158,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(159,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(160,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(161,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(162,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(163,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(164,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(165,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(166,1,1) = {" -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 -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 -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 -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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(167,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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(168,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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(169,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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(170,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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(171,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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(172,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 -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 -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 -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 -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 -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 -ab -ab -ab -"} -(173,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 -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +OX +OX +OX +OX +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(174,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(87,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd gY ad ad @@ -46568,165 +21022,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +gZ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bQ +dg +dg +bR +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(175,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(88,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -46825,165 +21247,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bR +bT +bT +bR +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(176,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(89,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -47082,165 +21472,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bR +bR +bR +bR +bR +bK +bK +bK +bK +bK +bQ +bT +bT +bR +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(177,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(90,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -47339,165 +21697,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bR +bT +bT +bT +bQ +bK +bK +bK +bK +bK +bQ +bT +bT +bQ +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(178,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(91,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -47596,165 +21922,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bQ +bT +ce +bT +bQ +bK +bK +bK +bK +bK +bQ +bT +bT +bQ +bN +bN +bN +bK +bN +bN +bN +bN +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(179,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(92,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -47853,165 +22147,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +oI +bR +bT +bT +bT +bR +bK +bK +bK +bK +bK +bR +bS +bS +bQ +bN +bN +bN +bN +bN +bN +bN +bN +bN +bN +bK +bK +bK +bK +oI +oI +oI +sl +oI +oI +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(180,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(93,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -48110,165 +22372,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +oI +bR +oI +cf +kL +bR +oI +bK +bK +bK +bK +bR +bT +bT +bR +oI +oI +oI +oI +oI +oI +bN +bN +bN +bN +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +oI +oI +oI +Fj +oI +MB +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(181,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(94,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -48367,165 +22597,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +oI +RJ +oI +cf +cf +RJ +oI +oI +bK +bK +bK +uo +oI +oI +uo +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +oI +bK +bK +bK +bK +oI +bK +bK +bK +bK +bK +oI +oI +ra +oI +BQ +MB +MB +oI +oI +oI +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(182,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(95,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -48624,165 +22822,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +oI +oI +oI +cf +cf +cf +cf +cf +oI +bK +bK +oI +oI +oI +oI +oI +bO +bO +bO +bO +oI +oI +oI +hT +oI +oI +oI +bK +bK +oI +oI +bK +bK +bK +bK +oI +bK +bK +bK +bK +oI +oI +oI +oI +Ds +Bs +oI +Tj +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(183,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(96,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -48881,165 +23047,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +KY +DH +cf +cf +cf +cf +cf +cf +bK +bK +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +Np +oI +oI +oI +bK +bK +bK +oI +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(184,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(97,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -49138,165 +23272,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +Bo +oI +oI +oI +oI +cf +cf +bK +bK +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +Np +oI +oI +oI +oI +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(185,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(98,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -49395,165 +23497,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +bK +bQ +dl +dl +bR +dh +dh +bQ +bK +oI +hT +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bK +bK +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(186,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(99,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -49652,165 +23722,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -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 -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 -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 -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 -ab -ab -ab +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +bK +bQ +bO +bO +dl +bT +bT +dl +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +bO +bO +bO +bO +bK +bK +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +oI +oI +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(187,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(100,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -49909,165 +23947,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +bK +bQ +dl +dl +bQ +dh +dh +bR +oI +bO +bO +bO +bO +bO +bO +oI +oI +bK +oI +oI +oI +oI +oI +oI +oI +oI +bO +bO +bK +bK +bK +bK +bK +bK +cm +cm +cm +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(188,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(101,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -50166,165 +24172,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +oI +oI +oI +bO +bO +bO +oI +oI +oI +oI +oI +bK +bK +bK +bK +bK +bK +Np +oI +oI +bO +bO +bK +bK +bK +bK +bK +bK +cm +cm +cm +bK +cm +cm +cm +cm +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(189,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(102,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -50423,165 +24397,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +hT +oI +oI +oI +oI +oI +oI +oI +oI +oI +bO +bO +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +cm +cm +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(190,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(103,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -50680,165 +24622,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +bT +bT +bT +bT +bT +bT +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +Rt +oI +oI +oI +bO +bO +bK +bK +bK +bK +bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +cm +cm +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(191,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(104,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -50937,165 +24847,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +oI +oI +oI +bK +bK +bK +oI +oI +oI +bK +bK +bK +bK +bK +oI +oI +bO +bO +bK +bO +bO +bO +bO +bO +bK +bK +bK +bK +bN +bN +bK +bO +bO +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(192,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(105,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -51194,165 +25072,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +bK +oI +bO +bO +bO +bO +bO +bO +bO +oI +oI +oI +bN +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bK +bK +bK +bK +bN +bN +bK +bO +bO +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(193,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(106,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -51451,165 +25297,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -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 -OX -OX -OX -OX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bK +bK +bK +oI +oI +bO +bO +bO +bO +bO +bO +oI +oI +oI +oI +bN +bK +bK +bK +bK +bK +bK +bK +bK +oI +hT +bO +bO +bT +bO +bO +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +cm +cm +cm +cm +bO +bO +bO +bO +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bO +bO +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(194,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(107,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -51708,97 +25522,87 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -gZ -bK -bK -bK -bK -bK -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK bK bK bK +Np +oI +bO +bO +bO +bO +bO +oI +oI +oI +bR +dl +bR +bQ bQ -dg -dg bR bK bK bK bK bK +oI +oI +bO +bO +bT +bO +bO +bO +bO bK bK bK bK bK +bN bK bK bK bK +cm +cm +cm +cm +bO +bO +bO +bO bK bK bK @@ -51818,6 +25622,9 @@ bK bK bK bK +bO +oI +oI bK bK bK @@ -51827,46 +25634,21 @@ bK bK bK bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(195,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(108,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -51965,124 +25747,88 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK +bN +bN +oI +oI +oI +bO +bO +bO +bO +bO +oI +oI +oI +dh +dm +dh +do +dv bR -bT -bT -bR -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK bK bK bK bK bK +oI +oI +bO +bO +bT +bO +oI +oI +oI bK bK bK bK bK bK +bN +bN +bN bK +cm +cm +cm +cm +bO +bO +bO +bO +bO bK bK bK @@ -52099,6 +25845,11 @@ bK bK bK bK +bO +bO +bO +oI +oI bK bK bK @@ -52108,22 +25859,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(196,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(109,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -52222,95 +25972,55 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK +bN +bN +oI +bO +bO +bO +bO +bO +bO +bO +oI +oI +bQ bR +dl bR +dr +do bR -bR -bR -bK -bK -bK -bK -bK -bQ -bT -bT -bR -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK bK bK bK @@ -52318,16 +26028,32 @@ oI oI oI oI +bO +bO +bT +bO +oI +cm +cm +cm +cm +cm bK bK bK bK +bN +bN bK bK bK +cm +cm bK bK bK +bO +bO bK bK bK @@ -52344,6 +26070,11 @@ bK bK bK bK +bO +bO +bO +oI +oI bK bK bK @@ -52353,34 +26084,21 @@ bK bK bK bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(197,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(110,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -52478,129 +26196,89 @@ ad ad ad ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK -bR -bT -bT -bT -bQ -bK -bK -bK -bK -bK -bQ -bT -bT -bQ -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK oI oI oI +bO +bO +bO +bO +bO +bO oI oI -bK -bK -bK -bK -bK +Bo +bR +di +dn +do +do +dr +bQ bK bK bK oI +Np +bO +bO +bO +bO +bT +bO oI -oI -oI -oI -oI -oI -oI +cm +cm +cm +cm +cm bK bK bK bK +bN +bN bK bK bK bK bK bK +bN +bN +bO +bO bK bK bK @@ -52613,6 +26291,15 @@ bK bK bK bK +bO +bO +bO +bO +bO +bO +bO +oI +oI bK bK bK @@ -52622,22 +26309,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(198,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(111,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -52736,128 +26422,88 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK -bQ -bT -ce -bT -bQ -bK -bK -bK -bK -bK -bQ -bT -bT -bQ -bN -bN -bN -bK -bN -bN -bN -bN -bK -bK -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK oI oI +bO +bO +bO +bO +bO +bO +bO +bO oI oI -oI -bK -bK -bK -bK -bK -bK +Bo +bQ +dj +do +do +do +do +bR bK bK +cm oI oI +bO +bO +bO oI oI oI oI -oI -oI -bK -bK +cm +cm +cm +cm +cm bK bK +cm +cm bK +bN +bN bK bK bK bK bK +bN +bN +bO +bO bK bK bK @@ -52870,6 +26516,15 @@ bK bK bK bK +bO +bO +bO +bO +oI +oI +oI +oI +oI bK bK bK @@ -52879,22 +26534,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(199,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(112,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -52993,84 +26647,77 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +Np +oI +cm +bQ +dk +dp +nw +ds +dw +bR bK bK +cm +oI +oI +bO +bO +bO +oI oI -bR -bT -bT -bT -bR bK +cm +cm +cm +cm +cm bK bK bK +cm +cm bK -bR -bS -bS -bQ -bN bN bN bN @@ -53080,16 +26727,12 @@ bN bN bN bN +bO +bO bK bK bK bK -oI -oI -oI -sl -oI -oI bK bK bK @@ -53097,24 +26740,15 @@ bK bK bK bK +bK +bO +bO +bO +bO oI oI oI oI -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK bK bK bK @@ -53125,33 +26759,21 @@ bK bK bK bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(200,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(113,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -53250,132 +26872,106 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK oI -bR +bO +bO +bO +bO +bO +bO +bO oI -cf -kL -bR oI -bK -bK -bK -bK +oI +oI +cm +bR bR -bT -bT bR +bR +bQ +bQ +bQ +cm +cm +cm +oI +oI +bO +bO +bO oI oI +bK +cm +cm +cm +cm +cm +bK oI oI oI oI +cm +bK +bK +bN bN bN bN bN bK bK +bO +bO +bK +bK +bK +bK bK bK bK -oI -oI -oI -oI -oI -oI bK bK bK bK bK -oI -oI -oI -Fj -oI -MB -oI -oI -oI -oI -bO -bO -bO bO bO bO bO oI oI -oI -oI -bK -bK bK bK bK @@ -53388,27 +26984,21 @@ bK bK bK bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(201,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(114,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -53507,121 +27097,85 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -oI -RJ -oI -cf -cf -RJ -oI -oI -bK -bK -bK -uo -oI -oI -uo -oI -oI -oI -oI -oI -oI -oI -oI +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK oI +bO +bO +bO +bO +bO +bO +bO oI +cm +cm bK bK bK bK bK -oI bK bK bK +cm +cm +cm bK oI +oI +bO +bO +bO +oI bK bK +cm +cm +cm +cm +cm bK -bK -bK -oI oI -ra -oI -BQ -MB -MB oI oI oI +cm +bK +bK bK bK +bN +bN +bN +bK bK bO bO @@ -53630,13 +27184,18 @@ bO bO bO bO -oI -oI -oI -oI +bO +bO +bK +bK bK bK bK +bO +bO +bO +bO +oI bK bK bK @@ -53650,22 +27209,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(202,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(115,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -53764,84 +27322,37 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -oI -oI -oI -cf -cf -cf -cf -cf -oI -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK oI -oI -oI -oI -oI +bO bO bO bO @@ -53849,33 +27360,37 @@ bO oI oI oI -hT -oI -oI -oI -bK -bK -oI -oI +cm +cm bK bK bK bK -oI bK bK bK +cm +cm +cm +cm bK +Np oI +bO +bO +bO oI +cm +cm +cm +cm +cm +bK +bK +bK oI oI -Ds -Bs -oI -Tj -oI -oI +ra oI bK bK @@ -53884,16 +27399,28 @@ bK bK bK bK +bK +bK bO bO bO bO bO bO -oI -oI +bO +bO +bO +bO +bK bK bK +bO +bO +bO +bO +bO +bO +oI bK bK bK @@ -53907,22 +27434,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(203,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(116,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -54021,111 +27547,71 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK -KY -DH -cf -cf -cf -cf -cf -cf -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK oI -oI -bO -bO -bO -bO -bO bO bO bO bO bO -bO -oI oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +cm +cm oI oI -Np oI oI oI -bK -bK -bK +bO +bO +bO oI +cm +cm +cm +cm +cm bK bK -bK -bK -oI -oI -oI oI oI oI @@ -54140,10 +27626,18 @@ bK bK bK bK -bK -bK -bK -bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO bO @@ -54151,6 +27645,7 @@ bO oI oI oI +oI bK bK bK @@ -54164,22 +27659,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(204,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(117,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -54278,125 +27772,79 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +oI +bO +bO +bO +bO +bO +oI +cm +cm +bK +bR +bR +bK bK bK bK bK bK -Bo -oI -oI -oI -oI -cf -cf bK bK oI -oI -bO -bO -bO -bO -bO bO bO bO bO bO -bO -bO -bO -bO -oI -oI -oI -oI -Np -oI oI oI oI -bK -bK +cm +cm +cm +cm bK bK bK oI oI +hT oI oI oI oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK +Ry bK bK bK @@ -54407,9 +27855,23 @@ bO bO bO bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO oI oI oI +oI +bK bK bK bK @@ -54421,22 +27883,22 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(205,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(118,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -54535,138 +27997,105 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ww -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK -bK -bK -bQ -cl -cl -bR -cH -cH -bQ +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK oI -hT bO bO bO bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bK -bK oI oI +cm +cm +bR oI oI +cK bK bK -bK -bK -bK -bK -oI -oI +bN oI oI oI oI oI +bO +bO +bO +bO +bO oI oI oI +cm +cm +cm +cm bK bK +oI +oI +VK +FV bK bK +oI +oI +Ry +oI +oI bK -bK -bK -bK -bK -bK -bK -bK -bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO bO bO bO oI +oI +bK +bK +bK bK bK bK @@ -54678,22 +28107,23 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(206,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(119,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -54792,78 +28222,51 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -ww -ww -ww -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK +oI +oI +bO +oI +oI +oI bK bK bK +bR +oI +oI +bR +bK bK bK -bQ -bO -bO -cl -bT -bT -cl oI oI bO @@ -54874,36 +28277,46 @@ bO bO bO bO -bO -bO -oI oI oI -oI -bO -bO -bO -bO +bK +cm +cm +cm +bK bK bK oI +FV oI oI bK bK -bK -bK -bK -bK -bK -bK -oI -oI oI +Ry oI oI oI bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK @@ -54920,37 +28333,22 @@ bK bK bK bK -bO -bO -bO -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(207,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(120,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -55049,105 +28447,63 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK +oI +bO +oI bK bK bK bK -bQ -cl -cl -bQ -cH -cH bR oI -bO -bO -bO -bO -bO -bO oI oI -bK oI +bR +bN +bN oI oI +bO +bO +bO +bO oI oI oI oI oI -bO -bO -bK -bK -bK -bK bK -bK -cm cm cm bK @@ -55155,12 +28511,37 @@ bK bK bK bK +oI +oI bK bK bK bK bK +Ry +oI +oI +oI bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK @@ -55177,37 +28558,22 @@ bK bK bK bK -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(208,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(121,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -55306,96 +28672,55 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK +oI +bO +oI bK bK bK +bK +bR oI +Ds oI oI -oI -oI -oI -oI -oI +bR +bN +bN oI bO bO bO -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -Np -oI -oI bO bO bK @@ -55403,12 +28728,6 @@ bK bK bK bK -bK -cm -cm -cm -bK -cm cm cm cm @@ -55424,7 +28743,30 @@ bK bK bK bK +oI +oI +oI +oI bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK @@ -55434,13 +28776,6 @@ bK bK bK bK -bO -bO -bO -bO -bO -oI -bK bK bK bK @@ -55449,22 +28784,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(209,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(122,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -55563,121 +28897,64 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -ww -ww -ww -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 -ab -ab -ab -ab -ab -ww -ab -ab -ww -ww -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK oI -oI -oI -oI -oI -bO -bO -bO bO -bO -bO -bO -oI -oI -oI -oI -hT oI oI oI -oI -oI -oI -oI -oI -oI -bO -bO bK bK bK +cK +oI +oI +bR +bN bK bK +oI bO bO bO bO bO -bO -bO -bO -bO -cm -cm -bK -bK bK bK bK bK bK +cm +cm bK bK bK @@ -55691,6 +28968,24 @@ bK bK bK bK +oI +oI +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO bO @@ -55706,22 +29001,29 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(210,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(123,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -55820,117 +29122,58 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ab -ww -ab -ww -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK -bK -oI -oI -oI -oI -oI -bT -bT -bT -bT -bT -bT -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -Rt -oI -oI +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK oI bO bO +bO +oI +cm +cm bK bK +bR +bR +bN bK bK bK -bO -bO -bO -bO -bO +oI +oI bO bO bO bO cm -cm -bK -bK -bK bK bK bK @@ -55938,21 +29181,43 @@ bK bK bK bK +bN bK bK bK bK bK bK +bN bK bK bK bK bK bK +oI +oI +hT +oI +oI +oI +oI +bO +bO +bO +bO +bO bO bO bO +bO +bO +bO +bO +bO +bO +oI +oI oI bK bK @@ -55963,22 +29228,27 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(211,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(124,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -56077,89 +29347,45 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ab -ab -ww -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK oI -oI -oI -oI bO bO bO -bO -bO -bO -oI oI -oI -bK +cm +cm bK bK -oI -oI -oI bK bK bK @@ -56167,25 +29393,17 @@ bK bK oI oI -bO -bO -bK -bO +oI bO bO bO bO +cm bK bK bK bK -bN -bN bK -bO -bO -bO -bO bK bK bK @@ -56202,15 +29420,36 @@ bK bK bK bK +Ly +oI +oI +oI +oI +oI +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK bK bK bK -bO -bO -oI bK bK bK @@ -56220,22 +29459,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(212,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(125,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -56334,83 +29572,43 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -ww -ww -ww -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK oI bO bO bO -bO -bO -bO -bO oI oI oI -bN bK bK bK @@ -56418,10 +29616,6 @@ bK bK bK bK -bK -oI -oI -oI oI oI bO @@ -56436,13 +29630,7 @@ bK bK bK bK -bN -bN bK -bO -bO -bO -bO bK bK bK @@ -56459,15 +29647,34 @@ bK bK bK bK +Np +oI +oI +oI +oI +oI +oI +oI +oI +hT +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK bK bK bK -bO -bO -oI bK bK bK @@ -56477,22 +29684,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(213,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(126,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -56591,73 +29797,37 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ww -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 -ab -ab -ab -ab -ab -ab -ab -ww -ww -ww -ww -ww -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK oI -oI -bO bO bO bO @@ -56667,42 +29837,22 @@ oI oI oI oI -bN -bK -bK -bK -bK bK bK bK bK oI -hT -bO -bO -bT -bO bO bO bO bK bK -bK -bK -bK -bK -bK -bK -bK -bK -cm -cm -cm -cm bO bO bO bO +cm +cm bK bK bK @@ -56722,6 +29872,25 @@ bK bK bK bK +oI +oI +bO +bO +bO +oI +hT +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO oI @@ -56734,22 +29903,27 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(214,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(127,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -56848,106 +30022,62 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -ab -ww -ww -ww -ww -ww -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 -ab -ab -ab -ab -ab -ab -ww -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bK +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK -Np +oI +oI oI bO bO bO bO bO +bO oI -oI -oI -bR -dl -bR -bQ -bQ -bR bK bK bK bK -bK -oI oI bO bO -bT bO +bK +bK bO bO bO -bK -bK -bK -bK -bK -bN +bO +cm +cm bK bK bK @@ -56956,14 +30086,6 @@ cm cm cm cm -bO -bO -bO -bO -bK -bK -bK -bK bK bK bK @@ -56971,17 +30093,38 @@ bK bK bK bK +cm +cm +cm bK bK +bO +bO +bO +bO +bO +bO +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK bK bK bK -bO -oI -oI bK bK bK @@ -56991,22 +30134,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(215,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(128,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -57105,69 +30247,38 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ww -ww -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK -bN -bN +oI +oI oI oI oI @@ -57175,50 +30286,31 @@ bO bO bO bO -bO +hT oI oI oI -dh -dm -dh -do -dv -bR -bK -bK -bK -bK -bK oI oI bO bO -bT bO -oI -oI -oI -bK bK bK bK bK bK -bN -bN -bN -bK -cm -cm -cm -cm +bO bO bO bO bO bO bK +cm +cm +cm +cm bK bK bK @@ -57226,19 +30318,38 @@ bK bK bK bK +cm +cm +cm bK bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK bK bK bK -bO -bO -bO -oI -oI bK bK bK @@ -57248,22 +30359,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(216,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(129,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -57362,69 +30472,41 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK -bN -bN +uO +oI +oI +oI +oI oI bO bO @@ -57433,46 +30515,9 @@ bO bO bO bO -oI -oI -bQ -bR -dl -bR -dr -do -bR -bK -bK -bK -oI -oI -oI -oI bO bO -bT bO -oI -cm -cm -cm -cm -cm -bK -bK -bK -bK -bN -bN -bK -bK -bK -cm -cm -bK -bK -bK bO bO bK @@ -57480,10 +30525,50 @@ bK bK bK bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bK bK bK +bN +bN bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +oI bK bK bK @@ -57491,12 +30576,6 @@ bK bK bK bK -bO -bO -bO -oI -oI -bK bK bK bK @@ -57505,22 +30584,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(217,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(130,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -57619,67 +30697,41 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ww -ww -ww -ww -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK +bQ +oI +oI +uO +oI oI oI oI @@ -57689,61 +30741,51 @@ bO bO bO bO -oI -oI -Bo -bR -di -dn -do -do -dr -bQ -bK -bK -bK -oI -Np -bO bO bO bO -bT bO -oI -cm -cm -cm -cm -cm bK bK bK bK -bN -bN bK bK bK bK bK bK -bN -bN bO bO -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO bO @@ -57752,7 +30794,6 @@ bO bO bO oI -oI bK bK bK @@ -57762,22 +30803,27 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(218,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(131,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -57876,66 +30922,42 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ab -ab -ab -ww -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK bK +bQ +oI +oI +bQ +oI +oI oI oI bO @@ -57946,49 +30968,16 @@ bO bO bO bO -oI -oI -Bo -bQ -dj -do -do -do -do -bR -bK -bK -cm -oI -oI -bO bO bO -oI -oI -oI -oI -cm -cm -cm -cm -cm bK bK -cm -cm bK -bN -bN bK bK bK bK bK -bN -bN -bO -bO bK bK bK @@ -57996,6 +30985,14 @@ bK bK bK bK +bO +bO +bO +bO +bO +bO +bK +bK bK bK bK @@ -58005,11 +31002,23 @@ bO bO bO bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO oI -oI -oI -oI -oI bK bK bK @@ -58019,22 +31028,27 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(219,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(132,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -58133,119 +31147,50 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ww -ww -ww -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -Np -oI -cm -bQ -dk -dp -nw -ds -dw -bR +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK bK -cm +bQ +oI +bT +bQ +oI oI oI -bO -bO -bO oI oI bK -cm -cm -cm -cm -cm bK bK bK -cm -cm bK -bN -bN -bN -bN -bN -bN -bN -bN -bN -bO -bO bK bK bK @@ -58255,17 +31200,50 @@ bK bK bK bK +Cc +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +cm +cm +cm +bK +bK bK bK bK +bK +bK +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO bO bO oI -oI -oI -oI bK bK bK @@ -58276,22 +31254,26 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(220,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(133,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -58390,119 +31372,51 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK bK -oI -bO -bO -bO -bO -bO -bO -bO -oI -oI -oI -oI -cm -bR -bR -bR bR +bS +bS bQ -bQ -bQ -cm -cm -cm oI oI -bO -bO -bO +hT oI oI bK -cm -cm -cm -cm -cm bK -oI -oI -oI -oI -cm bK bK -bN -bN -bN -bN -bN bK bK -bO -bO bK bK bK @@ -58515,12 +31429,46 @@ bK bK bK bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +oI +oI +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO +bO bO bO bO bO oI -oI bK bK bK @@ -58533,22 +31481,24 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(221,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(134,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -58647,77 +31597,46 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK +bK +bR +bT +bY +bR +oI +oI +oI +oI oI -bO -bO -bO -bO -bO -bO -bO oI -cm -cm bK bK bK @@ -58726,38 +31645,41 @@ bK bK bK bK -cm -cm -cm bK -oI -oI -bO -bO -bO -oI bK bK -cm -cm -cm -cm -cm bK -oI -oI -oI -oI -cm bK bK bK bK -bN -bN -bN bK bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +oI +oI +oI +oI +hT +oI +bO +bO +bO +bO bO bO bO @@ -58767,11 +31689,6 @@ bO bO bO bO -bK -bK -bK -bK -bK bO bO bO @@ -58790,22 +31707,23 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(222,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(135,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -58904,116 +31822,86 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK +bK +bQ +bT +bT +bR +oI +oI +oI oI -bO -bO -bO -bO -bO oI oI oI -cm -cm -bK -bK -bK bK +bN +bN bK bK bK -cm -cm -cm -cm bK -Np -oI -bO -bO -bO -oI -cm -cm -cm -cm -cm bK bK bK -oI -oI -ra -oI bK bK bK bK bK bK +oI +oI +hT +oI +oI +oI +oI +oI bK bK bK +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI bO bO bO @@ -59024,16 +31912,15 @@ bO bO bO bO -bK -bK -bK -bO -bO bO bO bO bO oI +oI +oI +bK +bK bK bK bK @@ -59047,22 +31934,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(223,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(136,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -59161,74 +32047,54 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bR +bT +bT +bQ +bK bK oI -bO -bO -bO -bO -bO +oI +jU +oI +oI +oI +oI oI bK +bN +bN +bN bK bK bK @@ -59238,32 +32104,21 @@ bK bK bK bK -bK -cm -cm oI oI oI +Rt +oI oI oI -bO -bO -bO oI -cm -cm -cm -cm -cm +bK bK bK oI oI oI -oI -oI -oI -oI +hT oI bK bK @@ -59271,6 +32126,9 @@ bK bK bK bK +oI +oI +oI bO bO bO @@ -59283,13 +32141,6 @@ bO bO bO bO -bO -bO -bO -bO -oI -oI -oI oI bK bK @@ -59304,22 +32155,25 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(224,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(137,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -59418,135 +32272,100 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd bK -oI -bO -bO -bO -bO -bO -oI -cm -cm bK bR -bR -bK +bT +bT +bQ bK bK bK +oI +oI +oI +Rt +oI +oI +oI +oI +oI +oI +oI +oI bK bK bK bK oI -bO -bO -bO -bO -bO oI oI oI -cm -cm -cm -cm -bK -bK +oI +oI +oI +oI bK oI oI -hT +oI +NX +XN +ki +FV oI oI oI oI -Ry bK bK bK bK bK bK +bK +oI +oI +oI +oI +oI +oI +oI +hT +oI bO bO bO bO bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -oI -oI oI bK bK @@ -59561,22 +32380,25 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(225,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(138,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -59675,133 +32497,102 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bR +bT +bT +bQ +bK +bK +bK bK oI -bO -bO -bO -bO oI oI -cm -cm -bR oI oI -cK -bK -bK -bN oI oI oI oI oI -bO -bO -bO -bO -bO oI oI oI -cm -cm -cm -cm +oI +oI +oI +oI +oI +oI +bK +bK +bK bK bK oI oI -VK -FV +yS +oI +BQ +ml +oI +nY +oI +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK bK bK oI oI -Ry oI oI -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO oI oI +oI +bK bK bK bK @@ -59818,22 +32609,21 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd "} -(226,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(139,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -59932,131 +32722,76 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bQ +bT +bT +bR +bK +bK +bK +bK +bK +bK bK -oI -oI -bO -oI -oI -oI bK bK bK -bR -oI -oI -bR bK bK bK oI oI -bO -bO -bO -bO -bO -bO -bO -bO oI +hT +Rt oI bK -cm -cm -cm +bK +bK +bK +bK +bK bK bK bK oI -FV oI oI -bK -bK +FV oI -Ry oI oI oI -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO oI bK bK @@ -60075,22 +32810,45 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(227,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(140,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -60189,132 +32947,71 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bQ +bT +bT +bQ +bK +bK +bK +bK +bK +bK +bK bK bK -oI -bO -oI bK bK bK bK -bR -oI -oI -oI -oI -bR -bN -bN -oI oI -bO -bO -bO -bO oI oI oI oI oI bK -cm -cm bK bK bK bK bK -oI -oI bK bK bK bK bK -Ry -oI -oI -oI bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI bK bK bK @@ -60332,22 +33029,51 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(228,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(141,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -60446,96 +33172,58 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +bK +bK +bR +bU +bU +bQ +bK +bK +bK +bK +bK +bK +bK bK bK -oI -bO -oI bK bK bK bK -bR -oI -Ds -oI -oI -bR -bN -bN -oI -bO -bO -bO -bO -bO bK bK bK bK bK -cm -cm -cm bK bK bK @@ -60548,30 +33236,7 @@ bK bK bK bK -oI -oI -oI -oI bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI bK bK bK @@ -60589,22 +33254,51 @@ bK bK bK bK -aa -aa -aa -aa -aa -aa -aa +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +bK +Bd +Bd +Bd +Bd +Bd +Bd "} -(229,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(142,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -60671,197 +33365,165 @@ ad ad ad ad -ad -ao -ao -rv -rv -rv -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -bO -oI -oI -oI -bK -bK -bK -cK -oI -oI -bR -bN -bK -bK -oI -bO -bO -bO -bO -bO -bK -bK -bK -bK -bK -cm -cm -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +ad +ao +ao +rv +rv +rv +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +OX +OX +OX +OX +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(230,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(143,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -60946,179 +33608,147 @@ ad ad ad ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -bO -bO -bO -oI -cm -cm -bK -bK -bR -bR -bN -bK -bK -bK -oI -oI -bO -bO -bO -bO -cm -bK -bK -bK -bK -bK -bK -bK -bN -bK -bK -bK -bK -bK -bK -bN -bK -bK -bK -bK -bK -bK -oI -oI -hT -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(231,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(144,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -61185,197 +33815,165 @@ rv rv ao ao -rv -rv -rv -rv -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -bO -bO -bO -oI -cm -cm -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -bO -bO -bO -bO -cm -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -Ly -oI -oI -oI -oI -oI -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +rv +rv +rv +rv +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(232,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(145,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -61460,179 +34058,147 @@ ad ad ad ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -bO -bO -bO -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -Np -oI -oI -oI -oI -oI -oI -oI -oI -hT -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(233,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(146,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -61699,197 +34265,165 @@ rv rv rv rv -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -bO -bO -bO -bO -bO -oI -oI -oI -oI -bK -bK -bK -bK -oI -bO -bO -bO -bK -bK -bO -bO -bO -bO -cm -cm -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -bO -bO -bO -oI -hT -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(234,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(147,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -61988,165 +34522,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -oI -oI -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -oI -bO -bO -bO -bK -bK -bO -bO -bO -bO -cm -cm -bK -bK -bK -bK -cm -cm -cm -cm -bK -bK -bK -bK -bK -bK -bK -cm -cm -cm -bK -bK -bO -bO -bO -bO -bO -bO -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(235,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(148,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -62245,165 +34747,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -oI -oI -oI -oI -oI -bO -bO -bO -bO -hT -oI -oI -oI -oI -oI -bO -bO -bO -bK -bK -bK -bK -bK -bO -bO -bO -bO -bO -bO -bK -cm -cm -cm -cm -bK -bK -bK -bK -bK -bK -bK -cm -cm -cm -bK -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(236,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(149,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -62502,165 +34972,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -uO -oI -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bK -bK -bK -bK -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bK -bK -bK -bN -bN -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(237,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(150,1,1) = {" +Bd +ww +ww +Bd +Bd +Bd +Bd ad ad ad @@ -62759,216 +35197,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bQ -oI -oI -uO -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa -"} -(238,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ad -ad -ad -ad -ad -rv -rv -rv -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(151,1,1) = {" +Bd +Bd +Bd +ww +Bd +Bd +Bd ad ad ad @@ -62977,11 +35332,6 @@ ad rv rv rv -rv -ad -ad -ad -ad ad ad ad @@ -63016,175 +35366,6 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bQ -oI -oI -bQ -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bO -bO -bO -bO -bO -bO -bK -bK -bK -bK -bK -bK -bK -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa -"} -(239,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad ad ad ad @@ -63200,6 +35381,9 @@ ad ad ad rv +rv +rv +rv ad ad ad @@ -63231,20 +35415,6 @@ ad ad ad ad -rv -rv -rv -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad ad ad ad @@ -63252,6 +35422,133 @@ ad ad ad ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd +Bd +ww +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(152,1,1) = {" +Bd +ww +ww +ww +ww +ww +Bd ad ad ad @@ -63273,168 +35570,10 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bQ -oI -bT -bQ -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -cm -cm -cm -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa -"} -(240,1,1) = {" -aa -aa -aa -aa -aa -aa -aa ad ad ad +rv ad ad ad @@ -63453,10 +35592,7 @@ ad ad ad ad -rv ad -rv -rv ad ad ad @@ -63467,18 +35603,10 @@ ad ad ad ad -rv ad ad rv -ad -ad -ad -ad -ad rv -ad -wT rv ad ad @@ -63519,176 +35647,133 @@ ad ad ad ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bR -bS -bS -bQ -oI -oI -hT -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd +ww +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(241,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(153,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -63724,19 +35809,18 @@ ad ad ad ad -ad -rv rv +ad +ad rv ad ad ad ad +ad rv +ad rv -Bd -ao -aZ rv ad ad @@ -63787,166 +35871,134 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bR -bT -bY -bR -oI -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -oI -hT -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(242,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ad +(154,1,1) = {" +Bd +ww +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -63969,7 +36021,7 @@ ad ad ad rv -rv +ad rv rv ad @@ -63982,6 +36034,7 @@ ad ad ad ad +ad rv rv rv @@ -63989,12 +36042,12 @@ ad ad ad ad -ad -wT -ao -ba +rv +rv +rv +aZ ao -wT +rv ad ad ad @@ -64044,165 +36097,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bQ -bT -bT -bR -oI -oI -oI -oI -oI -oI -oI -bK -bN -bN -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -hT -oI -oI -oI -oI -oI -bK -bK -bK -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(243,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(155,1,1) = {" +Bd +ww +ww +ww +ww +ww +Bd ad ad ad @@ -64228,7 +36249,7 @@ ad rv rv rv -ad +rv ad ad ad @@ -64241,17 +36262,17 @@ ad ad rv rv -ad +rv ad ad ad ad ad rv -aZ ao -Bd -ad +ba +ao +rv ad ad ad @@ -64301,165 +36322,160 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bR -bT -bT -bQ -bK -bK -oI -oI -jU -oI -oI -oI -oI -oI -bK -bN -bN -bN -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -Rt -oI -oI -oI -oI -bK -bK -bK -Cc -oI -oI -hT -oI -bK -bK -bK -bK -bK -bK -oI -oI -oI -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +ww +ww +ww +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(244,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(156,1,1) = {" +Bd +ww +Bd +Bd +Bd +Bd +Bd +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +rv +rv +rv +ad +ad ad ad ad @@ -64469,12 +36485,18 @@ ad ad ad ad +rv +rv ad ad ad ad ad ad +rv +ao +ao +rv ad ad ad @@ -64505,8 +36527,153 @@ ad ad ad ad -rv -wT +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +"} +(157,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -64552,171 +36719,186 @@ ad ad ad ad +rv +rv ad ad ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bR -bT -bT -bQ -bK -bK -bK -oI -oI -oI -Rt -oI -oI -oI -oI -oI -oI -oI -oI -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -oI -oI -bK -oI -oI -oI -NX -XN -ki -FV -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -oI -hT -oI -bO -bO -bO -bO -bO -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +ww +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(245,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(158,1,1) = {" +Bd +ww +ww +ww +ww +ww +Bd ad ad ad @@ -64815,165 +36997,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bR -bT -bT -bQ -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -oI -oI -yS -oI -BQ -ml -oI -nY -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(246,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(159,1,1) = {" +Bd +Bd +Bd +ww +Bd +Bd +Bd ad ad ad @@ -65072,165 +37222,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bQ -bT -bT -bR -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -hT -Rt -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -FV -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +ww +ww +ww +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(247,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(160,1,1) = {" +Bd +ww +ww +ww +ww +ww +Bd ad ad ad @@ -65329,165 +37447,133 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bQ -bT -bT -bQ -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -oI -oI -oI -oI -oI -oI -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +Bd +Bd +Bd +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(248,1,1) = {" -aa -aa -aa -aa -aa -aa -aa +(161,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd ad ad ad @@ -65586,1953 +37672,1697 @@ ad ad ad ad -aa -aa -aa -aa -aa -aa -aa -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -bK -bK -bR -bU -bU -bQ -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -bK -aa -aa -aa -aa -aa -aa -aa +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +ww +ww +ww +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(249,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 -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 -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -OX -OX -OX -OX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(162,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(250,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 -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(163,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(251,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 -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(164,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(252,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 -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(165,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(253,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 -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(166,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(254,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 -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(167,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} -(255,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 -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 -ab -ab -ab -ab -ab -ab -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 -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(168,1,1) = {" +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd +Bd "} diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 5eefbc7b575c..4c4da537d6b6 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -1,7 +1,4 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/open/space, -/area/space) "ab" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -996,7 +993,7 @@ /turf/open/floor/iron/white, /area/awaymission/moonoutpost19/research) "gJ" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/light/small/broken/directional/west, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_social, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_queen, @@ -1025,7 +1022,7 @@ }, /area/awaymission/moonoutpost19/arrivals) "gW" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_hivemind, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_behavior, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/xeno_castes, @@ -52945,51 +52942,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -53202,51 +53199,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -53459,51 +53456,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -53716,51 +53713,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -53973,51 +53970,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -54230,51 +54227,6 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa IM IM IM @@ -54330,8 +54282,53 @@ IM IM IM IM -"} -(182,1,1) = {" +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +"} +(182,1,1) = {" IM IM IM @@ -54487,51 +54484,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -54744,51 +54741,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -55001,51 +54998,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -55258,51 +55255,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -55515,51 +55512,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -55772,51 +55769,6 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa IM IM IM @@ -55872,8 +55824,53 @@ IM IM IM IM -"} -(188,1,1) = {" +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +"} +(188,1,1) = {" IM IM IM @@ -56029,51 +56026,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -56286,51 +56283,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -56543,51 +56540,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -56800,51 +56797,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -57057,51 +57054,6 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa IM IM IM @@ -57157,8 +57109,53 @@ IM IM IM IM -"} -(193,1,1) = {" +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +"} +(193,1,1) = {" IM IM IM @@ -57314,51 +57311,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -57571,51 +57568,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -57828,51 +57825,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -58085,51 +58082,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -58342,51 +58339,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -58599,51 +58596,6 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa IM IM IM @@ -58699,8 +58651,53 @@ IM IM IM IM -"} -(199,1,1) = {" +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +"} +(199,1,1) = {" IM IM IM @@ -58856,51 +58853,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -59113,51 +59110,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -59370,51 +59367,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -59627,51 +59624,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -59884,51 +59881,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -60141,51 +60138,6 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa IM IM IM @@ -60241,8 +60193,53 @@ IM IM IM IM -"} -(205,1,1) = {" +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +"} +(205,1,1) = {" IM IM IM @@ -60398,51 +60395,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -60655,51 +60652,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -60912,51 +60909,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -61169,51 +61166,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -61426,51 +61423,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -61683,51 +61680,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -61940,51 +61937,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -62197,51 +62194,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -62454,51 +62451,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM @@ -62711,51 +62708,51 @@ zk zk zk zk -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM +IM IM IM IM diff --git a/_maps/RandomZLevels/research.dmm b/_maps/RandomZLevels/research.dmm index e37038cf57d8..64f2a725a51f 100644 --- a/_maps/RandomZLevels/research.dmm +++ b/_maps/RandomZLevels/research.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/space, +/turf/open/space/basic, /area/space) "ab" = ( /turf/closed/mineral, diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm index 5ec7e7720799..c2c05023693e 100644 --- a/_maps/RandomZLevels/undergroundoutpost45.dmm +++ b/_maps/RandomZLevels/undergroundoutpost45.dmm @@ -1,6 +1,6 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "aa" = ( -/turf/open/space, +/turf/open/space/basic, /area/space) "ab" = ( /turf/closed/indestructible/riveted, diff --git a/_maps/icebox.json b/_maps/icebox.json index 661205fcf820..740a5883174f 100644 --- a/_maps/icebox.json +++ b/_maps/icebox.json @@ -5,6 +5,7 @@ "map_file": "IceBoxStation.dmm", "space_ruin_levels": 0, "space_empty_levels": 0, + "wilderness_levels": 2, "planetary": 1, "give_players_hooks": 1, "shuttles": { @@ -13,6 +14,14 @@ "whiteship": "whiteship_box", "emergency": "emergency_box" }, + "wilderness": { + "directory": "map_files/IceWilderness", + "rocky_planes.dmm": 10, + "snow_planes.dmm": 1, + "ice_planes.dmm": 1, + "mountain.dmm": 1, + "forest.dmm": 3 + }, "traits": [ { "Mining": true, @@ -32,7 +41,7 @@ }, { "Mining": true, - "Linkage": null, + "Linkage": "Grid", "Gravity": true, "Ice Ruins": true, "Weather_Snowstorm": true, diff --git a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm index 4b2979d62294..d846f8b92a21 100644 --- a/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm +++ b/_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm @@ -763,6 +763,9 @@ /area/station/security/warden) "amk" = ( /obj/item/radio/intercom/directional/south, +/obj/structure/closet/crate/trashcart/laundry, +/obj/effect/spawner/random/clothing/costume, +/obj/effect/spawner/random/clothing/backpack, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "ams" = ( @@ -1675,32 +1678,6 @@ /obj/machinery/keycard_auth/wall_mounted/directional/north, /turf/open/floor/wood, /area/station/command/heads_quarters/cmo) -"aBE" = ( -/obj/item/food/grown/wheat, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/citrus/orange, -/obj/item/food/grown/grapes, -/obj/item/food/grown/cocoapod, -/obj/item/food/grown/apple, -/obj/item/food/grown/chili, -/obj/item/food/grown/cherries, -/obj/item/food/grown/soybeans, -/obj/item/food/grown/citrus/lime, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/structure/closet/crate/hydroponics, -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 - }, -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "aBF" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/machinery/firealarm/directional/south, @@ -2897,7 +2874,9 @@ /turf/open/floor/wood, /area/station/maintenance/starboard/central) "aVv" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -3520,27 +3499,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/main) -"beW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/reinforced, -/obj/item/cultivator, -/obj/item/reagent_containers/cup/bottle/nutrient/rh{ - pixel_x = 10; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/bottle/nutrient/ez{ - pixel_x = 10; - pixel_y = -4 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/item/reagent_containers/spray/pestspray{ - pixel_x = 10; - pixel_y = -14 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "bfc" = ( /obj/structure/railing{ dir = 8 @@ -4598,10 +4556,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"bvs" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "bvt" = ( /obj/machinery/telecomms/server/presets/security, /obj/effect/turf_decal/tile/red/fourcorners, @@ -6023,11 +5977,6 @@ "bPW" = ( /turf/closed/wall, /area/station/commons/fitness/recreation) -"bPZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/construction) "bQe" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -8444,6 +8393,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_recreation) +"cyY" = ( +/obj/machinery/hydroponics/soil, +/turf/open/misc/sandy_dirt, +/area/station/service/hydroponics/garden/abandoned) "czk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8556,8 +8509,8 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/service/hydroponics) "cAs" = ( -/obj/item/banner, /obj/structure/disposalpipe/segment, +/obj/item/banner/command/mundane, /turf/open/floor/plating, /area/station/maintenance/port) "cAv" = ( @@ -9271,6 +9224,30 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port) +"cJi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/cultivator, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = 10; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez{ + pixel_x = 10; + pixel_y = -4 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = 10; + pixel_y = -14 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "cJk" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/shrink_cw, /obj/effect/turf_decal/trimline/dark_blue/filled/mid_joiner, @@ -10558,14 +10535,6 @@ /obj/structure/sign/poster/contraband/grey_tide/directional/west, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"deS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "dfg" = ( /obj/machinery/light/small/directional/east, /obj/machinery/door/poddoor/preopen{ @@ -11218,17 +11187,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"doU" = ( -/obj/structure/table, -/obj/effect/spawner/random/bureaucracy/paper, -/obj/item/paper/fluff/ids_for_dummies{ - pixel_x = -6; - pixel_y = 14 - }, -/obj/item/pen, -/obj/structure/sign/poster/contraband/missing_gloves/directional/west, -/turf/open/floor/wood, -/area/station/commons/dorms) "dpo" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11456,10 +11414,6 @@ /obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/iron/dark/textured_large, /area/station/tcommsat/server) -"dsQ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "dsR" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, @@ -12475,6 +12429,7 @@ /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/machinery/camera/autoname/directional/north, +/obj/machinery/washing_machine, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "dJB" = ( @@ -12698,6 +12653,14 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating/airless, /area/station/maintenance/starboard/lesser) +"dMK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "dMM" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -12883,6 +12846,13 @@ }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/medical/coldroom) +"dOC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "dOG" = ( /obj/structure/cable, /turf/closed/wall/r_wall, @@ -13006,7 +12976,9 @@ /turf/open/floor/iron/smooth, /area/station/science/robotics) "dRo" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -14283,10 +14255,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"eio" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "eis" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/grime, @@ -14906,21 +14874,20 @@ }, /turf/open/openspace, /area/station/service/library) +"erQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "esb" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/security/medical) -"esh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/biogenerator, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "esu" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, @@ -15015,6 +14982,19 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/detectives_office/private_investigators_office) +"euA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/closet/crate/hydroponics, +/obj/effect/spawner/random/food_or_drink/plant_produce, +/obj/effect/spawner/random/food_or_drink/seed_flowers, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "euD" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -15963,6 +15943,7 @@ "eLk" = ( /obj/structure/table, /obj/machinery/firealarm/directional/west, +/obj/effect/spawner/random/clothing/gloves, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "eLl" = ( @@ -16068,6 +16049,10 @@ /obj/item/airlock_painter, /turf/open/floor/iron/smooth, /area/station/engineering/main) +"eNm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "eNx" = ( /obj/machinery/atmospherics/components/unary/thermomachine/heater{ dir = 4 @@ -17708,22 +17693,6 @@ /obj/effect/spawner/random/techstorage/tcomms_all, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"fmy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/reinforced, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/item/hatchet{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/item/crowbar, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 8 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "fmN" = ( /obj/structure/lattice/catwalk, /obj/structure/railing, @@ -17835,7 +17804,9 @@ /turf/open/floor/plating, /area/station/maintenance/department/science/central) "foP" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/plating, @@ -18462,6 +18433,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/medical/coldroom) +"fxX" = ( +/turf/closed/wall, +/area/station/service/hydroponics/garden/abandoned) "fxY" = ( /obj/machinery/vending/cigarette, /obj/structure/disposalpipe/segment{ @@ -18879,13 +18853,6 @@ }, /turf/open/floor/iron/smooth, /area/station/engineering/break_room) -"fEy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "fEA" = ( /obj/structure/reagent_dispensers/wall/peppertank/directional/east, /obj/machinery/airalarm/directional/north, @@ -19108,14 +19075,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/lesser) -"fHl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/paper/guides/jobs/hydroponics, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron, -/area/station/hallway/secondary/construction) "fHp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/showcase/machinery/oldpod{ @@ -19231,16 +19190,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) -"fIU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock{ - name = "Garden" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "fJc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ dir = 8 @@ -22229,6 +22178,16 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/station/command/heads_quarters/cmo) +"gBc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "gBf" = ( /obj/structure/lattice/catwalk, /obj/item/stack/rods, @@ -22455,6 +22414,14 @@ }, /turf/open/floor/carpet, /area/station/maintenance/starboard/lesser) +"gEJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "gEN" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -22938,6 +22905,19 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/space/openspace, /area/space/nearstation) +"gMZ" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -5; + pixel_y = 4 + }, +/obj/item/stamp/head/hop{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/hop) "gNf" = ( /obj/structure/light_construct/directional/east, /obj/effect/mapping_helpers/broken_floor, @@ -23081,6 +23061,19 @@ /obj/machinery/drone_dispenser, /turf/open/floor/iron/dark/smooth_large, /area/station/science/lab) +"gPh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/storage/bag/plants, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "gPu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26971,6 +26964,15 @@ }, /turf/open/floor/plating, /area/station/construction/storage_wing) +"hTF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/item/vending_refill/hydroseeds, +/obj/structure/frame/machine/secured, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "hTI" = ( /obj/machinery/light/directional/south, /obj/effect/landmark/firealarm_sanity, @@ -27749,6 +27751,14 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark/textured_large, /area/station/medical/virology) +"ihn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 2 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) "ihv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/siding/wood{ @@ -27827,7 +27837,9 @@ /turf/open/floor/eighties, /area/station/maintenance/hallway/abandoned_recreation) "iiT" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/machinery/space_heater, /obj/structure/disposalpipe/segment{ dir = 10 @@ -27851,7 +27863,10 @@ /area/station/medical/virology) "iji" = ( /obj/structure/table, -/obj/structure/bedsheetbin, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = -3; + pixel_y = 4 + }, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "ijl" = ( @@ -28558,6 +28573,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"itU" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/closed/wall, +/area/station/service/hydroponics/garden/abandoned) "itV" = ( /obj/item/stack/sheet/mineral/wood{ pixel_x = -5; @@ -28710,23 +28731,6 @@ /obj/structure/cable, /turf/open/floor/iron/textured_large, /area/station/medical/abandoned) -"iwY" = ( -/obj/structure/table/wood, -/obj/item/paper/fluff/ids_for_dummies{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/paper_bin{ - pixel_x = -5; - pixel_y = 4 - }, -/obj/item/stamp/head/hop{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/structure/cable, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/hop) "ixf" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -30672,12 +30676,11 @@ /area/station/hallway/primary/starboard) "iZD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"iZH" = ( -/turf/open/space, -/area/space) "iZI" = ( /obj/machinery/computer/bank_machine, /obj/machinery/light_switch/directional/west{ @@ -30808,14 +30811,6 @@ /obj/structure/sign/poster/official/help_others/directional/north, /turf/open/floor/iron/white/smooth_large, /area/station/ai_monitored/turret_protected/aisat_interior) -"jby" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "jbO" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -31576,6 +31571,24 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"jmG" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/button/door/directional/north{ + id = "hydropony_shutters"; + name = "hydroponics shutters control"; + pixel_x = 10; + pixel_y = 30; + req_access = list("hydroponics") + }, +/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/dark/smooth_large, +/area/station/service/hydroponics) "jmQ" = ( /obj/effect/spawner/random/trash/grime, /turf/open/floor/plating, @@ -31780,13 +31793,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"jqJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "jqO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32501,7 +32507,9 @@ /area/station/commons/dorms) "jyZ" = ( /obj/item/tank/internals/plasma/empty, -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 @@ -33623,6 +33631,11 @@ /obj/structure/window/reinforced/tinted/frosted/spawner/directional/west, /turf/open/floor/wood/large, /area/station/service/library) +"jPB" = ( +/obj/effect/turf_decal/tile/purple/opposingcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/maintenance/starboard/aft) "jPC" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -34320,6 +34333,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) +"kbi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "kbj" = ( /obj/structure/closet/emcloset, /obj/effect/decal/cleanable/dirt, @@ -35899,14 +35920,6 @@ /obj/machinery/igniter/incinerator_atmos, /turf/open/floor/engine/airless, /area/station/maintenance/disposal/incinerator) -"kwK" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/camera/autoname/directional/east{ - network = list("ss13","medbay"); - c_tag = "Medbay - Upper Morgue" - }, -/turf/open/floor/iron/dark/textured_large, -/area/station/medical/morgue) "kwQ" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 @@ -36414,6 +36427,10 @@ dir = 8 }, /area/station/tcommsat/server) +"kEn" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) "kEw" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -38792,7 +38809,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "luD" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ dir = 4 @@ -39633,14 +39652,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/lobby) -"lHP" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "lHT" = ( /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, @@ -41098,7 +41109,9 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "mcs" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -41176,7 +41189,9 @@ /area/station/cargo/warehouse) "mdn" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/banner/red, +/obj/item/banner/red{ + inspiration_available = 0 + }, /turf/open/floor/eighties, /area/station/maintenance/hallway/abandoned_recreation) "mdp" = ( @@ -49676,7 +49691,9 @@ /turf/open/floor/plating, /area/station/hallway/secondary/entry) "oEA" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "oEI" = ( @@ -49836,6 +49853,7 @@ "oHh" = ( /obj/machinery/light/directional/north, /obj/machinery/light_switch/directional/north, +/obj/structure/closet/wardrobe/white, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "oHu" = ( @@ -50951,6 +50969,13 @@ /obj/effect/spawner/random/maintenance, /turf/open/openspace, /area/station/maintenance/port/aft) +"oXS" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/service/hydroponics/garden/abandoned) "oXT" = ( /obj/effect/turf_decal/stripes/asteroid/corner{ dir = 8 @@ -52444,13 +52469,6 @@ }, /turf/open/openspace, /area/station/ai_monitored/turret_protected/ai_upload) -"pwt" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "pwy" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -54205,6 +54223,7 @@ pixel_x = -4; pixel_y = 9 }, +/obj/effect/spawner/random/entertainment/coin, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "pSY" = ( @@ -55803,6 +55822,17 @@ /obj/effect/spawner/random/structure/shipping_container, /turf/open/floor/iron, /area/station/construction/storage_wing) +"quW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/guides/jobs/hydroponics, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/hallway/secondary/construction) "qvd" = ( /obj/structure/railing{ dir = 9 @@ -56305,14 +56335,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) -"qCf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/corner, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "qCj" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -56853,13 +56875,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/office) -"qLj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "qLy" = ( /obj/structure/lattice/catwalk, /turf/open/openspace, @@ -56888,6 +56903,22 @@ }, /turf/open/openspace, /area/station/service/library) +"qMa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 4 + }, +/obj/item/hatchet{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/crowbar, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "qMi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -57797,6 +57828,13 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction) +"rad" = ( +/obj/structure/table, +/obj/effect/spawner/random/bureaucracy/paper, +/obj/item/pen, +/obj/structure/sign/poster/contraband/missing_gloves/directional/west, +/turf/open/floor/wood, +/area/station/commons/dorms) "rah" = ( /obj/structure/rack, /obj/item/reagent_containers/cup/bottle/iron{ @@ -57838,14 +57876,6 @@ }, /turf/open/floor/glass, /area/station/security/brig) -"raw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/structure/sink/kitchen/directional/east, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "raF" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 5 @@ -58221,12 +58251,6 @@ }, /turf/open/floor/carpet, /area/station/command/meeting_room/council) -"rgE" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "rhx" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -59315,6 +59339,7 @@ /obj/item/clothing/suit/hooded/wintercoat, /obj/item/clothing/shoes/winterboots, /obj/machinery/status_display/ai/directional/south, +/obj/effect/spawner/random/clothing/backpack, /turf/open/floor/iron, /area/station/commons/dorms) "rwh" = ( @@ -61121,7 +61146,9 @@ /turf/open/floor/iron, /area/station/science/xenobiology/hallway) "rYa" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -61204,6 +61231,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"sax" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "saE" = ( /obj/machinery/door/airlock/public/glass{ name = "Community Center" @@ -62132,11 +62164,6 @@ "soU" = ( /turf/closed/wall, /area/station/science/research) -"soW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/green, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "spi" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/bot, @@ -62150,7 +62177,9 @@ /turf/open/floor/iron/textured_large, /area/station/medical/abandoned) "spm" = ( -/obj/effect/decal/cleanable/glitter/pink, +/obj/effect/decal/cleanable/glitter{ + color = "ff8080" + }, /obj/structure/cable, /obj/structure/disposalpipe/segment{ dir = 4 @@ -63992,16 +64021,6 @@ /obj/structure/window/spawner/directional/west, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"sSS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "sSW" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -64046,7 +64065,9 @@ /area/station/security/courtroom) "sTK" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/banner/blue, +/obj/item/banner/blue{ + inspiration_available = 0 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/eighties, @@ -64146,6 +64167,20 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"sUR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock{ + name = "Garden" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "sUV" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, @@ -64603,6 +64638,17 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"tcv" = ( +/obj/structure/table/reinforced, +/obj/item/plant_analyzer, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "tcw" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 @@ -64629,6 +64675,7 @@ /obj/structure/closet/secure_closet/personal, /obj/item/clothing/suit/hooded/wintercoat, /obj/item/clothing/shoes/winterboots, +/obj/effect/spawner/random/clothing/backpack, /turf/open/floor/iron, /area/station/commons/dorms) "tda" = ( @@ -64991,19 +65038,6 @@ "tjn" = ( /turf/open/openspace, /area/station/hallway/secondary/entry) -"tjp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table/reinforced, -/obj/item/storage/bag/plants/portaseeder, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "tjA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66255,25 +66289,6 @@ "tDy" = ( /turf/open/floor/plating, /area/station/maintenance/port/greater) -"tDD" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/structure/sink/directional/south, -/obj/structure/mirror/directional/north, -/obj/machinery/button/door/directional/north{ - id = "hydropony_shutters"; - name = "hydroponics shutters control"; - pixel_x = 10; - pixel_y = 30; - req_access = list("hydroponics") - }, -/obj/effect/turf_decal/trimline/blue/filled/mid_joiner{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/dark/smooth_large, -/area/station/service/hydroponics) "tDJ" = ( /obj/structure/window/reinforced/plasma/spawner/directional/north, /obj/machinery/power/energy_accumulator/tesla_coil/anchored, @@ -66366,14 +66381,6 @@ /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/station/hallway/primary/starboard) -"tFh" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "tFl" = ( /obj/effect/turf_decal/trimline/dark_blue/end{ dir = 1 @@ -66518,16 +66525,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) -"tHj" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/decal/cleanable/dirt, -/obj/item/vending_refill/hydroseeds, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "tHn" = ( /obj/machinery/computer/security, /turf/open/floor/iron/white/textured_half, @@ -67612,8 +67609,7 @@ /turf/open/floor/plating/airless, /area/station/maintenance/space_hut) "tYi" = ( -/obj/structure/table, -/obj/effect/spawner/random/clothing/costume, +/obj/structure/closet/wardrobe/grey, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "tYl" = ( @@ -69672,6 +69668,19 @@ "uAE" = ( /turf/open/floor/iron/dark, /area/station/security/range) +"uAF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/biogenerator, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "uAO" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -70502,6 +70511,15 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/ordnance/storage) +"uLC" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/camera/autoname/directional/east{ + network = list("ss13","medbay"); + c_tag = "Medbay - Upper Morgue" + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/dark/textured_large, +/area/station/medical/morgue) "uLL" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -71168,6 +71186,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/grimy, /area/station/security/detectives_office/private_investigators_office) +"uXW" = ( +/obj/structure/table, +/obj/structure/bedsheetbin/empty{ + pixel_y = 6 + }, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) "uXZ" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance/three, @@ -71777,6 +71802,20 @@ /obj/structure/closet/bombcloset/security, /turf/open/floor/iron/dark, /area/station/security/office) +"vhF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "vhJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/red/opposingcorners{ @@ -72327,6 +72366,7 @@ /area/station/maintenance/solars/starboard/fore) "vpp" = ( /obj/item/radio/intercom/directional/north, +/obj/effect/spawner/random/clothing/wardrobe_closet_colored, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "vpt" = ( @@ -75682,14 +75722,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) -"woU" = ( -/obj/structure/table/reinforced, -/obj/item/plant_analyzer, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/starboard/aft) "woV" = ( /obj/structure/broken_flooring/pile/directional/south, /turf/open/floor/plating, @@ -75806,6 +75838,9 @@ /area/station/service/library) "wqE" = ( /obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/closet/crate/trashcart/laundry, +/obj/effect/spawner/random/clothing/backpack, +/obj/effect/spawner/random/clothing/backpack, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "wqI" = ( @@ -78522,8 +78557,10 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/service/hydroponics) "xhT" = ( -/obj/structure/closet/crate/trashcart/laundry, -/obj/effect/spawner/random/clothing/costume, +/obj/structure/table, +/obj/structure/bedsheetbin{ + pixel_y = 6 + }, /turf/open/floor/iron/cafeteria, /area/station/commons/locker) "xhX" = ( @@ -79149,6 +79186,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/cytology) +"xss" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "xsv" = ( /obj/machinery/light/cold/directional/south, /turf/open/floor/engine, @@ -81666,6 +81711,15 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"yfu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 8 + }, +/obj/structure/sink/kitchen/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "yfv" = ( /obj/structure/table/wood, /obj/item/binoculars{ @@ -81859,6 +81913,16 @@ /obj/structure/chair, /turf/open/floor/iron/dark/smooth_large, /area/station/security/interrogation) +"yiw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/green/filled/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden/abandoned) "yiy" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance/two, @@ -112993,7 +113057,7 @@ oTK tQI eLU eLU -iZH +dcE gmE bYe ltW @@ -113236,7 +113300,7 @@ dDX vuO ugN tGb -iwY +gMZ loc ltm kRk @@ -113249,8 +113313,8 @@ iis iis iis aWV -bvs -bvs +heR +heR gmE rgb qeX @@ -113506,7 +113570,7 @@ dNc rPQ qCe aWV -iZH +dcE gmE gmE bTU @@ -113763,7 +113827,7 @@ mYf qSv sSY lll -iZH +dcE gmE rVE eRs @@ -114020,7 +114084,7 @@ wTU vCW jkn lll -bvs +heR gmE mcX eRs @@ -114277,7 +114341,7 @@ duE ibO ibO lll -iZH +dcE gmE mbY eRs @@ -114534,7 +114598,7 @@ sAm wtz iXw lll -bvs +heR gmE czp aZd @@ -114791,7 +114855,7 @@ cSO jMo lmA gDc -iZH +dcE gmE irL lbT @@ -115048,7 +115112,7 @@ yes xvw tRt lll -bvs +heR gmE xef vFZ @@ -115305,7 +115369,7 @@ aNb gzt jFp lll -iZH +dcE gmE eqa vFZ @@ -115562,7 +115626,7 @@ nFA oSb gBG aWV -iZH +dcE gmE gmE ruc @@ -115819,8 +115883,8 @@ nIo aWV aWV aWV -bvs -bvs +heR +heR gmE fQQ qeX @@ -116076,8 +116140,8 @@ aNb opj wXU aWV -iZH -iZH +dcE +dcE gmE lsW njT @@ -116822,7 +116886,7 @@ dTL dJx uzN oqd -sjO +uXW dCm nZb ayn @@ -119643,7 +119707,7 @@ pRO mcY tFy qNn -doU +rad clF pRO ntw @@ -122049,7 +122113,7 @@ oJz eyb frP wNo -frP +unM mqT hFi hFi @@ -122305,7 +122369,7 @@ owf kRI oYp jvo -bPZ +qVm cWk cWk cWk @@ -122562,8 +122626,8 @@ cMb lue vnp hFi -fHl -exj +quW +ihn vvc exj qZZ @@ -122815,12 +122879,12 @@ aLd aLd cWU cWU -wKb -wKb -eio -eio -fIU -wKb +fxX +fxX +kEn +kEn +sUR +fxX uVg uVg dEB @@ -123072,12 +123136,12 @@ mTH cWU cWU msr -wKb -tHj -aBE -raw -sSS -jby +fxX +euA +xss +yfu +vhF +cyY uVg dEk xLQ @@ -123329,12 +123393,12 @@ jmh qdA wOx vcm -eio -lHP -soW -jqJ -fEy -rgE +kEn +hTF +sax +gEJ +gBc +cyY uVg viT bwI @@ -123586,12 +123650,12 @@ jmh dlt wKl rNT -eio -lHP -soW -qLj -qCf -tFh +kEn +dMK +sax +erQ +yiw +cyY uVg wZW xNr @@ -123843,12 +123907,12 @@ jmh qdA wOx tVR -eio -deS -dsQ -dsQ -esh -wKb +kEn +kbi +eNm +dOC +uAF +fxX uVg uVg pWZ @@ -124100,12 +124164,12 @@ jmh rOn iXD kiu -wKb -woU -beW -fmy -tjp -wKb +itU +tcv +cJi +qMa +gPh +fxX jjG uVg ucl @@ -124358,10 +124422,10 @@ qdA xZP aKk wKb -eio -eio -eio -pwt +kEn +kEn +kEn +oXS wKb wKb uVg @@ -127698,7 +127762,7 @@ jmh wKb dGu gdG -gdG +jPB jcQ jcQ jcQ @@ -173888,7 +173952,7 @@ tnb hRX hRX hRX -tDD +jmG xyF pME rjE @@ -176743,7 +176807,7 @@ iPl dfn fbC kza -kwK +uLC qPB eHu yly diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 528ebe0a3c19..a1c18d26cbd9 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2,19 +2,6 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aab" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space) -"aac" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space, -/area/space/nearstation) -"aad" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "aaf" = ( /obj/structure/sign/directions/engineering{ desc = "A sign that shows there are doors here. There are doors everywhere!"; @@ -89,10 +76,6 @@ "abi" = ( /turf/closed/wall, /area/station/construction/mining/aux_base) -"abj" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) "abm" = ( /obj/effect/landmark/start/hangover, /obj/machinery/status_display/ai/directional/north, @@ -1231,7 +1214,7 @@ "aoP" = ( /obj/structure/cable, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/starboard/fore) "aoS" = ( /obj/structure/cable, @@ -2002,10 +1985,6 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"awk" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/station/solars/port/fore) "awl" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/loading_area{ @@ -2560,11 +2539,6 @@ /obj/item/clothing/under/rank/civilian/lawyer/black/skirt, /turf/open/floor/wood, /area/station/commons/dorms) -"aFo" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space, -/area/space/nearstation) "aFp" = ( /obj/structure/sign/warning/secure_area/directional/south, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -2901,7 +2875,7 @@ name = "lavaland"; shuttle_id = "pod_3_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "aJD" = ( /turf/closed/wall, @@ -3280,11 +3254,6 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"aOl" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "aOr" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/yellow{ @@ -4335,11 +4304,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"bbD" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space, -/area/station/solars/port/aft) "bbH" = ( /obj/machinery/duct, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -4655,24 +4619,6 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"bgo" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/half{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "bgq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6216,11 +6162,6 @@ }, /turf/open/floor/iron/grimy, /area/station/command/heads_quarters/hos) -"bAU" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "bAV" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6248,10 +6189,6 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"bBc" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/station/solars/port/aft) "bBd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -7438,7 +7375,7 @@ /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bNB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7755,19 +7692,19 @@ /obj/structure/transit_tube/curved/flipped{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bRR" = ( /obj/structure/lattice, /obj/structure/transit_tube/crossing/horizontal, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bRS" = ( /obj/structure/lattice, /obj/structure/transit_tube/curved{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bRV" = ( /obj/structure/disposalpipe/segment{ @@ -7970,7 +7907,7 @@ /obj/structure/transit_tube/diagonal{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bTN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8321,7 +8258,7 @@ "bYm" = ( /obj/structure/lattice, /obj/structure/transit_tube/diagonal, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bYo" = ( /obj/machinery/door/poddoor/shutters/preopen{ @@ -8497,14 +8434,14 @@ /obj/structure/transit_tube/curved{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "caq" = ( /obj/structure/lattice, /obj/structure/transit_tube/curved/flipped{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "cau" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/west, @@ -10018,6 +9955,13 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) +"csV" = ( +/obj/effect/turf_decal/siding/green{ + dir = 4 + }, +/obj/structure/chair/sofa/bench/left, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "csY" = ( /obj/effect/turf_decal/box/white/corners{ dir = 1 @@ -12090,10 +12034,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) -"cVr" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, -/area/space/nearstation) "cVx" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ @@ -12149,7 +12089,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "cWX" = ( /obj/structure/chair/stool/directional/east, @@ -14065,6 +14005,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"dvI" = ( +/obj/effect/landmark/start/hangover, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/green/corner{ + dir = 2 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "dvL" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -14342,19 +14291,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/security/brig) -"dzk" = ( -/obj/effect/turf_decal/trimline/green/end, -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/half{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "dzl" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -16130,11 +16066,6 @@ /obj/item/book/codex_gigas, /turf/open/floor/iron/dark, /area/station/service/library/printer) -"dXD" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, -/area/space/nearstation) "dXF" = ( /obj/structure/table/reinforced, /obj/machinery/light_switch/directional/south{ @@ -17441,9 +17372,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) -"eqU" = ( -/turf/open/space, -/area/space) "erm" = ( /obj/structure/reagent_dispensers/plumbed{ dir = 4; @@ -17716,13 +17644,6 @@ }, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) -"etw" = ( -/obj/structure/lattice, -/obj/structure/sign/nanotrasen{ - pixel_y = 32 - }, -/turf/open/space, -/area/space/nearstation) "ety" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -18210,6 +18131,12 @@ }, /turf/open/floor/iron/dark, /area/station/science/genetics) +"eAs" = ( +/obj/effect/turf_decal/siding/green, +/turf/open/floor/iron/half{ + dir = 8 + }, +/area/station/service/hydroponics/garden) "eAu" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet, @@ -19065,11 +18992,6 @@ }, /turf/open/floor/iron/white, /area/station/command/heads_quarters/rd) -"eKN" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "eKQ" = ( /obj/structure/table/reinforced, /obj/item/weldingtool, @@ -19337,11 +19259,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/large, /area/station/security/range) -"eOB" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "eOD" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -20041,12 +19958,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"eWj" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/sign/poster/official/report_crimes/directional/west, -/turf/open/floor/plating, -/area/station/security/checkpoint/medical/medsci) "eWr" = ( /obj/machinery/door/poddoor/preopen{ id = "transitlock"; @@ -20125,7 +20036,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "eXN" = ( /obj/machinery/vending/wardrobe/engi_wardrobe, @@ -20907,6 +20818,14 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/port) +"fiE" = ( +/obj/machinery/light_switch/directional/north{ + pixel_x = -8 + }, +/obj/machinery/light/small/directional/north, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "fiI" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -20939,7 +20858,7 @@ /area/station/maintenance/department/crew_quarters/bar) "fjf" = ( /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/starboard/fore) "fjk" = ( /obj/structure/chair{ @@ -21083,7 +21002,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "flw" = ( /obj/structure/disposalpipe/segment, @@ -21645,7 +21564,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "fsv" = ( /obj/effect/turf_decal/plaque{ @@ -22299,6 +22218,18 @@ /obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) +"fAE" = ( +/obj/effect/turf_decal/siding/green{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/spawner/random/food_or_drink/plant_produce, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "fAH" = ( /obj/structure/disposalpipe/segment, /obj/machinery/firealarm/directional/east, @@ -22995,7 +22926,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "fJF" = ( /obj/machinery/firealarm/directional/east, @@ -23087,11 +23018,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"fKU" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/station/solars/port/fore) "fKY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/wood, @@ -24104,9 +24030,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) -"fXz" = ( -/turf/open/space, -/area/space/nearstation) "fXC" = ( /obj/structure/cable, /obj/machinery/door/poddoor/preopen{ @@ -24763,7 +24686,7 @@ "geN" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/starboard/aft) "geP" = ( /obj/effect/decal/cleanable/dirt, @@ -25580,12 +25503,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"gnS" = ( -/obj/effect/landmark/start/hangover, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "gnW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/start/hangover, @@ -26128,6 +26045,13 @@ }, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"gtJ" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "gtN" = ( /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27581,6 +27505,11 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/wood, /area/station/command/meeting_room/council) +"gKN" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "gKW" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -27613,7 +27542,7 @@ dir = 4 }, /obj/machinery/newscaster/directional/south, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, @@ -27820,6 +27749,17 @@ "gOU" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/captain) +"gOY" = ( +/obj/effect/turf_decal/trimline/neutral/mid_joiner{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "gPc" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -28183,13 +28123,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"gSR" = ( -/obj/structure/sink/directional/south, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "gTb" = ( /obj/structure/cable, /obj/machinery/holopad/secure, @@ -29179,6 +29112,12 @@ dir = 1 }, /area/station/engineering/gravity_generator) +"hgC" = ( +/obj/structure/table/wood, +/obj/item/papercutter, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) "hgH" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -29748,14 +29687,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/qm) -"hoQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/siding/green/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "hoR" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, @@ -29992,6 +29923,12 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/medical/medsci) +"hsu" = ( +/obj/effect/turf_decal/siding/green{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "hsB" = ( /obj/machinery/atmospherics/components/binary/temperature_gate{ dir = 4; @@ -30629,7 +30566,7 @@ name = "lavaland"; shuttle_id = "pod_4_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "hBF" = ( /obj/structure/kitchenspike, @@ -30787,11 +30724,6 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) -"hDU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space, -/area/space/nearstation) "hDX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32079,17 +32011,8 @@ "hVE" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) -"hVI" = ( -/obj/structure/table, -/obj/item/plant_analyzer, -/obj/item/hatchet, -/obj/item/cultivator, -/obj/item/shovel/spade, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "hVV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32819,7 +32742,7 @@ "idU" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "iee" = ( /obj/structure/disposalpipe/segment{ @@ -32980,13 +32903,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"igE" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/structure/sign/poster/official/report_crimes/directional/west, -/turf/open/floor/iron/white, -/area/station/science/research) "igI" = ( /obj/machinery/newscaster/directional/north, /obj/structure/cable, @@ -36451,16 +36367,6 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron, /area/station/maintenance/port) -"iZn" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 4 - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) "iZp" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -37928,7 +37834,7 @@ /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/lattice, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "jpA" = ( /turf/open/floor/iron/grimy, @@ -39299,7 +39205,7 @@ dir = 10 }, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "jGI" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, @@ -40265,10 +40171,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/commons/storage/primary) -"jSo" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "jSw" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -41730,15 +41632,6 @@ }, /turf/open/floor/plating, /area/station/science/robotics/lab) -"kjM" = ( -/obj/effect/turf_decal/siding/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "kjR" = ( /obj/effect/decal/cleanable/blood/oil, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -42425,6 +42318,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/cargo/storage) +"kuz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron, +/area/station/service/hydroponics) "kuI" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -42512,7 +42412,7 @@ "kvt" = ( /obj/structure/lattice, /obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "kvu" = ( /obj/structure/disposalpipe/segment{ @@ -42911,6 +42811,11 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/smooth_large, /area/station/security/detectives_office) +"kBi" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "kBz" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -43702,6 +43607,20 @@ }, /turf/open/floor/iron, /area/station/security/processing) +"kME" = ( +/obj/effect/turf_decal/siding/green/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera/directional/east{ + c_tag = "Garden" + }, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/effect/turf_decal/siding/green/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "kMI" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, @@ -43783,13 +43702,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) -"kNB" = ( -/obj/structure/table/wood, -/obj/item/papercutter, -/obj/item/paper/fluff/ids_for_dummies, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hop) "kNC" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43975,7 +43887,7 @@ "kQG" = ( /obj/item/stack/cable_coil, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/port/aft) "kQK" = ( /obj/structure/cable, @@ -44736,7 +44648,7 @@ /obj/structure/transit_tube/curved/flipped{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "lbl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, @@ -44790,6 +44702,10 @@ /obj/machinery/atmospherics/components/unary/airlock_pump, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"lbN" = ( +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "lbR" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -45508,7 +45424,7 @@ /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) "lky" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/airalarm/directional/north, /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 @@ -47685,6 +47601,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/atmos/mix) +"lKk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/green/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "lKl" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -49618,21 +49543,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) -"mmf" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/bot_white, -/obj/effect/turf_decal/siding/dark_blue{ - dir = 10 - }, -/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "mmq" = ( /obj/structure/bookcase, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -50807,10 +50717,6 @@ "mAt" = ( /turf/closed/wall/r_wall, /area/station/service/abandoned_gambling_den) -"mAv" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/station/solars/starboard/aft) "mAA" = ( /obj/structure/sink/kitchen/directional/west, /turf/open/floor/iron/cafeteria, @@ -51154,6 +51060,13 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron, /area/station/maintenance/department/security) +"mEs" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "mEv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52771,6 +52684,14 @@ /obj/structure/grille, /turf/open/floor/plating, /area/station/maintenance/department/crew_quarters/bar) +"nap" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron, +/area/station/service/hydroponics) "nav" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -54862,7 +54783,7 @@ "nCB" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "nCI" = ( /obj/effect/spawner/structure/window/reinforced, @@ -55121,14 +55042,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/department/science) -"nGC" = ( -/obj/machinery/vending/hydroseeds, -/obj/machinery/light_switch/directional/north{ - pixel_x = -8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "nGN" = ( /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/neutral, @@ -55612,15 +55525,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/ordnance/storage) -"nMw" = ( -/obj/structure/sink/directional/north, -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue, -/turf/open/floor/iron, -/area/station/service/hydroponics) "nMD" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark/side{ @@ -55745,7 +55649,7 @@ "nOy" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "nOB" = ( /obj/structure/disposalpipe/segment{ @@ -56329,21 +56233,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nXn" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/end{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/half{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "nXo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -56820,7 +56709,7 @@ name = "lavaland"; shuttle_id = "pod_2_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "odk" = ( /obj/structure/window/reinforced/spawner/directional/south, @@ -57109,7 +56998,7 @@ }, /obj/machinery/status_display/ai/directional/south, /obj/machinery/light/directional/south, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, @@ -58170,6 +58059,13 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"ovE" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "ovH" = ( /obj/structure/rack, /obj/item/crowbar, @@ -58946,7 +58842,7 @@ /obj/docking_port/stationary/syndicate/northeast{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space) "oFA" = ( /obj/effect/turf_decal/tile/neutral{ @@ -62367,10 +62263,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/aft) -"pzp" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, -/area/space/nearstation) "pzr" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62699,24 +62591,6 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/space/basic, /area/space/nearstation) -"pCV" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/half{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "pCY" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -63149,7 +63023,7 @@ "pHa" = ( /obj/structure/lattice, /obj/structure/sign/warning/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "pHd" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -63757,26 +63631,10 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"pOD" = ( -/obj/structure/cable, -/obj/machinery/seed_extractor, -/obj/item/seeds/tower, -/obj/item/seeds/watermelon, -/obj/item/seeds/wheat, -/obj/item/seeds/sugarcane, -/obj/item/seeds/orange, -/obj/item/seeds/grape, -/obj/item/seeds/cocoapod, -/obj/item/seeds/banana, -/obj/item/seeds/apple, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "pOH" = ( /obj/structure/lattice/catwalk, /obj/effect/landmark/generic_maintenance_landmark, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/starboard/fore) "pOP" = ( /obj/effect/decal/cleanable/dirt, @@ -63864,6 +63722,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"pPk" = ( +/obj/item/crowbar, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/plant_analyzer, +/obj/structure/table/wood, +/turf/open/floor/iron/half{ + dir = 8 + }, +/area/station/service/hydroponics/garden) "pPl" = ( /turf/open/floor/wood/tile, /area/station/service/library/artgallery) @@ -63960,7 +63831,7 @@ "pQx" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "pQN" = ( /obj/machinery/duct, @@ -64129,6 +64000,14 @@ /obj/effect/mapping_helpers/airlock/access/all/security/detective, /turf/open/floor/iron, /area/station/maintenance/starboard/lesser) +"pSx" = ( +/obj/structure/cable, +/obj/machinery/seed_extractor, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/light/small/directional/west, +/obj/effect/spawner/random/food_or_drink/seed_flowers, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "pSy" = ( /obj/structure/chair{ dir = 1; @@ -64263,7 +64142,7 @@ /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/lattice, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "pTT" = ( /obj/structure/sign/directions/engineering{ @@ -64523,6 +64402,22 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"pWk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/item/hatchet{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/shovel/spade{ + pixel_y = 4 + }, +/obj/item/cultivator{ + pixel_x = -8; + pixel_y = 2 + }, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "pWn" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 4 @@ -64731,7 +64626,7 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit) "pYr" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/item/toy/figure/psychologist{ pixel_x = -1; pixel_y = 15 @@ -64761,10 +64656,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/disposal) -"pYJ" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, -/area/space/nearstation) "pYL" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/hidden{ @@ -66103,19 +65994,8 @@ "qpQ" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) -"qpU" = ( -/obj/effect/turf_decal/trimline/neutral/mid_joiner{ - dir = 4 - }, -/obj/machinery/smartfridge/organ, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "qqe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68033,23 +67913,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) -"qNy" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/shovel/spade, -/obj/item/hatchet, -/obj/item/cultivator, -/obj/item/reagent_containers/cup/bottle/nutrient/rh{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/item/reagent_containers/cup/bottle/nutrient/ez, -/obj/machinery/requests_console/directional/east{ - department = "Garden"; - name = "Garden Requests Console" - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "qNK" = ( /obj/machinery/camera/directional/west{ c_tag = "Dormitories - Recreation Center"; @@ -68131,7 +67994,7 @@ "qPm" = ( /obj/structure/lattice/catwalk, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "qPp" = ( /obj/effect/decal/cleanable/dirt, @@ -68275,10 +68138,6 @@ }, /turf/open/floor/iron, /area/station/security/processing) -"qRw" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/service/hydroponics/garden) "qRx" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, @@ -68734,7 +68593,7 @@ "qYG" = ( /obj/structure/lattice/catwalk, /obj/effect/landmark/generic_maintenance_landmark, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/port/aft) "qYL" = ( /turf/closed/wall, @@ -70652,7 +70511,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ryA" = ( /obj/structure/chair{ @@ -72531,7 +72390,7 @@ dir = 4 }, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "rUM" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -72723,11 +72582,6 @@ /obj/structure/chair, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) -"rWQ" = ( -/obj/structure/lattice, -/obj/effect/spawner/random/structure/grille, -/turf/open/space, -/area/space/nearstation) "rWZ" = ( /obj/machinery/status_display/evac/directional/south, /obj/machinery/duct, @@ -73261,6 +73115,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"sdI" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/right, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "sdJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line{ @@ -73984,10 +73845,6 @@ /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/engine/n2, /area/station/engineering/atmos) -"smV" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, -/area/space/nearstation) "snc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -75387,13 +75244,6 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/grimy, /area/station/service/chapel) -"sDL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "sDO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -77801,6 +77651,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"tjz" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/siding/green, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "tjI" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -79055,18 +78913,6 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) -"tAA" = ( -/obj/structure/sink/directional/west, -/obj/effect/turf_decal/siding/green/corner{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/directional/east{ - c_tag = "Garden" - }, -/obj/structure/sign/poster/contraband/random/directional/east, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "tAL" = ( /obj/structure/sign/nanotrasen{ pixel_y = 32 @@ -80886,14 +80732,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"tWU" = ( -/obj/effect/turf_decal/siding/green{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/obj/structure/water_source/puddle, -/turf/open/misc/sandy_dirt, -/area/station/service/hydroponics/garden) "tXe" = ( /obj/effect/turf_decal/loading_area/red{ dir = 4 @@ -83041,6 +82879,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"uwK" = ( +/obj/effect/turf_decal/trimline/green/mid_joiner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/green/mid_joiner{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/storage/bag/plants, +/turf/open/floor/iron/half{ + dir = 8 + }, +/area/station/service/hydroponics/garden) "uwL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/delivery, @@ -84129,11 +83980,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/security/checkpoint/medical/medsci) -"uJr" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "uJH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall/r_wall, @@ -84487,6 +84333,20 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"uNt" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/obj/effect/turf_decal/bot_white, +/obj/effect/turf_decal/siding/dark_blue{ + dir = 10 + }, +/obj/effect/turf_decal/tile/dark_blue/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "uNy" = ( /obj/machinery/computer/accounting{ dir = 4 @@ -84585,7 +84445,7 @@ /obj/structure/sign/nanotrasen{ pixel_y = -32 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "uOE" = ( /obj/structure/table/wood, @@ -86519,7 +86379,7 @@ "vpl" = ( /obj/structure/lattice/catwalk, /obj/structure/sign/warning/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "vpC" = ( /obj/item/storage/medkit/regular, @@ -86918,6 +86778,12 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/command/bridge) +"vuC" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/newscaster/directional/south, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "vuE" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -87170,12 +87036,6 @@ "vxs" = ( /turf/closed/wall/r_wall, /area/station/security/prison/visit) -"vxu" = ( -/obj/effect/turf_decal/siding/green{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "vxL" = ( /obj/structure/barricade/wooden, /obj/effect/spawner/structure/window/reinforced, @@ -87360,11 +87220,6 @@ }, /turf/open/floor/iron, /area/station/engineering/supermatter/room) -"vzw" = ( -/obj/structure/lattice, -/obj/structure/sign/warning/secure_area/directional/north, -/turf/open/space, -/area/space/nearstation) "vzy" = ( /obj/effect/spawner/random/vending/colavend, /obj/machinery/light/directional/north, @@ -88361,19 +88216,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"vME" = ( -/obj/effect/turf_decal/trimline/green/end, -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 8 - }, -/turf/open/floor/iron/half{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "vMI" = ( /obj/structure/table, /obj/machinery/status_display/ai/directional/west, @@ -89058,9 +88900,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"vWu" = ( -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "vWD" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/mech_bay_recharge_port, @@ -89480,7 +89319,7 @@ "wct" = ( /obj/item/stack/cable_coil, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/starboard/aft) "wcG" = ( /obj/structure/table/reinforced, @@ -89734,7 +89573,7 @@ "wfK" = ( /obj/item/radio/intercom/directional/east, /obj/machinery/newscaster/directional/south, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, /area/station/cargo/office) @@ -92889,10 +92728,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"wTJ" = ( -/obj/machinery/vending/hydronutrients, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "wTK" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/bot, @@ -93406,7 +93241,7 @@ "xcd" = ( /obj/item/stack/cable_coil, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/station/solars/starboard/fore) "xce" = ( /obj/effect/spawner/structure/window/reinforced, @@ -94301,22 +94136,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, /area/station/medical/medbay/lobby) -"xns" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/trimline/green/end{ - dir = 1 - }, -/obj/item/reagent_containers/cup/watering_can, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/mid_joiner{ - dir = 4 - }, -/turf/open/floor/iron/half{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "xnu" = ( /obj/item/kirbyplants/random, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -94686,7 +94505,7 @@ "xsG" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "xsH" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ @@ -97231,7 +97050,7 @@ "xYl" = ( /obj/structure/lattice, /obj/item/toy/figure/ninja, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "xYs" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -97338,6 +97157,14 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/commons/toilet/locker) +"xZm" = ( +/obj/machinery/requests_console/directional/east{ + department = "Garden"; + name = "Garden Requests Console" + }, +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "xZC" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -97447,6 +97274,13 @@ }, /turf/open/floor/iron/dark, /area/station/command/corporate_showroom) +"ybo" = ( +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "ybp" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/circuit, @@ -97511,6 +97345,12 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) +"yck" = ( +/obj/effect/turf_decal/siding/green/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "ycx" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/table/reinforced, @@ -97706,7 +97546,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "yfI" = ( /obj/effect/spawner/structure/window/reinforced, @@ -98094,15 +97934,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/carpet/black, /area/station/maintenance/port) -"ykb" = ( -/obj/structure/table, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/hatchet, -/obj/item/cultivator, -/obj/item/shovel/spade, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "ykf" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -98170,7 +98001,7 @@ "yko" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "yks" = ( /obj/effect/turf_decal/bot_white, @@ -101232,7 +101063,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -103049,7 +102880,7 @@ qYo efQ efQ efQ -aad +qYo efQ efQ aaa @@ -103306,7 +103137,7 @@ gLJ nxs gLJ nxs -cVr +gLJ aaa efQ aaa @@ -103552,7 +103383,7 @@ aaa aaa aaa qYo -pYJ +clr fMb chU hRq @@ -103809,16 +103640,16 @@ efQ efQ efQ efQ -uJr +xwo ePZ qpQ -smV +oxt ryt urA oNB hfl flt -smV +oxt yko ePZ gvf @@ -104052,21 +103883,21 @@ aaa aaa aaa aaa -aad +qYo aaa -bAU -cVr -cVr -bAU -cVr -cVr -bAU -cVr -cVr -bAU -cVr -bAU -dXD +nxs +gLJ +gLJ +nxs +gLJ +gLJ +nxs +gLJ +gLJ +nxs +gLJ +nxs +vgS ePZ pQx bPC @@ -104325,7 +104156,7 @@ chU chU chU aaQ -pzp +mxs bPC bRy eQF @@ -104333,7 +104164,7 @@ krT uTG tte bPC -pYJ +clr ePZ gvf efQ @@ -104571,17 +104402,17 @@ clr gGJ flt nOy -smV -smV -smV +oxt +oxt +oxt nOy -smV -smV +oxt +oxt nOy -smV -smV +oxt +oxt nOy -smV +oxt aaa bPC bRz @@ -104590,16 +104421,16 @@ cOJ xRo caa bPC -pYJ +clr ePZ nCB -cVr -bAU -cVr -cVr -bAU -cVr -bAU +gLJ +nxs +gLJ +gLJ +nxs +gLJ +nxs aaa efQ aaa @@ -104826,10 +104657,10 @@ aaa efQ clr gGJ -eKN -aad -aad -aad +gvf +qYo +qYo +qYo btH btH btH @@ -105083,9 +104914,9 @@ aaa qYo xwo gGJ -pzp -aad -aad +mxs +qYo +qYo btH btH btH @@ -105106,12 +104937,12 @@ cac bPC aaa nOy -smV -smV +oxt +oxt nOy -smV -smV -aOl +oxt +oxt +xHF jpw gGJ gvf @@ -105340,7 +105171,7 @@ aaa efQ clr gGJ -pzp +mxs aaa btH btH @@ -105367,9 +105198,9 @@ chi chi cdt cdt -aad -aad -uJr +qYo +qYo +xwo gGJ mxs qYo @@ -105598,7 +105429,7 @@ efQ xwo gGJ pQx -aad +qYo btH btH cQh @@ -105625,8 +105456,8 @@ eCk fKM cdt cdt -aad -pYJ +qYo +clr gGJ gvf efQ @@ -105854,7 +105685,7 @@ aaa gLJ vgS gGJ -pzp +mxs aaa btH btH @@ -105883,10 +105714,10 @@ hmU bAK cdt cdt -pYJ +clr gGJ nCB -bAU +nxs aaa efQ aaa @@ -106368,7 +106199,7 @@ xwo kXC hwa hfl -pzp +mxs btH btH bwo @@ -106397,7 +106228,7 @@ hmU cfu ptq cdt -pYJ +clr kXC xRE hfl @@ -106672,7 +106503,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -106882,7 +106713,7 @@ xwo kXC hwa hfl -pzp +mxs btH btH cQw @@ -106911,7 +106742,7 @@ hmU cfu asO cdt -pYJ +clr kXC rAn hfl @@ -107393,10 +107224,10 @@ aaa aaa efQ aaa -smV +oxt yko gGJ -pzp +mxs aaa btH btH @@ -107425,10 +107256,10 @@ hmU enc cdt cdt -pYJ +clr gGJ qpQ -aOl +xHF aaa efQ aaa @@ -107651,10 +107482,10 @@ aaa efQ efQ efQ -uJr +xwo gGJ pQx -aad +qYo btH btH cQh @@ -107681,10 +107512,10 @@ eCk kex cdt cdt -aad -pYJ +qYo +clr gGJ -eKN +gvf efQ efQ efQ @@ -107908,9 +107739,9 @@ aaa aaa aaa efQ -pYJ +clr gGJ -pzp +mxs aaa btH btH @@ -107937,11 +107768,11 @@ chi chi cdt cdt -aad -aad -uJr +qYo +qYo +xwo gGJ -pzp +mxs efQ aaa aaa @@ -108165,11 +107996,11 @@ aaa aaa aaa qYo -pYJ +clr gGJ -pzp -aad -aad +mxs +qYo +qYo btH btH btH @@ -108190,15 +108021,15 @@ eae bPC aaa xsG -cVr -cVr +gLJ +gLJ xsG -cVr -cVr -bAU +gLJ +gLJ +nxs pTR gGJ -eKN +gvf efQ aaa aaa @@ -108422,12 +108253,12 @@ aaa aaa aaa efQ -pYJ +clr gGJ -eKN -aad -aad -aad +gvf +qYo +qYo +qYo btH btH btH @@ -108455,7 +108286,7 @@ iPR hVA hVA dws -pzp +mxs qYo aaa aaa @@ -108679,21 +108510,21 @@ aaa aaa aaa efQ -pYJ +clr gGJ fJy xsG -cVr -cVr -cVr +gLJ +gLJ +gLJ xsG -cVr -cVr +gLJ +gLJ xsG -cVr -cVr +gLJ +gLJ xsG -cVr +gLJ aaa bPC bRM @@ -108702,16 +108533,16 @@ uQY tWv pGJ bPC -pYJ +clr ePZ qpQ -smV -aOl -smV -smV -aOl -smV -smV +oxt +xHF +oxt +oxt +xHF +oxt +oxt aaa efQ aaa @@ -108936,7 +108767,7 @@ aaa aaa aaa efQ -uJr +xwo omg hVA hVA @@ -108951,7 +108782,7 @@ chU chU chU iIm -pzp +mxs bPC uNh asa @@ -108959,9 +108790,9 @@ uQY asa olD bPC -pYJ +clr ePZ -eKN +gvf efQ efQ qYo @@ -109194,18 +109025,18 @@ aaa aaa efQ aaa -aOl -smV -smV -aOl -smV -smV -aOl -smV -smV -aOl -smV -aOl +xHF +oxt +oxt +xHF +oxt +oxt +xHF +oxt +oxt +xHF +oxt +xHF yko ePZ pQx @@ -109218,7 +109049,7 @@ bPC bPC idU ePZ -pzp +mxs efQ aaa aaa @@ -109463,19 +109294,19 @@ efQ efQ efQ efQ -uJr +xwo ePZ nCB -cVr +gLJ fsr jZc fkB fRA fJy -cVr -dXD +gLJ +vgS ePZ -eKN +gvf efQ aaa aaa @@ -109720,7 +109551,7 @@ qYo aaa qYo efQ -pYJ +clr hVt nBm dNT @@ -109732,7 +109563,7 @@ chU chU chU aaQ -pzp +mxs qYo qYo qYo @@ -110043,9 +109874,9 @@ aaa aaa aaa aaa -abj +vVc aaa -abj +vVc aaa aaa aaa @@ -110235,9 +110066,9 @@ aaa qYo efQ efQ -uJr +xwo nDt -eKN +gvf idU kXC qKi @@ -110300,9 +110131,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -110556,11 +110387,11 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo aaa -aad -aad +qYo +qYo aaa aaa aaa @@ -110812,13 +110643,13 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo oec tnB oec -aad -aad +qYo +qYo aaa aaa aaa @@ -111006,18 +110837,18 @@ aaa efQ qYo qYo -aad +qYo vVc -aad +qYo bRP eOb qdF gnO aJD -aad -aad -aad -aad +qYo +qYo +qYo +qYo qYo efQ aaa @@ -111068,15 +110899,15 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo tnB oec fSW oec tnB -aad -aad +qYo +qYo aaa aaa aaa @@ -111266,13 +111097,13 @@ qYo aaa vVc aaa -uJr +xwo eaA rjm mbY -eKN +gvf aaa -aad +qYo aaa aaa aaa @@ -111324,8 +111155,8 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo oec oec fSr @@ -111333,8 +111164,8 @@ xEV rlQ oec oec -aad -aad +qYo +qYo aaa aaa aaa @@ -111524,12 +111355,12 @@ aaa vVc aaa bRQ -smV +oxt pwY -smV +oxt cap aaa -aad +qYo aaa aaa aaa @@ -111579,50 +111410,50 @@ aaa aaa aaa aaa -abj -aad -aad -tnB -tnB -ebF -hZT -jbR -nEA -iXw -tnB -tnB -aad -aad -abj -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +vVc +qYo +qYo +tnB +tnB +ebF +hZT +jbR +nEA +iXw +tnB +tnB +qYo +qYo +vVc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -111777,18 +111608,18 @@ aaa efQ qYo qYo -aad +qYo vVc -aad +qYo bRR -aad +qYo mmr -aad +qYo bRR -aad -aad -aad -aad +qYo +qYo +qYo +qYo qYo efQ aaa @@ -112043,7 +111874,7 @@ mmr aaa caq aaa -aad +qYo aaa aaa aaa @@ -112093,9 +111924,9 @@ aaa aaa aaa aaa -abj -aad -aad +vVc +qYo +qYo tnB tnB pPf @@ -112105,9 +111936,9 @@ mcA pqX tnB tnB -aad -aad -abj +qYo +qYo +vVc aaa aaa aaa @@ -112294,13 +112125,13 @@ qYo aaa vVc aaa -aad +qYo bTJ mmr bYm -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -112352,8 +112183,8 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo oec oec jCK @@ -112361,8 +112192,8 @@ jbR fkd oec oec -aad -aad +qYo +qYo aaa aaa aaa @@ -112551,13 +112382,13 @@ qYo aaa vVc aaa -aad +qYo aaa iNi aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -112610,15 +112441,15 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo tnB oec lob oec tnB -aad -aad +qYo +qYo aaa aaa aaa @@ -112805,17 +112636,17 @@ aaa efQ qYo qYo -aad +qYo vVc vVc vVc -aad +qYo oRu -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo qYo qYo qYo @@ -112868,13 +112699,13 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo oec eln oec -aad -aad +qYo +qYo aaa aaa aaa @@ -113063,15 +112894,15 @@ qYo aaa qYo aaa -aad +qYo aaa vVc aaa oPn aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -113126,11 +112957,11 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo aaa -aad -aad +qYo +qYo aaa aaa aaa @@ -113320,15 +113151,15 @@ efQ aaa qYo aaa -aad +qYo aaa vVc aaa oPn aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -113384,9 +113215,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -113576,17 +113407,17 @@ aaa efQ qYo qYo -aad -aad -aad +qYo +qYo +qYo vVc -aad +qYo cXx -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo qYo qYo efQ @@ -113641,9 +113472,9 @@ aaa aaa aaa aaa -abj +vVc aaa -abj +vVc aaa aaa aaa @@ -113834,15 +113665,15 @@ uHd qYo qYo aaa -aad +qYo aaa vVc aaa oPn aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -113865,7 +113696,7 @@ aaa aaa aaa aaa -eqU +aaa aaa wVj aaa @@ -113898,9 +113729,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114087,19 +113918,19 @@ aaa aaa qYo aaa -aad -eqU qYo aaa -aad +qYo +aaa +qYo aaa vVc aaa oPn aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114155,9 +113986,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114349,15 +114180,15 @@ qYo qYo aaa qYo -aad +qYo vVc -aad +qYo oRu -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo qYo qYo efQ @@ -114412,9 +114243,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114422,7 +114253,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -114552,7 +114383,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -114611,9 +114442,9 @@ vVc aaa oPn aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114669,9 +114500,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114868,9 +114699,9 @@ vVc aaa oPn aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -114926,9 +114757,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -115122,13 +114953,13 @@ uHd uHd qYo vVc -aad +qYo cXx -aad -aac -aac -aac -aad +qYo +uHd +uHd +uHd +qYo uHd qYo efQ @@ -115183,9 +115014,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -115382,9 +115213,9 @@ vVc aaa dVg aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -115440,9 +115271,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -115566,13 +115397,13 @@ aaa aaa aaa aaa -aac -aad -aac -aad -aac -aac -aac +uHd +qYo +uHd +qYo +uHd +uHd +uHd aaa aaa aaa @@ -115639,9 +115470,9 @@ vVc aaa dVg aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -115697,9 +115528,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -115819,21 +115650,21 @@ aaa aaa aaa aaa -aac -aac -aFo -aac -aac +uHd +uHd +xNe +uHd +uHd aaa -aad +qYo aaa -aad +qYo aaa -aac -aac -aad -aac -aac +uHd +uHd +qYo +uHd +uHd aaa aaa aaa @@ -115893,7 +115724,7 @@ qYo uHd qYo vVc -aad +qYo alZ qYo uHd @@ -115902,7 +115733,7 @@ uHd uHd uHd qYo -aac +uHd aaa qYo uKa @@ -115919,9 +115750,9 @@ qYo qYo uHd vVc -aad -aad -aad +qYo +qYo +qYo djY nCi nCi @@ -115954,9 +115785,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -116076,21 +115907,21 @@ aaa aaa aaa aaa -aac +uHd aaa -aad +qYo aaa -aad +qYo aaa vYu -fKU +waG vYu aaa -aad +qYo aaa -aad +qYo aaa -aac +uHd aaa aaa aaa @@ -116178,7 +116009,7 @@ uHd vVc qYo qYo -aad +qYo nCi nCi fbp @@ -116211,9 +116042,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -116333,21 +116164,21 @@ aaa aaa aaa aaa -aac +uHd aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa -aad +qYo aaa aaa aaa @@ -116434,7 +116265,7 @@ qvs vVc vVc vpl -abj +vVc vVc nCi jDc @@ -116468,9 +116299,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -116593,18 +116424,18 @@ aaa qYo aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa -aac +uHd aaa aaa aaa @@ -116663,8 +116494,8 @@ vVc vVc vVc sVm -abj -abj +vVc +vVc lbi qYo aaa @@ -116725,9 +116556,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -116847,63 +116678,63 @@ aaa aaa aaa aaa -aac -qYo -vYu -fKU -vYu -qYo -vYu -fKU -vYu -qYo -vYu -fKU -vYu -aad -aac -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +uHd +qYo +vYu +waG +vYu +qYo +vYu +waG +vYu +qYo +vYu +waG +vYu +qYo +uHd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -116982,9 +116813,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -117104,21 +116935,21 @@ aaa aaa aaa aaa -aac +uHd aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa -aFo +xNe aaa aaa aaa @@ -117158,7 +116989,7 @@ aaa aaa aaa aaa -eqU +aaa aaa qYo aaa @@ -117239,9 +117070,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -117358,24 +117189,24 @@ aaa aaa aaa aaa -aac -aFo -aac -aac +uHd +xNe +uHd +uHd aaa vYu -fKU +waG vYu aaa qYo -fKU +waG qYo aaa vYu -fKU +waG vYu aaa -aFo +xNe uHd efQ efQ @@ -117496,9 +117327,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -117615,24 +117446,24 @@ aaa aaa aaa aaa -aac +uHd aaa -aad -aad +qYo +qYo aaa -aad -fKU -aad qYo -aad -fKU -aad +waG +qYo +qYo +qYo +waG +qYo +qYo +qYo +waG +qYo +qYo qYo -aad -fKU -aad -aad -aad aaa aaa qYo @@ -117747,15 +117578,15 @@ aaa aaa aaa aaa -eqU +aaa wVj aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -117872,22 +117703,22 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo sCY -fKU -fKU -awk -awk -awk +waG +waG +qNi +qNi +qNi +qNi +qNi +qNi +qNi +qNi +qNi qNi -awk -awk -awk qNi -awk -awk -awk qNi qNi aaa @@ -118010,9 +117841,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -118129,189 +117960,189 @@ aaa aaa aaa aaa -aac -aaa -aad -aad -eqU -aad -fKU -aad -qYo -aad -fKU -aad -qYo -aad -fKU -aad -qYo -qNi -qYo -qYo -qYo -qYo -vVc -vVc -edx -adA -qYx -iBO -mDb -iRf -tQz -qYo -aad -aad -eqU -aad -aaa -aad -aad -aad -aaa -aad -aad -aad -aaa -aad -aad -aad -aaa -aad -aad -aad -aaa -aad -aad -aad -aaa -qYo -qYo -xQr -gnH -gnH -gnH -gnH -gnH -uch -xUy -spI -qzc -gYc -nUp -nUp -nUp -nUp -nUp -nUp -nUp -nUp -nUp -nUp -gAw -gpy -gpy -imQ -gpy -rVD -gAw -gAw -meL -ehD -bHg -haw -tqa -gnw -sWs -mWF -jcg -jcg -sst -pgY -nCi -upo -bSG -lUg -nCi -nCi -aXP -nCi -uhb -xIa -iRd -gxT -kPD -rxX -oWn -afN -uhb -jPZ -tmr -nCi -vJv -hHF -guA -nCi -aaa -qYo -aaa -qYo -aaa -qYo -aaa -qYo -aaa -aaa -aaa -aaa -aaa -aaa -aad -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +uHd +aaa +qYo +qYo +aaa +qYo +waG +qYo +qYo +qYo +waG +qYo +qYo +qYo +waG +qYo +qYo +qNi +qYo +qYo +qYo +qYo +vVc +vVc +edx +adA +qYx +iBO +mDb +iRf +tQz +qYo +qYo +qYo +aaa +qYo +aaa +qYo +qYo +qYo +aaa +qYo +qYo +qYo +aaa +qYo +qYo +qYo +aaa +qYo +qYo +qYo +aaa +qYo +qYo +qYo +aaa +qYo +qYo +xQr +gnH +gnH +gnH +gnH +gnH +uch +xUy +spI +qzc +gYc +nUp +nUp +nUp +nUp +nUp +nUp +nUp +nUp +nUp +nUp +gAw +gpy +gpy +imQ +gpy +rVD +gAw +gAw +meL +ehD +bHg +haw +tqa +gnw +sWs +mWF +jcg +jcg +sst +pgY +nCi +upo +bSG +lUg +nCi +nCi +aXP +nCi +uhb +xIa +iRd +gxT +kPD +rxX +oWn +afN +uhb +jPZ +tmr +nCi +vJv +hHF +guA +nCi +aaa +qYo +aaa +qYo +aaa +qYo +aaa +qYo +aaa +aaa +aaa +aaa +aaa +aaa +qYo +aaa +qYo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -118386,21 +118217,21 @@ aaa aaa aaa aaa -aac -aac -aad -aad +uHd +uHd +qYo +qYo aaa vYu -fKU +waG vYu aaa qYo -fKU +waG qYo aaa vYu -fKU +waG vYu qYo waG @@ -118431,7 +118262,7 @@ pxN pxN pxN pxN -abj +vVc pxN pxN pxN @@ -118524,9 +118355,9 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -118646,18 +118477,18 @@ aaa aaa aaa aaa -aac +uHd aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa waG @@ -118688,7 +118519,7 @@ tMA rbC tMA pxN -aad +qYo pxN uVk ahV @@ -118773,17 +118604,17 @@ gtx hvD jtC nCI -aad -aad +qYo +qYo aaa -aad -aad +qYo +qYo aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -118903,18 +118734,18 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo vYu -fKU +waG vYu aaa vYu -fKU +waG vYu qYo vYu -fKU +waG vYu aaa waG @@ -118945,7 +118776,7 @@ sKb crE tMA pxN -abj +vVc pxN hUK spJ @@ -119034,13 +118865,13 @@ fYR nCI fYR fYR -aad +qYo efQ aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -119160,18 +118991,18 @@ aaa aaa aaa aaa -aac +uHd aaa vYu -fKU +waG vYu qYo vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa waG @@ -119202,7 +119033,7 @@ uFx ldu uIF pxN -aad +qYo pxN vAc eEo @@ -119291,13 +119122,13 @@ jxZ hHX bQz fYR -aad +qYo efQ efQ aaa qYo aaa -aad +qYo aaa aaa aaa @@ -119417,18 +119248,18 @@ aaa aaa aaa aaa -aad +qYo aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu aaa vYu -fKU +waG vYu qYo waG @@ -119459,7 +119290,7 @@ rHc xlG nzi pxN -abj +vVc pxN dlj xlG @@ -119548,14 +119379,14 @@ vwC fNa jXz nCI -aad +qYo qYo qYo qYo qYo aaa -aad -aad +qYo +qYo efQ aaa aaa @@ -119676,15 +119507,15 @@ aaa aaa efQ aaa -aad +qYo aaa -aad +qYo aaa vYu -fKU +waG vYu aaa -aad +qYo aaa qYo aaa @@ -119806,12 +119637,12 @@ xJW fGt fYR aaa -aad +qYo aaa aaa qYo aaa -aad +qYo aaa efQ aaa @@ -119949,7 +119780,7 @@ waG aaa aaa qYo -iZn +kvq edx wlH raL @@ -120068,7 +119899,7 @@ aaa aaa qYo aaa -aad +qYo aaa qYo aaa @@ -120325,9 +120156,9 @@ aaa aaa qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -120578,12 +120409,12 @@ gvG pNA spa fYR -aad +qYo qYo qYo aaa -aad -aad +qYo +qYo efQ aaa aaa @@ -120612,7 +120443,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -120839,7 +120670,7 @@ aaa aaa qYo aaa -aad +qYo aaa efQ aaa @@ -120854,7 +120685,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -121092,12 +120923,12 @@ fWJ pNA qVn fYR -aad +qYo qYo qYo aaa -aad -aad +qYo +qYo efQ aaa aaa @@ -121353,9 +121184,9 @@ aaa aaa qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -121610,9 +121441,9 @@ aaa aaa qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -121861,18 +121692,15 @@ fza lgW dJY fYR -aad -aaa -aaa -aaa qYo aaa -aad -aad -rWQ aaa aaa +qYo aaa +qYo +qYo +lvw aaa aaa aaa @@ -121893,13 +121721,16 @@ aaa aaa aaa aaa -aac -aac -aac -aad -aFo -aac -aac +aaa +aaa +aaa +uHd +uHd +uHd +qYo +xNe +uHd +uHd aaa aaa aaa @@ -122118,13 +121949,13 @@ uKu srI uDR nCI -aad -aac -aac +qYo +uHd +uHd qYo qYo aaa -aad +qYo aaa efQ aaa @@ -122146,21 +121977,21 @@ aaa aaa aaa aaa -aac -aad -aFo -aac -aac +uHd +qYo +xNe +uHd +uHd aaa aaa -aad +qYo aaa aaa -aac -aac -aad -aac -aac +uHd +uHd +qYo +uHd +uHd aaa aaa aaa @@ -122375,14 +122206,14 @@ nZA geY skr fYR -aad +qYo efQ aaa aaa qYo aaa -aad -aad +qYo +qYo efQ aaa aaa @@ -122403,21 +122234,21 @@ aaa aaa aaa aaa -aac +uHd aaa aaa -aad +qYo aaa aaa qgl -bbD +kun qgl aaa aaa -aad +qYo aaa aaa -aac +uHd aaa aaa aaa @@ -122638,9 +122469,9 @@ aaa aaa qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -122660,21 +122491,21 @@ aaa aaa aaa aaa -aac +uHd aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa -aFo +xNe aaa aaa aaa @@ -122895,9 +122726,9 @@ aaa aaa qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -122917,21 +122748,21 @@ aaa aaa aaa aaa -aad +qYo aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa -aac +uHd aaa aaa aaa @@ -123008,7 +122839,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -123152,9 +122983,9 @@ aaa aaa qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -123174,21 +123005,21 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo qgl -bbD +kun qgl -aad +qYo qgl -bbD +kun qgl -aad +qYo qgl -bbD +kun qgl -aad -aac +qYo +uHd aaa aaa aaa @@ -123408,10 +123239,10 @@ qYo vVc qYo vVc -aad -abj -aad -abj +qYo +vVc +qYo +vVc aaa aaa aaa @@ -123431,21 +123262,21 @@ aaa aaa aaa aaa -aac +uHd aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa -aad +qYo aaa aaa aaa @@ -123666,13 +123497,13 @@ vVc aaa qYo aaa -aad +qYo aaa -abj -aad -aad -aad -abj +vVc +qYo +qYo +qYo +vVc aaa aaa aaa @@ -123688,24 +123519,24 @@ aaa efQ efQ aaa -aac +uHd aaa qgl -bbD +kun qgl aaa -aad -bbD -aad +qYo +kun +qYo aaa qgl -bbD +kun qgl aaa -aad -aac -aac -aac +qYo +uHd +uHd +uHd aaa aaa aaa @@ -123922,18 +123753,18 @@ qYo vVc qYo vVc -aad -abj -aad -abj +qYo +vVc +qYo +vVc aaa aaa aaa -abj -aad -aad -aad -abj +vVc +qYo +qYo +qYo +vVc aaa aaa aaa @@ -123945,24 +123776,24 @@ qYo qYo qYo qYo -aad +qYo aaa aaa -bbD -aad -aad -aad -bBc -aad -aad -aad -bbD -aad +kun +qYo +qYo +qYo +pSj +qYo +qYo +qYo +kun +qYo aaa aaa -aad +qYo aaa -aac +uHd aaa aaa aaa @@ -124180,9 +124011,9 @@ aaa aaa qYo aaa -aad +qYo aaa -abj +vVc qYo qYo qYo @@ -124202,24 +124033,24 @@ pSj pSj pSj pSj -bBc -bBc -bBc -bBc -bBc -bBc +pSj +pSj +pSj +pSj +pSj +pSj kQG qYG -bBc -bBc -bBc -bBc -bBc -bbD -bbD +pSj +pSj +pSj +pSj +pSj +kun +kun etr -aad -aad +qYo +qYo aaa aaa aaa @@ -124437,7 +124268,7 @@ aaa aaa qYo aaa -aad +qYo aaa aaa aaa @@ -124459,24 +124290,24 @@ pSj qYo qYo qYo -aad +qYo aaa aaa -bbD -aad -aad -aad -bBc -aad -aad -aad -bbD -aad +kun +qYo +qYo +qYo +pSj +qYo +qYo +qYo +kun +qYo aaa aaa -aad +qYo aaa -aac +uHd aaa aaa aaa @@ -124694,7 +124525,7 @@ aaa aaa qYo aaa -aad +qYo aaa aaa aaa @@ -124716,24 +124547,24 @@ kun qYo aaa aaa -aac +uHd aaa qgl -bbD +kun qgl aaa -aad -bbD -aad +qYo +kun +qYo aaa qgl -bbD +kun qgl aaa -aFo -aac -aac -aac +xNe +uHd +uHd +uHd aaa aaa aaa @@ -124951,7 +124782,7 @@ aaa aaa qYo aaa -aad +qYo aaa aaa aaa @@ -124968,26 +124799,26 @@ qYo aaa aaa efQ -aad -bbD -aad +qYo +kun +qYo aaa aaa -aac +uHd aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa -aad +qYo aaa aaa aaa @@ -125202,13 +125033,13 @@ vfc hoY hoT qYo -aad +qYo efQ aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -125224,27 +125055,27 @@ efQ efQ qYo qYo -aad +qYo fuV ocY fuV -aad +qYo aaa -aac -aad +uHd +qYo qgl -bbD +kun qgl -aad +qYo qgl -bbD +kun qgl -aad +qYo qgl -bbD +kun qgl -aad -aac +qYo +uHd aaa aaa aaa @@ -125459,13 +125290,13 @@ wEE enw nEc aaa -aad +qYo aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -125481,27 +125312,27 @@ aaa aaa aaa aaa -aad +qYo fuV nhK fuV -aad +qYo aaa -aac +uHd aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa -aac +uHd aaa aaa aaa @@ -125716,15 +125547,15 @@ nEc nEc nEc aaa -aad -aad -aad -aad -abj +qYo +qYo +qYo +qYo +vVc aaa -abj -aad -aad +vVc +qYo +qYo qYo efQ efQ @@ -125738,27 +125569,27 @@ qYo efQ efQ qYo -aad +qYo fuV sfX fuV -aad -aad -aFo +qYo +qYo +xNe aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa qgl -bbD +kun qgl aaa -aFo +xNe aaa aaa aaa @@ -125973,13 +125804,13 @@ jUx wEI aaa aaa -aad +qYo aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -126000,22 +125831,22 @@ fuV ual fuV fuV -aad -aac +qYo +uHd aaa aaa -aad +qYo aaa aaa qgl -bbD +kun qgl aaa aaa -aad +qYo aaa aaa -aac +uHd aaa aaa aaa @@ -126215,7 +126046,7 @@ vCq aEe dso jDd -vzw +hrs lIv nly oRs @@ -126229,16 +126060,16 @@ dKR jUx wEI qYo -aad -aad -aad -aad -aad -abj +qYo +qYo +qYo +qYo +qYo +vVc aaa -abj -abj -abj +vVc +vVc +vVc qYo aaa efQ @@ -126257,22 +126088,22 @@ ubV bIU sin dPR -aad -aac -aac -aac -aFo -aac +qYo +uHd +uHd +uHd +xNe +uHd aaa aaa -aad +qYo aaa aaa -aFo -aac -aac -aad -aac +xNe +uHd +uHd +qYo +uHd aaa aaa aaa @@ -126514,18 +126345,18 @@ eNe bZc oDo dPR -aad +qYo aaa aaa aaa -aad -aac -aac -aac -aad -aac -aac -aFo +qYo +uHd +uHd +uHd +qYo +uHd +uHd +xNe aaa aaa aaa @@ -126765,19 +126596,19 @@ kGi kGi kGi qQM -aad +qYo dPR oto wvU kfS dPR -aad -aad +qYo +qYo qYo aaa -aad +qYo aaa -aad +qYo aaa aaa aaa @@ -126851,23 +126682,23 @@ aaa aaa aaa aaa -aab -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +wVj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -127049,7 +126880,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -127444,9 +127275,9 @@ oYs jzE oYs aaa -aad +qYo aaa -aad +qYo aJU keE tbf @@ -127544,8 +127375,8 @@ tTg bVo jzJ wjP -aad -aad +qYo +qYo qYo aaa efQ @@ -127700,7 +127531,7 @@ dvn oYs vnD oYs -aad +qYo kAD wVU aJU @@ -127928,7 +127759,7 @@ bxp dlz jWG oYs -gSR +kuz jHi sAU iKr @@ -128214,7 +128045,7 @@ lEm fnb xiV mbR -aad +qYo wVU gfq rFZ @@ -128605,7 +128436,7 @@ aaa aaa aaa aaa -eqU +aaa aaa aaa aaa @@ -128728,7 +128559,7 @@ aMH oYs owb oYs -aad +qYo kAD wVU aJU @@ -128986,9 +128817,9 @@ oYs mcs oYs aaa -aad +qYo aaa -aad +qYo aJU akf tlp @@ -129171,28 +129002,28 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo +qYo +qYo qld bSq qld -aad +qYo aaa aaa -aad +qYo qld bSq qld -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo qYo qYo qYo @@ -129430,10 +129261,10 @@ aaa aaa aaa aaa -aad +qYo aaa aaa -aad +qYo aaa qld pvH @@ -129446,7 +129277,7 @@ qld pvH qld aaa -aad +qYo aaa aaa aaa @@ -130246,7 +130077,7 @@ aze cLO juX ueJ -nMw +nap csw nUo pLx @@ -130627,7 +130458,7 @@ oPz lcF rQC qQM -aad +qYo aaa aaa qYo @@ -130968,14 +130799,14 @@ aaa aaa aaa aaa -aad -aad -aad +qYo +qYo +qYo aaa -aad +qYo aaa aaa -aad +qYo aaa qld rPR @@ -130988,7 +130819,7 @@ qld rPR qld aaa -aad +qYo aaa aaa aaa @@ -131227,28 +131058,28 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo +qYo +qYo qld pyz qld -aad +qYo aaa aaa -aad +qYo qld lxb qld -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo qld ePK kci @@ -131484,9 +131315,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -131741,9 +131572,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -131998,9 +131829,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -132255,9 +132086,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -132512,9 +132343,9 @@ aaa aaa aaa aaa -abj -aad -aad +vVc +qYo +qYo aaa iXn aaa @@ -132769,9 +132600,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -133026,9 +132857,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -133283,184 +133114,184 @@ aaa aaa aaa aaa -abj -aaa -aad -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -qld -rJf -sde -sMx -sjt -pmV -tht -dbO -bLd -pUU -emm -sjt -dyi -iWA -vRU -tCs -tCs -tCs -bJf -xGi -ngp -cEQ -sfH -fMo -iyH -eDV -ldq -jAI -rVs -rVs -bjE -owu -tlU -ikD -xgL -uOh -dxk -vqY -eYQ -aaz -sRI -dxk -dxk -kju -jwb -rjt -lCi -wjO -dlC -kOj -xms -xms -xms -diL -uQD -drj -bog -xEg -awc -kRr -nHc -mBU -lAg -kPM -pRS -pqo -nLS -xld -uqZ -uuy -tPv -cPD -uhC -pRS -gqq -tMo -rjd -pRS -oHJ -kxs -mlE -xWP -nTz -puJ -aNJ -puJ -kpj -bYG -mlE -xHO -whK -rcW -dJa -oRz -fIe -bgL -mfI -fvi -tpg -tzc -oZz -bpM -vzA -iuU -fMZ -dCx -xdN -aAj -aAj -aAj -wCT -aAj -peU -peU -kzc -kzc -kzc -kzc -kzc -vmK -wWL -vfS -pQn -jvQ -eKe -eKe -ulg -ulg -ulg -wTN -eKe -tCW -kzc -lJl -sfD -qQM -qYo -tgT -cwZ -cqc -eNo -whl -rKP -tgT -aaa -tgT -wpU -ssR -xyb -hTv -lBH -gqm -qYo +vVc aaa -lvw -qYo +qYo +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +qld +rJf +sde +sMx +sjt +pmV +tht +dbO +bLd +pUU +emm +sjt +dyi +iWA +vRU +tCs +tCs +tCs +bJf +xGi +ngp +cEQ +sfH +fMo +iyH +eDV +ldq +jAI +rVs +rVs +bjE +owu +tlU +ikD +xgL +uOh +dxk +vqY +eYQ +aaz +sRI +dxk +dxk +kju +jwb +rjt +lCi +wjO +dlC +kOj +xms +xms +xms +diL +uQD +drj +bog +xEg +awc +kRr +nHc +mBU +lAg +kPM +pRS +pqo +nLS +xld +uqZ +uuy +tPv +cPD +uhC +pRS +gqq +tMo +rjd +pRS +oHJ +kxs +mlE +xWP +nTz +puJ +aNJ +puJ +kpj +bYG +mlE +xHO +whK +rcW +dJa +oRz +fIe +bgL +mfI +fvi +tpg +tzc +oZz +bpM +vzA +iuU +fMZ +dCx +xdN +aAj +aAj +aAj +wCT +aAj +peU +peU +kzc +kzc +kzc +kzc +kzc +vmK +wWL +vfS +pQn +jvQ +eKe +eKe +ulg +ulg +ulg +wTN +eKe +tCW +kzc +lJl +sfD +qQM +qYo +tgT +cwZ +cqc +eNo +whl +rKP +tgT +aaa +tgT +wpU +ssR +xyb +hTv +lBH +gqm +qYo +aaa +lvw +qYo qYo aaa aaa @@ -133540,9 +133371,9 @@ aaa aaa aaa aaa -abj +vVc aaa -aad +qYo aaa aaa aaa @@ -133613,7 +133444,7 @@ wjO dOZ xms aaa -aad +qYo aaa diL nBJ @@ -133797,28 +133628,28 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo +qYo +qYo qld pRJ qld -aad +qYo aaa aaa -aad +qYo qld pRJ qld -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo qld kEn tzy @@ -133870,7 +133701,7 @@ wjO dOZ xms aaa -aad +qYo aaa diL uhH @@ -133972,7 +133803,7 @@ xPc tgT pOQ aaa -eqU +aaa qYo aaa efQ @@ -134052,14 +133883,14 @@ aaa aaa aaa aaa -aad -aad -aad +qYo +qYo +qYo aaa -aad +qYo aaa aaa -aad +qYo aaa qld pvH @@ -134072,7 +133903,7 @@ qld pvH qld aaa -aad +qYo aaa aaa aaa @@ -134127,7 +133958,7 @@ wjO dOZ xms aaa -aad +qYo aaa diL rzn @@ -134383,9 +134214,9 @@ iDP eem xny kOj -aad -aad -aad +qYo +qYo +qYo diL gab drj @@ -134641,7 +134472,7 @@ wjO dOZ xms aaa -aad +qYo aaa diL sVb @@ -134898,7 +134729,7 @@ otm dOZ xms aaa -aad +qYo aaa diL ipQ @@ -135155,7 +134986,7 @@ tgU dOZ xms aaa -aad +qYo aaa wyH rdu @@ -135169,7 +135000,7 @@ wmp rgW mGw pRS -kNB +hgC lAv nAz xYf @@ -135208,7 +135039,7 @@ kdq shU bbj dZc -igE +lhC uGE qmu qfi @@ -135411,9 +135242,9 @@ wxI aBL dTD kOj -aad -aad -aad +qYo +qYo +qYo wyH xdY pnV @@ -135465,7 +135296,7 @@ xWf uZs xWf dQT -eWj +qfi qfi qfi dQT @@ -135872,9 +135703,9 @@ bmC qld aaa aaa -aad -aad -aad +qYo +qYo +qYo qld oMr kci @@ -135950,8 +135781,8 @@ jDi jDi hup iyy -aad -aad +qYo +qYo oCs dmq xaP @@ -136130,7 +135961,7 @@ aaa aaa aaa aaa -aad +qYo qld qld rXr @@ -136387,7 +136218,7 @@ aaa aaa aaa aaa -aad +qYo pkd tQU oMr @@ -136696,7 +136527,7 @@ mBJ drQ ttz kOj -aad +qYo diL nYn iGB @@ -136918,10 +136749,10 @@ pBu qwz prJ jYM -qRw +ybo tPD -pOD -tWU +pSx +fAE sSH kVP aUZ @@ -137175,11 +137006,11 @@ jJc xCf dIk hjm -qRw +mEs eNB eCs tqn -gnS +dvI wbe qAV nIg @@ -137415,7 +137246,7 @@ aaa aaa aaa aaa -aad +qYo cbY hvq plz @@ -137435,9 +137266,9 @@ rkS qnI gvq wkP -xns -bgo -dzk +uwK +eAs +lbN qAV daR dla @@ -137672,7 +137503,7 @@ aaa aaa aaa aaa -aad +qYo qld qld rbR @@ -137689,12 +137520,12 @@ jJc xbp prJ anF -qRw -kjM -hoQ -sDL -jSo -eOB +gtJ +sdI +lKk +pWk +tjz +vuC qAV daR btY @@ -137724,7 +137555,7 @@ pXg jkf iFG kOj -aad +qYo diL cnW iGB @@ -137928,9 +137759,9 @@ pRJ qld aaa aaa -aad -aad -aad +qYo +qYo +qYo qld rbR xQb @@ -137946,12 +137777,12 @@ dLX eCt bHB cCD -qRw -wTJ -vxu -nXn -pCV -vME +ovE +csV +yck +pPk +eAs +lbN qAV jKA sHC @@ -138204,11 +138035,11 @@ jdL gPc jdL jdL -nGC +fiE puj obx -tAA -vWu +kME +hsu dXd sHC sHC @@ -138461,9 +138292,9 @@ kFQ qHz pOi jdL -qNy -hVI -ykb +xZm +kBi +gKN jdL jdL qAV @@ -138520,8 +138351,8 @@ jDi jDi hup iyy -aad -aad +qYo +qYo oCs hHQ uJm @@ -138574,7 +138405,7 @@ qeF qYL qry uJW -mmf +uNt aQc uLx qYL @@ -139009,9 +138840,9 @@ uwJ vPy dTD kOj -aad -aad -aad +qYo +qYo +qYo wyH eTS pnV @@ -139267,7 +139098,7 @@ dvy lSl xms aaa -aad +qYo aaa wyH lgG @@ -139343,7 +139174,7 @@ vnB uue jdf qYL -qpU +gOY pJI eJk hvf @@ -139524,7 +139355,7 @@ hRV lSl xms aaa -aad +qYo aaa diL ipQ @@ -139707,8 +139538,8 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo abi jrG abi @@ -139781,7 +139612,7 @@ dvy lSl xms aaa -aad +qYo aaa diL pGz @@ -139964,8 +139795,8 @@ aaa aaa aaa aaa -abj -abj +vVc +vVc ckY gEl gwe @@ -140037,9 +139868,9 @@ pXg dvy lOf kOj -aad -aad -aad +qYo +qYo +qYo diL tch drj @@ -140147,7 +139978,7 @@ aaa aaa aaa aaa -eqU +aaa aaa aaa aaa @@ -140222,7 +140053,7 @@ aaa aaa aaa aaa -aad +qYo abi hYY abi @@ -140295,7 +140126,7 @@ dvy lSl xms aaa -aad +qYo aaa diL rzn @@ -140468,7 +140299,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -140478,8 +140309,8 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo abi adR xrr @@ -140552,7 +140383,7 @@ bmn lSl xms aaa -aad +qYo aaa diL uhH @@ -140735,16 +140566,16 @@ aaa aaa aaa aaa -aac -aad -aad -aad +uHd +qYo +qYo +qYo xrr jnq jvL btT xrr -aad +qYo abi adR adR @@ -140809,7 +140640,7 @@ dvy lSl xms aaa -aad +qYo aaa diL nBJ @@ -140992,10 +140823,10 @@ aaa aaa aaa aaa -aac -aac -aad -eqU +uHd +uHd +qYo +aaa csz fVt pHX @@ -141251,14 +141082,14 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo xrr cqM axF pQh xrr -aad +qYo abi aeF aeF @@ -141508,14 +141339,14 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo csz csz sPF csz csz -aad +qYo abi aeF aeF @@ -141766,13 +141597,13 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo csz ezP csz -aad -aad +qYo +qYo abi aeF aeF @@ -142028,8 +141859,8 @@ aaa csz sQR csz -aad -eqU +qYo +aaa abi aeF aeF @@ -142272,20 +142103,20 @@ aaa aaa aaa aaa -aac -aac -aad -aac -aac -aad -aac +uHd +uHd +qYo +uHd +uHd +qYo +uHd aaa -aad -aad +qYo +qYo csz ljP csz -aad +qYo qYo abi aeF @@ -142525,25 +142356,25 @@ aaa aaa aaa aaa -aac -aac -aad -aac -aac +uHd +uHd +qYo +uHd +uHd aaa aaa -aad +qYo aaa aaa -aac -aac -aad -aad -aad +uHd +uHd +qYo +qYo +qYo aoP -aad -aad -aad +qYo +qYo +qYo abi aeF aeF @@ -142606,13 +142437,13 @@ hXg fmH tpZ aaa -aad +qYo aaa teY ykl teY aaa -aad +qYo aaa mjz iJT @@ -142782,10 +142613,10 @@ aaa aaa aaa aaa -aac +uHd aaa aaa -aad +qYo aaa aaa pAJ @@ -142793,14 +142624,14 @@ aoP pAJ aaa aaa -aad +qYo aaa aaa -aad +qYo aoP aaa -aac -eqU +uHd +aaa abi aeF aeF @@ -143039,7 +142870,7 @@ aaa aaa aaa aaa -aad +qYo aaa pAJ aoP @@ -143053,11 +142884,11 @@ pAJ aoP pAJ aaa -aad +qYo aoP -aad -aac -aad +qYo +uHd +qYo abi aeF aeF @@ -143119,7 +142950,7 @@ why hXg uoz tpZ -aad +qYo lhY vZE ldU @@ -143127,7 +142958,7 @@ tcG vZE vZE lhY -aad +qYo mjz fLs azp @@ -143296,7 +143127,7 @@ aaa aaa aaa aaa -aac +uHd aaa pAJ aoP @@ -143310,11 +143141,11 @@ pAJ aoP pAJ aaa -aad +qYo aoP aaa -aad -aad +qYo +qYo abi abi abi @@ -143335,11 +143166,11 @@ ksI qHQ mVI vno -aad -aad +qYo +qYo rUw rUw -aad +qYo oeX aNF tSu @@ -143553,35 +143384,35 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo pAJ aoP pAJ -aad +qYo pAJ aoP pAJ -aad +qYo pAJ aoP pAJ -aad -aad +qYo +qYo aoP aaa -aac -eqU -aad -aad +uHd aaa -aad -aad -aad +qYo +qYo +aaa +qYo +qYo +qYo aaa -aad +qYo aaa -aad +qYo vno vno uHG @@ -143592,7 +143423,7 @@ vno dZQ vno vno -aad +qYo oeX pYG pYG @@ -143810,7 +143641,7 @@ aaa aaa aaa aaa -aad +qYo aaa pAJ aoP @@ -143824,32 +143655,32 @@ pAJ aoP pAJ aaa -aad +qYo aoP -aad -aac -qYo -aad -aac -aac -aac -aad -aac -aac -aac -aac -aac -aaa -aad -abj -abj -aad +qYo +uHd +qYo +qYo +uHd +uHd +uHd +qYo +uHd +uHd +uHd +uHd +uHd +aaa +qYo +vVc +vVc +qYo vno ahI doI fUN vno -aad +qYo oeX bOl kVt @@ -144064,27 +143895,27 @@ aaa aaa aaa aaa -aac -aad -aac -aac -aad +uHd +qYo +uHd +uHd +qYo pAJ aoP pAJ aaa -aad +qYo aoP -aad +qYo aaa pAJ aoP pAJ aaa -aad +qYo fjf aaa -aac +uHd aaa aaa aaa @@ -144096,17 +143927,17 @@ qYo aaa aaa qYo -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo vno iJj ove acU vno -aad +qYo oeX bRV agH @@ -144147,7 +143978,7 @@ bhJ tpZ tpZ tpZ -aad +qYo lhY yah vZE @@ -144155,7 +143986,7 @@ xrd vZE aSm lhY -aad +qYo mjz wus mJD @@ -144321,49 +144152,49 @@ aaa aaa aaa aaa -aac +uHd aaa -aad +qYo aaa aaa -aad +qYo aoP -aad -aad -aad +qYo +qYo +qYo fjf -aad -aad -aad +qYo +qYo +qYo aoP -aad -aad -aad +qYo +qYo +qYo fjf -aad -aac -aad +qYo +uHd +qYo aaa aaa aaa qYo aaa aaa -abj -aad -aad -abj +vVc +qYo +qYo +vVc aaa -aad +qYo aaa aaa -aad +qYo vno qaq tEN pzS vno -aad +qYo kic vcz kic @@ -144372,9 +144203,9 @@ xBu mvv fkS kic -aad -aad -aad +qYo +qYo +qYo tDx xEO xaE @@ -144382,11 +144213,11 @@ hhK xaE sJi tDx -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo aJE raF aAU @@ -144402,7 +144233,7 @@ cbh pkK tDD rWo -aad +qYo aaa aaa lhY @@ -144578,8 +144409,8 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo lEh aoP aoP @@ -144598,29 +144429,29 @@ fjf fjf fjf aaa -aad +qYo aaa aaa aaa aaa -abj -aad -aad -abj +vVc +qYo +qYo +vVc aaa aaa -abj -aad -aad +vVc +qYo +qYo aaa aaa -aad +qYo vno vno vno vno vno -aad +qYo oeX sZt fQL @@ -144643,7 +144474,7 @@ aaa aaa aaa aaa -aad +qYo ljS gmo dfQ @@ -144659,15 +144490,15 @@ rWo rWo rWo rWo -aad +qYo aaa aaa aaa -aad +qYo aaa xYl aaa -aad +qYo aaa aaa dCk @@ -144835,49 +144666,49 @@ aaa aaa aaa aaa -aac +uHd aaa -aad +qYo aaa aaa -aad +qYo aoP -aad -aad -aad +qYo +qYo +qYo fjf -aad -aad -aad +qYo +qYo +qYo aoP -aad -aad -aad -aad -aad -aac -aad -abj -aad -aad -abj -aaa -aaa -abj -aad -aad -abj -aaa -aad -aaa -aaa -aad -aad -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo +uHd +qYo +vVc +qYo +qYo +vVc +aaa +aaa +vVc +qYo +qYo +vVc +aaa +qYo +aaa +aaa +qYo +qYo +qYo +qYo +qYo +qYo +qYo oeX gdM lbu @@ -144900,7 +144731,7 @@ aaa aaa aaa aaa -aad +qYo ljS szZ bdF @@ -144908,25 +144739,25 @@ wob lwO oFI tgX -aad +qYo rWo juo mQj fvC rWo -aad -aad -aad -aad -aad -aad -aac -aac -aac -aac -aac -aad -aad +qYo +qYo +qYo +qYo +qYo +qYo +uHd +uHd +uHd +uHd +uHd +qYo +qYo oIU kJb qud @@ -145092,49 +144923,49 @@ aaa aaa aaa aaa -aac -aac -aac -aac -aad +uHd +uHd +uHd +uHd +qYo pAJ aoP pAJ aaa -aad +qYo aoP -aad +qYo aaa pAJ aoP pAJ -aad -aac -aad -aac -aac +qYo +uHd +qYo +uHd +uHd aaa -abj +vVc aaa aaa -abj -aad -aad -abj +vVc +qYo +qYo +vVc aaa aaa aaa aaa -aad -aad -aac -aac -aad +qYo +qYo +uHd +uHd +qYo aaa -aac -aac -aac -aad +uHd +uHd +uHd +qYo kic gdM qvW @@ -145157,7 +144988,7 @@ aaa aaa aaa aaa -aad +qYo aJE aJE rLg @@ -145175,13 +145006,13 @@ aaa aaa aaa aaa -abj -abj -abj -abj -abj -abj -abj +vVc +vVc +vVc +vVc +vVc +vVc +vVc aaa aaa oIU @@ -145352,7 +145183,7 @@ aaa aaa aaa aaa -aac +uHd aaa pAJ aoP @@ -145366,15 +145197,15 @@ pAJ aoP pAJ aaa -aac -aad -aad +uHd +qYo +qYo aaa aaa -abj -aad -aad -abj +vVc +qYo +qYo +vVc aaa aaa aaa @@ -145390,8 +145221,8 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo kic yhv syy @@ -145414,14 +145245,14 @@ aaa aaa aaa aaa -aad +qYo ofx pYh iWR xiB akc ofx -aad +qYo aaa rWo rWo @@ -145609,26 +145440,26 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo pAJ aoP pAJ -aad +qYo pAJ aoP pAJ -aad +qYo pAJ aoP pAJ -aad -aac +qYo +uHd aaa aaa aaa aaa -abj +vVc aaa aaa aaa @@ -145647,8 +145478,8 @@ aaa aaa aaa aaa -aac -aad +uHd +qYo kic tKc kic @@ -145671,14 +145502,14 @@ aaa aaa aaa aaa -aad +qYo ofx oSE dgt rrE kOr ofx -aad +qYo aaa aaa aaa @@ -145866,7 +145697,7 @@ aaa aaa aaa aaa -aac +uHd aaa pAJ aoP @@ -145880,7 +145711,7 @@ pAJ aoP pAJ aaa -aac +uHd aaa aaa aaa @@ -145899,20 +145730,20 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa aaa aaa -aad -abj +qYo +vVc aaa -abj -aad -aad -aad -aad +vVc +qYo +qYo +qYo +qYo aaa aaa aaa @@ -145928,14 +145759,14 @@ aaa aaa aaa aaa -aad +qYo ofx udI tpE olI ilx ofx -aad +qYo aaa aaa aaa @@ -146123,7 +145954,7 @@ aaa aaa aaa aaa -aac +uHd aaa pAJ aoP @@ -146137,7 +145968,7 @@ pAJ aoP pAJ aaa -aad +qYo aaa aaa aaa @@ -146163,12 +145994,12 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa -aac -aac +uHd +uHd aaa aaa aaa @@ -146185,14 +146016,14 @@ aaa aaa aaa aaa -aad +qYo ofx ofx aJE aJE ofx ofx -aad +qYo aaa aaa aaa @@ -146380,10 +146211,10 @@ aaa aaa aaa aaa -aac +uHd aaa aaa -aad +qYo aaa aaa pAJ @@ -146391,10 +146222,10 @@ aoP pAJ aaa aaa -aad +qYo aaa aaa -aac +uHd aaa aaa aaa @@ -146442,14 +146273,14 @@ aaa aaa aaa aaa -aad -aad -aad +qYo +qYo +qYo aaa aaa -aad -aad -aad +qYo +qYo +qYo aaa aaa aaa @@ -146637,21 +146468,21 @@ aaa aaa aaa aaa -aac -aac -aad -aac -aac +uHd +uHd +qYo +uHd +uHd aaa aaa -aad +qYo aaa aaa -aac -aac -aad -aac -aac +uHd +uHd +qYo +uHd +uHd aaa aaa aaa @@ -146687,24 +146518,24 @@ aaa aaa aaa aaa -abj -abj -abj -abj -abj -abj -abj -abj -abj +vVc +vVc +vVc +vVc +vVc +vVc +vVc +vVc +vVc aaa aaa aaa -aad +qYo aaa -aad -aad -aad -aad +qYo +qYo +qYo +qYo aaa aaa aaa @@ -146898,13 +146729,13 @@ aaa aaa aaa aaa -aac -aac -aad -aac -aac -aad -aac +uHd +uHd +qYo +uHd +uHd +qYo +uHd aaa aaa aaa @@ -146947,42 +146778,42 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa aaa aaa aaa -aac -aad -aad +uHd +qYo +qYo aaa aaa -aad +qYo aaa aaa -aad -abj -abj -abj -abj -abj -abj -aad -aad -aad +qYo +vVc +vVc +vVc +vVc +vVc +vVc +qYo +qYo +qYo faF fUg btm -aad +qYo btm fUg faF -aad -aad +qYo +qYo dCk oiH msb @@ -147204,30 +147035,30 @@ aaa aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa aaa aaa aaa aaa -aac +uHd aaa -aad +qYo aaa aaa -aad +qYo aaa aaa -aad +qYo aaa qYo aaa -aad +qYo aaa -aad +qYo aaa rJt rJt @@ -147458,29 +147289,29 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aad -aac +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo +uHd aaa -aac -aad -aad -aad -aad -aad -aad +uHd +qYo +qYo +qYo +qYo +qYo +qYo aaa -aad +qYo aaa vgQ qIO @@ -147715,27 +147546,27 @@ aaa aaa aaa aaa -aad +qYo aaa aaa -aad +qYo aaa -aad +qYo aaa aaa -aac +uHd aaa aaa aaa -aad +qYo aaa -aad +qYo aaa aaa -aad +qYo aaa aaa -aad +qYo vgQ vgQ vgQ @@ -147972,15 +147803,15 @@ aaa aaa aaa aaa -aad +qYo aaa aaa -aad -aad -aac -aac -aad -aad +qYo +qYo +uHd +uHd +qYo +qYo aaa aaa aaa @@ -148229,15 +148060,15 @@ aaa aaa aaa aaa -abj +vVc aaa aaa -abj +vVc aaa -aad +qYo aaa aaa -aad +qYo mSe mSe mSe @@ -148486,13 +148317,13 @@ aaa aaa aaa aaa -abj +vVc aaa aaa -abj -aad -aad -aad +vVc +qYo +qYo +qYo qYo qYo mSe @@ -148743,10 +148574,10 @@ aaa aaa aaa aaa -abj +vVc aaa nET -aad +qYo aaa aaa qYo @@ -149000,8 +148831,8 @@ aaa aaa aaa aaa -abj -aad +vVc +qYo qIH qIH vXr @@ -149367,7 +149198,7 @@ kvd aii rZI iLr -aad +qYo aaa aaa qYo @@ -149624,7 +149455,7 @@ jIQ xnT usy oLT -aad +qYo qYo qYo efQ @@ -150652,7 +150483,7 @@ pEi pEi ffY oLT -aad +qYo qYo aaa efQ @@ -150909,7 +150740,7 @@ gdr aii lXx oLT -fXz +sHt efQ aaa qYo @@ -151117,7 +150948,7 @@ rYA rYA aaa aaa -aad +qYo vop qqe qVa @@ -151166,7 +150997,7 @@ cYG uOE ruU iLr -aad +qYo efQ qYo xNe @@ -151369,11 +151200,11 @@ saT cqm uAL hEF -aad -aad +qYo +qYo pHa -aad -aad +qYo +qYo uKw yaI pOP @@ -151398,7 +151229,7 @@ nXH fUq nXH nXH -aad +qYo nXH uFH put @@ -151423,7 +151254,7 @@ iLr oLT iLr iLr -fXz +sHt efQ sHt lvw @@ -151628,7 +151459,7 @@ cYD hEF aaa aaa -aad +qYo aaa aaa uKw @@ -151672,15 +151503,15 @@ oHG afm uGN pWe -aad -aad -aad -aad -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo +qYo aaa aaa efQ @@ -151849,7 +151680,7 @@ sgh lTJ gJk qIH -etw +pOQ qYo hQq fNW @@ -151883,11 +151714,11 @@ osc adM hci hEF -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo mfC rwh lrA @@ -151912,7 +151743,7 @@ iHH ojB qEB mfC -aad +qYo bBd uMb yan @@ -151920,7 +151751,7 @@ amS ufE qEb bBd -hDU +chp dhR fKY pwM @@ -152141,7 +151972,7 @@ adM nIn hEF aaa -aad +qYo aaa qYo aaa @@ -152363,7 +152194,7 @@ iCo yiA afQ eoB -aad +qYo qYo hQq rxT @@ -152398,7 +152229,7 @@ vCQ hEF hEF aaa -aad +qYo aaa qYo aaa @@ -152426,23 +152257,23 @@ huu baK cKZ mfC -aad -aad -eqU -eqU -aad -aaa -eqU -aad -hDU -aad -aad -eqU -aad +qYo +qYo +aaa +aaa +qYo +aaa +aaa +qYo +chp +qYo +qYo +aaa +qYo pWe dHy pWe -aad +qYo aaa aaa efQ @@ -152636,9 +152467,9 @@ szi wPA aIM iDq -aad +qYo aaa -aad +qYo bLs hXZ abw @@ -152653,12 +152484,12 @@ hyR lPH udb ggW -aad -aad +qYo +qYo efQ lvw efQ -aad +qYo mfC mGT sfA @@ -152683,24 +152514,24 @@ xBm baK eIQ mfC -aad +qYo qYo aaa aaa -aad +qYo aaa aaa -aad +qYo chp aaa aaa aaa -aad +qYo pWe onn pWe -aad -aad +qYo +qYo efQ efQ aaa @@ -152878,7 +152709,7 @@ xwa qIH qIH kvt -aad +qYo kOA kOA kOA @@ -152893,9 +152724,9 @@ iDq dql iDq iDq -aad +qYo aaa -aad +qYo bLs bLs gPh @@ -152911,10 +152742,10 @@ gCa gkt nEZ nEZ -aad +qYo aaa aaa -aad +qYo aaa mfC bEe @@ -152944,7 +152775,7 @@ qYo qYo aaa aaa -aad +qYo aaa aaa efQ @@ -152952,13 +152783,13 @@ vVc aaa aaa aaa -aad +qYo pWe gpg pWe -aad +qYo aaa -aad +qYo aaa aaa kpR @@ -152966,7 +152797,7 @@ geN kpR aaa aaa -aad +qYo aaa aaa efQ @@ -153134,7 +152965,7 @@ lVn krO jrA aaa -aad +qYo aaa kOA nKE @@ -153172,7 +153003,7 @@ qYo efQ qYo efQ -aad +qYo mfC twJ pdV @@ -153201,7 +153032,7 @@ qYo efQ aaa aaa -aad +qYo aaa aaa efQ @@ -153210,9 +153041,9 @@ aaa aaa aaa aaa -aad +qYo geN -aad +qYo aaa kpR geN @@ -153365,7 +153196,7 @@ aaa aaa aaa aaa -aad +qYo aaa aaa aaa @@ -153390,9 +153221,9 @@ vxs tdj yiA jrA -aad -aad -aad +qYo +qYo +qYo bRF wQo piM @@ -153402,7 +153233,7 @@ hOw gOc ohq bRF -aad +qYo lvw efQ efQ @@ -153428,7 +153259,7 @@ nEZ qYo aaa aaa -aad +qYo aaa uKw aQG @@ -153466,11 +153297,11 @@ vVc qYo qYo qYo -aad -aad +qYo +qYo geN -aad -aad +qYo +qYo kpR geN kpR @@ -153648,7 +153479,7 @@ lCQ krO jrA aaa -aad +qYo aaa bRF gby @@ -153686,7 +153517,7 @@ qYo lvw qYo efQ -aad +qYo uKw nzk rwu @@ -153715,27 +153546,27 @@ qYo qYo aaa aaa -aad +qYo aaa aaa -aad +qYo vVc aaa aaa aaa aaa -aad +qYo geN -aad +qYo aaa kpR geN kpR -aad +qYo kpR geN kpR -aad +qYo kpR geN kpR @@ -153748,7 +153579,7 @@ aaa aaa aaa aaa -eqU +aaa aaa aaa aaa @@ -153904,9 +153735,9 @@ eHO vip vhW qIH -aad -aad -aad +qYo +qYo +qYo bRF jst cLX @@ -153916,7 +153747,7 @@ aVo ida hMg bRF -aad +qYo xNe aaa lvw @@ -153961,7 +153792,7 @@ oHe uKw aaa spV -aad +qYo aaa mfC pEx @@ -153972,19 +153803,19 @@ qYo qYo aaa aaa -aad +qYo aaa aaa -aad +qYo vVc aaa aaa aaa aaa -aad -mAv -aad -aad +qYo +sKy +qYo +qYo kpR geN kpR @@ -154163,7 +153994,7 @@ jrA qIH qIH qIH -aad +qYo kOA bVT dmB @@ -154200,13 +154031,13 @@ qYo aaa aaa efQ -aad +qYo uKw swP beP oRk uKw -aad +qYo mNC mNC mfC @@ -154219,7 +154050,7 @@ mfC mfC fIQ fIQ -aad +qYo mfC xGv dHX @@ -154229,7 +154060,7 @@ qYo qYo aaa aaa -aad +qYo aaa hUm vpk @@ -154246,9 +154077,9 @@ kpR geN kpR aaa -aad +qYo geN -aad +qYo aaa kpR geN @@ -154420,7 +154251,7 @@ kLR qIH xFP qIH -aad +qYo kOA kOA gIw @@ -154430,7 +154261,7 @@ okz nGO kOA kOA -aad +qYo efQ aaa efQ @@ -154456,7 +154287,7 @@ uHd qYo uHd qYo -aad +qYo dTS uKw mfC @@ -154499,20 +154330,20 @@ qYo sKy qYo aaa -aad +qYo geN -aad -aad -aad -mAv -aad -aad -aad +qYo +qYo +qYo +sKy +qYo +qYo +qYo geN -aad +qYo aaa aaa -aad +qYo aaa efQ aaa @@ -154677,7 +154508,7 @@ aWb jgc hDc arz -abj +vVc aaa kOA cPR @@ -154687,7 +154518,7 @@ mgv cPR kOA aaa -aad +qYo efQ aaa efQ @@ -154714,7 +154545,7 @@ aaa uHd aaa efQ -aad +qYo uKw aaa sgI @@ -154736,9 +154567,9 @@ fIQ aaa mfC qYo -aad -aad -aad +qYo +qYo +qYo qYo qYo aaa @@ -154755,18 +154586,18 @@ vVc vVc sKy sKy -mAv -mAv -mAv -mAv -mAv -mAv -mAv -mAv -mAv +sKy +sKy +sKy +sKy +sKy +sKy +sKy +sKy +sKy wct -mAv -mAv +sKy +sKy geN geN dwr @@ -154934,7 +154765,7 @@ xmO qIH gJk qIH -aad +qYo aaa kOA gxW @@ -154944,7 +154775,7 @@ aNq rON kOA aaa -aad +qYo efQ qYo lvw @@ -154977,7 +154808,7 @@ aaa aaa aaa vGy -aad +qYo lAY cFG cFF @@ -154990,7 +154821,7 @@ cFF cFF cTi qOn -aad +qYo uKw qYo efQ @@ -155013,17 +154844,17 @@ aaa aaa qYo aaa -aad +qYo geN -aad -aad -aad -mAv -aad -aad -aad +qYo +qYo +qYo +sKy +qYo +qYo +qYo geN -aad +qYo aaa aaa qYo @@ -155174,7 +155005,7 @@ aaa aaa aaa aaa -aad +qYo aaa aaa bCC @@ -155191,8 +155022,8 @@ tsM bSJ gJk aaa -aad -aad +qYo +qYo kOA vCU bil @@ -155200,8 +155031,8 @@ wae pQd jjW kOA -aad -aad +qYo +qYo aaa qYo aaa @@ -155229,7 +155060,7 @@ aaa aaa efQ aaa -aad +qYo aaa aaa aaa @@ -155253,7 +155084,7 @@ qYo efQ aaa aaa -aad +qYo aaa aaa aaa @@ -155274,9 +155105,9 @@ kpR geN kpR aaa -aad +qYo geN -aad +qYo aaa kpR geN @@ -155346,7 +155177,267 @@ aaa aaa aaa "} -(223,1,1) = {" +(223,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +qYo +uHd +uHd +uHd +qYo +xNe +qYo +qYo +qYo +eHO +eHO +eHO +eHO +eHO +edh +gku +oML +eHO +tuW +tJn +wIO +jrA +aaa +qYo +aaa +kOA +rwF +xtj +iHy +yfO +ykh +kOA +aaa +qYo +qYo +efQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +qYo +aaa +qYo +aaa +aaa +aaa +mfC +aaa +mNC +cFF +cFF +cFF +cFF +cFF +cFF +cFF +cFF +cFF +cFF +fIQ +aaa +mfC +qYo +qYo +aaa +aaa +qYo +aaa +aaa +aaa +aaa +aaa +qYo +aaa +vVc +aaa +aaa +qYo +qYo +aaa +aaa +qYo +qYo +kpR +geN +kpR +aaa +kpR +geN +kpR +aaa +kpR +geN +kpR +aaa +efQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(224,1,1) = {" +aaa +aaa +aaa aaa aaa aaa @@ -155425,43 +155516,39 @@ aaa aaa aaa aaa +aaa +aaa +efQ +efQ +efQ +aaa qYo -uHd -uHd -uHd qYo -aFo -aad -aad -aad -eHO -eHO -eHO -eHO +qYo +aaa eHO -edh -gku -oML +skQ +rju +rQv eHO -tuW -tJn -wIO -jrA +trW +abr +isL +gJk aaa -aad +efQ aaa kOA -rwF -xtj -iHy -yfO -ykh +kOA +nSR +nSR +nSR +kOA kOA aaa -aad -qYo efQ aaa +efQ aaa aaa aaa @@ -155484,11 +155571,12 @@ aaa aaa aaa aaa -aad aaa -aad +efQ aaa +qYo aaa +aJC aaa mfC aaa @@ -155507,38 +155595,38 @@ fIQ aaa mfC qYo -aad -aaa +efQ aaa -aad aaa +qYo aaa aaa aaa aaa qYo -aaa +efQ +efQ vVc -aaa -aaa +efQ qYo qYo aaa aaa -qYo -aad +aaa +efQ +aaa kpR geN kpR -aaa +qYo kpR geN kpR -aaa +qYo kpR geN kpR -aaa +qYo efQ aaa aaa @@ -155603,7 +155691,8 @@ aaa aaa aaa "} -(224,1,1) = {" +(225,1,1) = {" +aaa aaa aaa aaa @@ -155687,35 +155776,34 @@ aaa aaa aaa aaa -efQ -efQ -efQ aaa qYo qYo -qYo +efQ +efQ +efQ aaa eHO -skQ -rju -rQv eHO -trW -abr -isL +eHO +eHO +eHO +qzX +iud +qzX gJk aaa -efQ +qYo aaa -kOA -kOA -nSR -nSR -nSR -kOA -kOA +jUT +qYo aaa -efQ +qYo +aaa +qYo +jUT +aaa +qYo aaa efQ aaa @@ -155742,16 +155830,15 @@ aaa aaa aaa efQ +qYo +qYo aaa -aad -aaa -aJC aaa -mfC aaa -mNC -cFF -cFF +uKw +qYo +lAY +bnS cFF cFF cFF @@ -155760,45 +155847,44 @@ cFF cFF cFF cFF -fIQ -aaa -mfC +xVV +qOn +qYo +uKw qYo efQ -aaa -aaa -aad -aaa -aaa -aaa -aaa qYo efQ efQ -vVc efQ qYo +efQ +efQ +qYo +aaa +aaa +vVc +aaa +aaa qYo aaa aaa aaa efQ -aaa +qYo kpR geN kpR -aad +aaa kpR geN kpR -aad +aaa kpR geN kpR -aad -efQ -aaa aaa +qYo aaa aaa aaa @@ -155859,10 +155945,10 @@ aaa aaa aaa aaa -"} -(225,1,1) = {" aaa aaa +"} +(226,1,1) = {" aaa aaa aaa @@ -155946,36 +156032,37 @@ aaa aaa aaa aaa -qYo -qYo -efQ -efQ -efQ aaa -eHO -eHO -eHO -eHO -eHO -qzX -iud -qzX -gJk aaa -aad +vVc +vVc aaa -jUT -aad aaa -aad +qYo +qYo +qYo aaa -aad -jUT aaa qYo -aaa +gJk +cBD +hms +qLF +gJk +pOQ +qYo +efQ +efQ +qYo +efQ +efQ +xNe efQ +efQ +efQ +qYo aaa +qYo aaa aaa aaa @@ -155998,16 +156085,16 @@ aaa aaa aaa aaa -efQ -aad -aad aaa +lvw aaa +qYo +vVc +vVc +vVc +mfC aaa -uKw -aad -lAY -bnS +mNC cFF cFF cFF @@ -156016,31 +156103,32 @@ cFF cFF cFF cFF -xVV -qOn -aad -uKw +cFF +cFF +fIQ +aaa +mfC qYo efQ +aaa +aaa qYo -efQ -efQ -efQ +aaa +aaa qYo -efQ -efQ +aaa qYo aaa aaa vVc aaa aaa -qYo -aaa +efQ aaa aaa -efQ qYo +efQ +aaa kpR geN kpR @@ -156053,7 +156141,7 @@ kpR geN kpR aaa -qYo +efQ aaa aaa aaa @@ -156117,32 +156205,7 @@ aaa aaa aaa "} -(226,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +(227,1,1) = {" aaa aaa aaa @@ -156203,35 +156266,11 @@ aaa aaa aaa aaa -vVc -vVc aaa aaa -qYo -qYo -qYo aaa aaa -aad -gJk -cBD -hms -qLF -gJk -pOQ -aad -efQ -efQ -qYo -efQ -efQ -xNe -efQ -efQ -efQ -qYo aaa -qYo aaa aaa aaa @@ -156255,221 +156294,13 @@ aaa aaa aaa aaa -lvw aaa -aad vVc vVc vVc -mfC -aaa -mNC -cFF -cFF -cFF -cFF -cFF -cFF -cFF -cFF -cFF -cFF -fIQ -aaa -mfC -qYo -efQ -aaa -aaa -qYo -aaa -aaa -qYo -aaa -qYo -aaa -aaa -vVc -aaa aaa efQ -aaa -aaa qYo -efQ -aaa -kpR -geN -kpR -aaa -kpR -geN -kpR -aaa -kpR -geN -kpR -aaa -efQ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(227,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -vVc -vVc -vVc -aaa -efQ -aad gJk qzX uqJ @@ -156514,10 +156345,10 @@ aaa aaa efQ efQ -aad -aad -aad -aad +qYo +qYo +qYo +qYo mfC aaa mNC @@ -156535,7 +156366,7 @@ fIQ aaa mfC qYo -aad +qYo qYo efQ efQ @@ -156726,7 +156557,7 @@ aaa aaa aaa efQ -aad +qYo gJk aaa sgI @@ -156771,10 +156602,10 @@ aaa aaa aaa aaa -aad -aad +qYo +qYo aaa -aad +qYo mfC aaa mNC @@ -156812,7 +156643,7 @@ qYo qYo efQ efQ -aad +qYo efQ efQ aaa @@ -157024,14 +156855,14 @@ aaa aaa aaa aaa -eqU +aaa aaa aaa efQ efQ -aad +qYo aaa -aad +qYo mfC aaa qYo @@ -157045,7 +156876,7 @@ urF uKw aaa spV -aad +qYo aaa mfC qYo @@ -157286,7 +157117,7 @@ aaa aaa aaa efQ -aad +qYo aaa uOC uKw @@ -157545,12 +157376,12 @@ aaa aaa aaa aaa -aad -aad -aad -aad -aad -aad +qYo +qYo +qYo +qYo +qYo +qYo mfC wSW hzK @@ -157558,12 +157389,12 @@ ond mJW fIQ qYo -aad qYo qYo qYo qYo -aad +qYo +qYo aaa aaa aaa @@ -157747,7 +157578,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -157802,11 +157633,11 @@ aaa aaa aaa aaa -aad +qYo efQ efQ aaa -aad +qYo qYo uKw rLt @@ -157815,7 +157646,7 @@ dhM vWR uKw qYo -aad +qYo aaa efQ efQ @@ -159125,7 +158956,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -159565,7 +159396,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa @@ -159580,7 +159411,7 @@ aaa aaa aaa aaa -aab +wVj aaa aaa aaa diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index ad42c3f07f89..5cff06f96833 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -7,7 +7,7 @@ "aao" = ( /obj/structure/sign/warning/radiation/rad_area/directional/north, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "aap" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -858,13 +858,6 @@ }, /turf/open/floor/plating, /area/station/engineering/lobby) -"aoc" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/item/radio/intercom/directional/west, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "aog" = ( /obj/machinery/light/floor, /turf/open/floor/iron, @@ -1441,7 +1434,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "atI" = ( /obj/structure/table/glass, /obj/item/shovel/spade, @@ -2238,6 +2231,10 @@ /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, /area/station/cargo/warehouse) +"aEX" = ( +/obj/structure/cable, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "aEY" = ( /obj/structure/railing/corner, /turf/open/floor/iron/dark/textured, @@ -2972,13 +2969,7 @@ /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) "aPM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, +/turf/open/water/no_planet_atmos, /area/station/service/hydroponics/garden) "aPN" = ( /obj/structure/cable, @@ -3233,6 +3224,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"aTf" = ( +/obj/structure/fence/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "aTj" = ( /obj/structure/table, /obj/item/storage/belt/utility, @@ -4194,7 +4191,7 @@ width = 12 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "bfU" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -4614,9 +4611,8 @@ /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) "blA" = ( -/obj/machinery/hydroponics/soil, /obj/machinery/light/directional/west, -/turf/open/floor/grass, +/turf/open/water/no_planet_atmos/deep, /area/station/service/hydroponics/garden) "blM" = ( /obj/effect/turf_decal/siding/wood{ @@ -5579,7 +5575,7 @@ dir = 6 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "bxb" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -5712,7 +5708,7 @@ dir = 8 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "bzc" = ( /obj/machinery/status_display/evac/directional/east, /obj/effect/turf_decal/tile/blue, @@ -5726,6 +5722,10 @@ dir = 4 }, /area/station/hallway/secondary/entry) +"bzq" = ( +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "bzs" = ( /obj/effect/decal/cleanable/blood/oil, /obj/item/stack/ore/glass, @@ -6004,7 +6004,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "bDu" = ( /turf/closed/wall/r_wall, /area/station/security/lockers) @@ -6231,7 +6231,7 @@ /area/station/command/bridge) "bGm" = ( /obj/machinery/firealarm/directional/south, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 }, @@ -6721,6 +6721,12 @@ }, /turf/open/floor/iron, /area/station/command/bridge) +"bNd" = ( +/obj/structure/fence/door{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "bNy" = ( /obj/item/toy/snowball{ pixel_x = 9; @@ -7110,11 +7116,11 @@ /turf/open/floor/wood/parquet, /area/station/service/bar/atrium) "bSz" = ( -/obj/structure/railing{ +/obj/structure/fence{ dir = 8 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "bSH" = ( /obj/effect/landmark/start/hangover, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8179,19 +8185,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/cmo) -"cgw" = ( -/obj/structure/table/glass, -/obj/item/hatchet, -/obj/item/cultivator, -/obj/item/crowbar, -/obj/item/reagent_containers/cup/watering_can, -/obj/item/plant_analyzer, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "cgC" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -9241,7 +9234,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "cwr" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /turf/open/floor/plating, @@ -10753,7 +10746,7 @@ dir = 6 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "cSE" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -10915,7 +10908,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "cXc" = ( /obj/effect/turf_decal/arrows, /turf/open/floor/iron, @@ -11565,6 +11558,12 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/open/floor/iron/large, /area/station/service/hydroponics/garden) "deg" = ( @@ -12661,6 +12660,12 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"dtP" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "dtR" = ( /obj/machinery/light/small/directional/west, /obj/effect/turf_decal/tile/brown/half/contrasted, @@ -12807,7 +12812,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "dwb" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -12974,7 +12979,7 @@ /obj/effect/mapping_helpers/burnt_floor, /obj/effect/turf_decal/weather/snow, /turf/open/floor/plating/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "dyA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible/layer4, /obj/effect/turf_decal/stripes/line, @@ -13636,11 +13641,9 @@ /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) "dHF" = ( -/obj/structure/railing, -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/structure/flora/grass/green/style_random, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "dHJ" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line, @@ -14314,13 +14317,9 @@ /turf/open/floor/iron, /area/mine/production) "dTI" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/structure/fake_stairs/wood/directional/north, -/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/structure/sign/warning/docking/directional/north, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "dTW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -14702,11 +14701,6 @@ dir = 8 }, /area/mine/eva) -"dZJ" = ( -/obj/machinery/seed_extractor, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "dZN" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -15626,11 +15620,12 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "enX" = ( -/obj/structure/railing{ - dir = 6 +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/effect/turf_decal/weather/snow/corner, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "enY" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/access/any/engineering/external, @@ -15978,6 +15973,12 @@ /obj/effect/turf_decal/siding/green{ dir = 4 }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "esC" = ( @@ -16287,6 +16288,12 @@ "exw" = ( /turf/closed/wall, /area/station/service/hydroponics) +"exC" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "exL" = ( /obj/item/trash/cheesie, /obj/effect/decal/cleanable/dirt, @@ -16692,7 +16699,7 @@ name = "Mix to Space" }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "eDM" = ( /obj/machinery/door/airlock/command/glass{ name = "Head of Security" @@ -16869,6 +16876,12 @@ }, /turf/open/floor/iron/freezer, /area/station/science/xenobiology) +"eGT" = ( +/obj/structure/fence/cut/large{ + dir = 1 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "eGV" = ( /obj/effect/spawner/random/lavaland_mob/raptor, /turf/open/misc/asteroid/snow/icemoon, @@ -16932,7 +16945,7 @@ dir = 6 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "eHT" = ( /obj/structure/cable, /obj/effect/spawner/random/structure/steam_vent, @@ -17698,6 +17711,8 @@ /obj/item/seeds/watermelon, /obj/structure/table/glass, /obj/item/seeds/tower, +/obj/item/storage/toolbox/fishing, +/obj/item/fishing_rod, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) "eUm" = ( @@ -17751,6 +17766,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "eUB" = ( @@ -17873,7 +17891,7 @@ dir = 9 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "eVI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /turf/open/floor/iron, @@ -18388,7 +18406,7 @@ dir = 9 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fcQ" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/nitrous_input{ dir = 8 @@ -18416,7 +18434,7 @@ }, /obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fde" = ( /obj/structure/table, /obj/item/paper{ @@ -18712,7 +18730,7 @@ /obj/machinery/light/small/directional/north, /obj/structure/sign/warning/secure_area/directional/north, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fij" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -19057,7 +19075,7 @@ width = 32 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fmr" = ( /obj/effect/turf_decal/siding/yellow/end{ dir = 4 @@ -19298,6 +19316,10 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron, /area/station/commons/locker) +"fri" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "fro" = ( /obj/structure/cable/multilayer/multiz, /obj/effect/turf_decal/stripes/line{ @@ -19452,6 +19474,12 @@ /obj/item/storage/box/prisoner, /turf/open/floor/iron/showroomfloor, /area/station/security/processing) +"ftE" = ( +/obj/machinery/light/directional/east, +/obj/machinery/newscaster/directional/east, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "ftJ" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -19536,10 +19564,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "fuZ" = ( -/obj/structure/railing, -/obj/structure/flora/tree/pine/style_random, +/obj/structure/fence{ + dir = 4 + }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fvj" = ( /obj/structure/rack, /obj/item/circuitboard/machine/exoscanner{ @@ -19630,11 +19659,8 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "fwx" = ( -/obj/structure/flora/tree/pine/style_random, -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "fwB" = ( /turf/closed/mineral/snowmountain/coldroom, /area/station/service/kitchen/coldroom) @@ -19912,7 +19938,7 @@ "fAW" = ( /obj/structure/fence/door/opened, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fBc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/yellow/line, @@ -20025,7 +20051,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fCW" = ( /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark/textured, @@ -20622,7 +20648,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fLQ" = ( /obj/machinery/computer/operating{ dir = 8 @@ -20824,7 +20850,7 @@ dir = 6 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "fPb" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -21429,16 +21455,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/stone, /area/station/service/bar/atrium) -"fYE" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/modular_computer/preset/id{ - dir = 1 - }, -/obj/item/paper/fluff/ids_for_dummies, -/turf/open/floor/iron, -/area/station/command/heads_quarters/hop) "fYH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21772,7 +21788,7 @@ "gcT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "gcU" = ( /obj/structure/railing/corner/end/flip{ dir = 4 @@ -21912,16 +21928,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"geZ" = ( -/obj/structure/sink/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "gfb" = ( /turf/closed/wall/r_wall, /area/station/maintenance/central/greater) @@ -22904,7 +22910,7 @@ dir = 9 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "gsN" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -22934,7 +22940,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "gti" = ( /turf/open/openspace, /area/station/maintenance/starboard/aft) @@ -24161,6 +24167,12 @@ dir = 8 }, /area/station/medical/morgue) +"gMp" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "gMq" = ( /obj/machinery/computer/cargo{ dir = 4 @@ -24586,7 +24598,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "gSN" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -25084,6 +25096,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"gZd" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "gZq" = ( /obj/machinery/firealarm/directional/south, /obj/structure/table, @@ -25170,7 +25188,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "haD" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -25376,7 +25394,7 @@ dir = 6 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "heX" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -26234,7 +26252,7 @@ /obj/effect/mapping_helpers/burnt_floor, /obj/effect/turf_decal/weather/snow, /turf/open/floor/plating/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hsr" = ( /obj/structure/table/wood, /obj/item/newspaper, @@ -26447,6 +26465,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"hvA" = ( +/obj/structure/sign/warning/docking/directional/north, +/obj/structure/flora/grass/green/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "hvQ" = ( /obj/effect/spawner/random/trash/mess, /turf/open/floor/stone, @@ -27014,7 +27037,7 @@ shuttle_id = "pod_4_lavaland" }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hDK" = ( /turf/open/floor/iron, /area/mine/laborcamp) @@ -27248,8 +27271,11 @@ /turf/open/floor/iron/dark/smooth_half, /area/station/medical/morgue) "hHG" = ( -/turf/open/cliff/snowrock, -/area/icemoon/surface/outdoors/nospawn) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "hHI" = ( /obj/machinery/chem_dispenser, /obj/effect/turf_decal/tile/yellow/full, @@ -27574,11 +27600,11 @@ dir = 5 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hMQ" = ( /obj/structure/sign/warning/xeno_mining/directional/east, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hMS" = ( /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -27887,7 +27913,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hQW" = ( /obj/machinery/duct, /turf/open/floor/plating, @@ -28488,7 +28514,7 @@ }, /obj/structure/flora/grass/both/style_random, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hZJ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -28504,7 +28530,7 @@ "hZN" = ( /obj/structure/sign/warning/secure_area/directional/west, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "hZQ" = ( /obj/item/stack/sheet/iron/five, /turf/open/floor/plating, @@ -29624,7 +29650,7 @@ /obj/structure/cable, /obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "ipU" = ( /obj/structure/table/wood, /obj/structure/secure_safe/directional/east, @@ -30909,7 +30935,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "iMb" = ( /obj/structure/railing/corner, /turf/open/floor/stone, @@ -31048,6 +31074,12 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"iOh" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "iOs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/airalarm/directional/south, @@ -31626,7 +31658,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "iXh" = ( /obj/machinery/vending/cigarette, /obj/machinery/firealarm/directional/east{ @@ -32838,11 +32870,14 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "jpx" = ( -/obj/structure/railing{ - dir = 10 +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 }, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "jpy" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -32942,7 +32977,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "jqE" = ( /obj/structure/table, /obj/item/book/manual/wiki/grenades, @@ -32976,7 +33011,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "jrQ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/firealarm/directional/north, @@ -33400,6 +33435,18 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/icemoon, /area/station/science/ordnance/bomb/planet) +"jxI" = ( +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/crowbar, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/cup/watering_can, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "jyl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33842,7 +33889,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "jEU" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -33930,7 +33977,7 @@ pixel_y = 32 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "jHe" = ( /obj/structure/table/wood, /turf/open/floor/wood/parquet, @@ -33961,6 +34008,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"jHS" = ( +/obj/structure/fence/corner{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "jHX" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -34250,7 +34303,7 @@ pixel_y = 32 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "jKY" = ( /turf/closed/mineral/random/snow/high_chance, /area/icemoon/underground/unexplored/rivers/deep/shoreline) @@ -35205,7 +35258,7 @@ /area/station/commons/storage/mining) "jYG" = ( /obj/structure/window/reinforced/spawner/directional/north, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 }, @@ -35404,11 +35457,6 @@ }, /turf/open/floor/iron, /area/mine/laborcamp) -"kby" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/extinguisher_cabinet/directional/east, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "kbJ" = ( /obj/machinery/field/generator, /turf/open/floor/plating, @@ -36780,7 +36828,7 @@ dir = 6 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "kub" = ( /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/dark, @@ -37187,7 +37235,7 @@ dir = 4 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "kAQ" = ( /obj/effect/turf_decal/tile/bar/opposingcorners, /obj/machinery/status_display/evac/directional/north, @@ -37403,8 +37451,8 @@ /turf/open/floor/iron, /area/station/cargo/sorting) "kDs" = ( -/turf/closed/mineral/snowmountain/cavern/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "kDu" = ( /obj/machinery/reagentgrinder, /obj/structure/table, @@ -38228,6 +38276,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "kPH" = ( @@ -39534,10 +39585,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/chapel) "liV" = ( -/obj/structure/chair/sofa/bench/left, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/structure/fence/post{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "ljl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40114,7 +40166,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "lqG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40875,6 +40927,9 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/carpet, /area/station/service/library) +"lBq" = ( +/turf/closed/wall, +/area/icemoon/surface/outdoors/less_spawns) "lBt" = ( /obj/machinery/newscaster/directional/south, /obj/effect/turf_decal/tile/red{ @@ -40922,6 +40977,12 @@ /obj/effect/turf_decal/siding/green{ dir = 4 }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "lCc" = ( @@ -41465,6 +41526,10 @@ "lIW" = ( /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) +"lJc" = ( +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "lJg" = ( /obj/structure/closet/crate/trashcart/laundry, /obj/machinery/light/small/directional/north, @@ -41746,7 +41811,7 @@ }, /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "lOJ" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -41907,6 +41972,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/textured, /area/mine/mechbay) +"lQi" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 5 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "lQq" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42364,6 +42435,16 @@ dir = 4 }, /area/mine/production) +"lYj" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/structure/table/wood, +/obj/item/storage/bag/plants, +/obj/item/plant_analyzer, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "lYR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -42936,7 +43017,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "mgD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/engine, @@ -43074,7 +43155,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "mka" = ( /obj/machinery/computer/turbine_computer{ dir = 1; @@ -43112,7 +43193,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "mld" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -43698,6 +43779,12 @@ }, /turf/open/floor/iron/dark/side, /area/mine/eva) +"mtW" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "mua" = ( /obj/structure/railing{ dir = 4 @@ -43720,12 +43807,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/atmos/storage) -"mut" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/light/directional/east, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "muv" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/west, @@ -44311,8 +44392,7 @@ /turf/open/floor/wood/large, /area/station/service/chapel) "mCT" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, +/turf/open/water/no_planet_atmos/deep, /area/station/service/hydroponics/garden) "mDf" = ( /obj/machinery/telecomms/server/presets/common, @@ -44650,7 +44730,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "mIc" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ pixel_y = 0; @@ -45632,18 +45712,6 @@ /obj/machinery/light/built/directional/east, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) -"mZu" = ( -/obj/structure/table/glass, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/item/crowbar, -/obj/item/plant_analyzer, -/obj/item/reagent_containers/cup/watering_can, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "mZG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, @@ -45888,7 +45956,7 @@ "nce" = ( /obj/structure/sign/warning/fire/directional/north, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nch" = ( /obj/effect/turf_decal/trimline/neutral/mid_joiner{ dir = 4 @@ -46910,7 +46978,7 @@ "nqb" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nqd" = ( /obj/structure/table/optable, /obj/machinery/newscaster/directional/east, @@ -47017,6 +47085,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"nrM" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/effect/spawner/random/food_or_drink/plant_produce, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "nsj" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -47156,6 +47232,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/pink, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"nui" = ( +/obj/structure/marker_beacon/burgundy, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "nuj" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -47323,7 +47403,7 @@ pixel_y = 32 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nwF" = ( /obj/structure/chair/sofa/bench{ dir = 4 @@ -47749,7 +47829,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nBG" = ( /obj/item/cigbutt, /obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ @@ -47827,6 +47907,12 @@ }, /turf/open/floor/iron/smooth, /area/station/commons/storage/mining) +"nCr" = ( +/obj/machinery/seed_extractor, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/spawner/random/food_or_drink/seed_flowers, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "nCs" = ( /obj/structure/chair/stool/directional/north, /obj/structure/cable, @@ -48103,7 +48189,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nFU" = ( /obj/structure/chair/stool/directional/west, /obj/item/trash/energybar, @@ -48499,7 +48585,7 @@ "nMj" = ( /obj/structure/sign/warning/docking/directional/north, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nMu" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -48853,7 +48939,7 @@ "nQr" = ( /obj/structure/sign/warning/docking/directional/north, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nQu" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -49081,7 +49167,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer1, /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nSU" = ( /obj/structure/sign/poster/random/directional/north, /obj/effect/spawner/random/structure/crate, @@ -49155,7 +49241,7 @@ pixel_y = 32 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "nUg" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 1 @@ -49509,7 +49595,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "oaR" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -51186,7 +51272,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "oxU" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -51344,6 +51430,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"ozy" = ( +/obj/structure/fence/cut/large{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "ozA" = ( /obj/structure/closet/secure_closet/research_director, /obj/effect/turf_decal/stripes/line{ @@ -51884,7 +51976,7 @@ "oFc" = ( /obj/structure/sign/warning/directional/north, /turf/open/openspace/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "oFd" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 1 @@ -52530,7 +52622,7 @@ dir = 5 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "oOD" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -52882,7 +52974,7 @@ dir = 5 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "oUh" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 @@ -53383,7 +53475,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "pcc" = ( /obj/item/stack/spacecash/c10{ pixel_x = 4; @@ -56149,7 +56241,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "pPB" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/trimline/green/filled/line{ @@ -56481,10 +56573,8 @@ /turf/open/floor/iron/white/side, /area/station/science/explab) "pUa" = ( -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/genturf, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +/turf/open/openspace/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "pUi" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -56736,7 +56826,7 @@ "pXY" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "pXZ" = ( /obj/structure/chair/stool/directional/north, /turf/open/floor/iron, @@ -57793,6 +57883,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/morgue) +"qmN" = ( +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "qmU" = ( /obj/machinery/duct, /obj/structure/cable, @@ -57924,6 +58021,13 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/white, /area/station/medical/surgery/aft) +"qpc" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "qpd" = ( /obj/effect/landmark/blobstart, /obj/structure/disposalpipe/segment{ @@ -58223,7 +58327,7 @@ "qtD" = ( /obj/structure/sign/warning/directional/south, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "qtH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -58263,7 +58367,7 @@ "quy" = ( /obj/structure/flora/grass/both/style_random, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "quB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -58583,11 +58687,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/miningdock) -"qzn" = ( -/obj/structure/chair/sofa/bench/right, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "qzs" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58740,7 +58839,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "qCF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59103,7 +59202,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "qHj" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -59924,11 +60023,11 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "qRv" = ( -/obj/structure/railing, -/obj/structure/marker_beacon/cerulean, -/obj/structure/flora/tree/pine/style_random, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "qRE" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -60066,12 +60165,15 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "qTs" = ( @@ -60444,6 +60546,24 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"qYO" = ( +/obj/item/reagent_containers/spray/plantbgone, +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/green/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/airalarm/directional/east, +/obj/structure/table/wood, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "qYP" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -60678,6 +60798,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/mine/laborcamp) +"rbV" = ( +/obj/structure/fence/post{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "rbY" = ( /obj/structure/table/reinforced, /obj/item/pipe_dispenser, @@ -60816,6 +60942,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"reh" = ( +/obj/structure/fence/post{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "rej" = ( /obj/machinery/oven/range, /turf/open/floor/plating, @@ -61694,7 +61826,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "rrn" = ( /obj/structure/closet/emcloset, /obj/structure/sign/poster/contraband/random/directional/north, @@ -61763,7 +61895,7 @@ "rsh" = ( /obj/structure/sign/poster/contraband/the_big_gas_giant_truth/directional/north, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "rsw" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -62021,7 +62153,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "rwC" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 9 @@ -63109,7 +63241,7 @@ }, /obj/structure/sign/warning/electric_shock/directional/north, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "rOb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64141,6 +64273,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"scr" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "scu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -64212,13 +64350,13 @@ }, /obj/effect/turf_decal/weather/snow/corner, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "sds" = ( /obj/structure/fence/corner{ dir = 6 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "sdE" = ( /obj/structure/chair/pew/left, /obj/machinery/light/small/directional/west, @@ -64514,7 +64652,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "shR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -64582,7 +64720,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "sjk" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 6 @@ -65588,7 +65726,7 @@ "swu" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "swx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/canister, @@ -66679,7 +66817,7 @@ /obj/structure/flora/tree/pine/style_random, /obj/structure/flora/grass/both/style_random, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "sML" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66752,7 +66890,7 @@ }, /obj/structure/marker_beacon/burgundy, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "sNF" = ( /obj/item/toy/snowball{ pixel_x = -6; @@ -67905,7 +68043,7 @@ /obj/machinery/light/small/directional/north, /obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "tfl" = ( /obj/structure/table/glass, /obj/machinery/reagentgrinder{ @@ -68296,8 +68434,9 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "tkU" = ( -/turf/open/lava/plasma/ice_moon, -/area/icemoon/surface/outdoors/nospawn) +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "tkX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/smooth_large, @@ -68700,6 +68839,11 @@ }, /turf/open/floor/plating/snowed/icemoon, /area/icemoon/surface/outdoors/nospawn) +"tra" = ( +/obj/structure/marker_beacon/burgundy, +/obj/effect/mapping_helpers/no_atoms_ontop, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "trc" = ( /obj/machinery/conveyor{ dir = 4; @@ -69112,6 +69256,9 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"txl" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) "txm" = ( /obj/effect/turf_decal/weather/snow/corner{ dir = 1 @@ -69137,6 +69284,12 @@ /obj/structure/closet/wardrobe/black, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"txT" = ( +/obj/structure/fence/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "txU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -69955,7 +70108,7 @@ dir = 1 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "tJN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70186,7 +70339,7 @@ "tMc" = ( /obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "tMe" = ( /obj/machinery/computer/mechpad{ dir = 1 @@ -70419,7 +70572,7 @@ "tQb" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "tQc" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -70558,16 +70711,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/textured, /area/station/service/kitchen/coldroom) -"tTc" = ( -/obj/item/storage/bag/plants/portaseeder, -/obj/structure/table/glass, -/obj/item/plant_analyzer, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 8 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "tTK" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -70609,6 +70752,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/space_hut/cabin) +"tUm" = ( +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "tUn" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -70963,7 +71110,7 @@ /obj/effect/turf_decal/weather/snow, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "tZb" = ( /obj/effect/spawner/random/structure/shipping_container, /turf/open/floor/plating, @@ -71802,7 +71949,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "umh" = ( /turf/closed/wall/ice, /area/icemoon/surface/outdoors/nospawn) @@ -72140,13 +72287,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/mine/eva/lower) +"uqA" = ( +/obj/structure/fence/corner{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "uqG" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uqS" = ( /obj/structure/chair/stool/directional/east, /obj/effect/spawner/random/trash/mess, @@ -72309,7 +72462,7 @@ /area/station/engineering/supermatter/room) "utC" = ( /turf/open/misc/asteroid/snow/icemoon, -/area/station/cargo/miningdock) +/area/icemoon/surface/outdoors/less_spawns) "utR" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -72792,7 +72945,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uAP" = ( /turf/open/floor/iron/stairs/medium{ dir = 4 @@ -73197,7 +73350,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uGq" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -73515,7 +73668,7 @@ "uMs" = ( /obj/structure/sign/warning/fire/directional/north, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uMx" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -73564,7 +73717,7 @@ "uMW" = ( /obj/structure/sign/warning/directional/west, /turf/open/openspace/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uNq" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -73671,7 +73824,7 @@ dir = 5 }, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uOL" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -74016,7 +74169,7 @@ dir = 10 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "uUM" = ( /obj/machinery/light_switch/directional/south, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -74442,9 +74595,11 @@ /turf/open/floor/wood/large, /area/station/command/heads_quarters/hos) "vbG" = ( -/obj/structure/railing, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "vbO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /obj/item/kirbyplants/random, @@ -74675,6 +74830,10 @@ }, /turf/open/floor/iron, /area/station/science/xenobiology) +"vfr" = ( +/obj/structure/flora/grass/brown/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "vfH" = ( /obj/structure/closet/crate{ name = "Le Caisee D'abeille" @@ -76042,7 +76201,7 @@ "vyU" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "vyW" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -76358,6 +76517,12 @@ /obj/effect/turf_decal/tile/yellow/full, /turf/open/floor/iron/white/smooth_large, /area/station/medical/pharmacy) +"vDi" = ( +/obj/structure/fence/cut/medium{ + dir = 8 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "vDu" = ( /obj/structure/table/glass, /obj/item/biopsy_tool{ @@ -76727,7 +76892,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "vJB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -76758,6 +76923,12 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"vJV" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "vJY" = ( /obj/machinery/door/window/brigdoor/left/directional/west{ name = "Research Director Observation"; @@ -76920,10 +77091,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "vOy" = ( -/obj/structure/fake_stairs/wood/directional/north, -/obj/effect/mapping_helpers/no_atoms_ontop, +/obj/effect/landmark/carpspawn, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "vOD" = ( /obj/machinery/status_display/ai/directional/north, /obj/effect/turf_decal/tile/dark_green{ @@ -77078,6 +77248,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"vRK" = ( +/obj/structure/fence/corner{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "vRN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -77281,7 +77457,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "vUs" = ( /obj/structure/easel, /obj/item/canvas/nineteen_nineteen, @@ -77522,7 +77698,7 @@ "vYq" = ( /obj/structure/barricade/wooden/snowed, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "vYs" = ( /obj/machinery/light/directional/east, /obj/structure/cable, @@ -77934,7 +78110,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "wfn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78626,6 +78802,15 @@ /obj/structure/cable, /turf/open/floor/iron/textured, /area/station/medical/chem_storage) +"wqn" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/modular_computer/preset/id{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/hop) "wqo" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/railing/corner{ @@ -78814,20 +78999,6 @@ /obj/structure/flora/grass/brown/style_2, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/surface/outdoors/nospawn) -"wtr" = ( -/obj/structure/table/glass, -/obj/item/food/grown/wheat, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/citrus/orange, -/obj/item/food/grown/grapes, -/obj/item/food/grown/cocoapod, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "wtv" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/plating/snowed/smoothed/icemoon, @@ -79106,6 +79277,10 @@ /obj/effect/decal/cleanable/blood/oil, /turf/open/floor/plating, /area/station/maintenance/fore) +"wyi" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "wyj" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/trimline/blue/filled/line, @@ -79411,24 +79586,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/engineering/atmos/mix) -"wCL" = ( -/obj/item/reagent_containers/spray/plantbgone, -/obj/item/reagent_containers/spray/pestspray{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/bottle/nutrient/ez, -/obj/item/reagent_containers/cup/bottle/nutrient/rh{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/green/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics/garden) "wCN" = ( /obj/machinery/portable_atmospherics/canister, /obj/structure/extinguisher_cabinet/directional/east, @@ -79475,16 +79632,6 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"wDf" = ( -/obj/structure/sink/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "wDg" = ( /turf/open/floor/iron, /area/station/engineering/atmos/storage) @@ -79508,13 +79655,11 @@ /turf/open/floor/plating, /area/station/maintenance/aft/greater) "wDS" = ( -/obj/structure/railing{ +/obj/structure/fence/door{ dir = 8 }, -/obj/structure/fake_stairs/wood/directional/north, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "wDU" = ( /turf/closed/wall/r_wall, /area/mine/eva/lower) @@ -79982,7 +80127,7 @@ "wLW" = ( /obj/effect/landmark/atmospheric_sanity/mark_all_station_areas_as_goal, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "wLX" = ( /obj/effect/turf_decal/plaque{ icon_state = "L11" @@ -80012,7 +80157,7 @@ dir = 8 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "wMi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -80109,8 +80254,9 @@ /turf/open/floor/wood, /area/station/service/library) "wNO" = ( -/turf/open/genturf, -/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +/obj/structure/flora/rock/pile/icy/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "wNR" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -81305,7 +81451,7 @@ "xeg" = ( /obj/effect/turf_decal/weather/snow/corner, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xem" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/west, @@ -81679,7 +81825,7 @@ dir = 6 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xhD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -81692,6 +81838,12 @@ "xhK" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) +"xhM" = ( +/obj/structure/fence{ + dir = 2 + }, +/turf/open/floor/plating/snowed/smoothed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "xhV" = ( /obj/machinery/duct, /turf/open/floor/wood, @@ -82282,6 +82434,13 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron, /area/station/engineering/main) +"xrh" = ( +/obj/item/toy/snowball{ + pixel_x = -6; + pixel_y = -4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "xri" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -82465,7 +82624,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xuW" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 @@ -83246,7 +83405,7 @@ "xEn" = ( /obj/structure/sign/warning/secure_area/directional/north, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xEF" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -83530,6 +83689,19 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/science/server) +"xIL" = ( +/obj/item/hatchet, +/obj/item/cultivator, +/obj/item/crowbar, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/plant_analyzer, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "xIO" = ( /obj/machinery/light/small/dim/directional/east, /obj/structure/railing{ @@ -83743,7 +83915,7 @@ dir = 9 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xLT" = ( /obj/effect/turf_decal/siding/white, /obj/effect/turf_decal/tile/blue/opposingcorners, @@ -83888,7 +84060,7 @@ /obj/structure/marker_beacon/burgundy, /obj/effect/mapping_helpers/no_atoms_ontop, /turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xOQ" = ( /obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ @@ -84161,6 +84333,11 @@ }, /turf/open/floor/iron/large, /area/station/hallway/primary/port) +"xSM" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "xTp" = ( /obj/machinery/camera/directional/south{ c_tag = "Solar Maintenance - North East" @@ -84504,10 +84681,14 @@ }, /area/station/engineering/atmos/storage/gas) "xXk" = ( -/obj/structure/railing, -/obj/structure/flora/grass/green/style_random, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/obj/effect/turf_decal/weather/snow/corner{ + dir = 4 + }, +/obj/effect/turf_decal/weather/snow/corner{ + dir = 8 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/icemoon/surface/outdoors/less_spawns) "xXz" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 4; @@ -84541,7 +84722,7 @@ dir = 9 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "xYw" = ( /obj/structure/flora/bush/leavy/style_random, /turf/open/floor/grass, @@ -84605,11 +84786,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/main) -"xZq" = ( -/obj/structure/marker_beacon/cerulean, -/obj/effect/mapping_helpers/no_atoms_ontop, -/turf/open/misc/asteroid/snow/icemoon, -/area/icemoon/surface/outdoors/nospawn) "xZy" = ( /obj/structure/stairs/east, /obj/effect/turf_decal/trimline/neutral/line, @@ -85073,7 +85249,7 @@ dir = 4 }, /turf/open/floor/plating/snowed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "ygf" = ( /obj/structure/bookcase{ name = "Forbidden Knowledge" @@ -85176,7 +85352,7 @@ dir = 2 }, /turf/open/floor/plating/snowed/smoothed/icemoon, -/area/icemoon/surface/outdoors/nospawn) +/area/icemoon/surface/outdoors/less_spawns) "yia" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -216439,13953 +216615,608 @@ tjo "} (1,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln "} (2,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(3,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(4,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(5,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(6,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(7,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(8,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(9,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln "} -(10,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(3,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(11,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(12,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(13,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(14,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(15,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(16,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(17,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(18,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(19,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(20,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(21,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(22,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(23,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(24,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -uer -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(25,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -qzn -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(26,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -liV -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lSu -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lSu -lSu -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(27,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -wDS -wDS -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -oEB -bln -hcw -lSu -oEB -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -oEB -lSu -weW -bln -oEB -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(28,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -dTI -dTI -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -sEB -sEB -sEB -lSu -bln -bln -lSu -bln -bln -bln -bln -bln -lSu -bln -lSu -lSu -sEB -sEB -sEB -lSu -bln -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(29,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lSu -bln -sEB -sEB -sEB -lSu -bln -lSu -bln -bln -jNZ -kKU -rzO -lSu -bln -lSu -bln -bln -sEB -sEB -sEB -lSu -bln -mQb -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(30,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -fUR -sEB -sEB -sEB -fUR -bln -bln -bln -jNZ -sEB -sEB -sEB -rzO -bln -bln -bln -fUR -sEB -sEB -sEB -fUR -bln -bln -bln -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(31,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -mQb -bln -fUR -sEB -tqR -sEB -fUR -lSu -oEB -jNZ -sEB -sEB -sEB -sEB -sEB -rzO -oEB -lSu -fUR -sEB -tqR -sEB -fUR -lSu -ntK -bln -uer -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(32,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -mQb -bln -ntK -bln -fUR -fUR -mnu -fUR -fUR -lSu -bln -miY -sEB -sEB -sEB -sEB -sEB -qVo -bln -bln -fUR -fUR -mnu -fUR -fUR -bln -bln -lBD -bln -fsm -stJ -bln -bln -wNO -wNO -wNO -wNO -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(33,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -uer -bln -bln -bln -fUR -mXT -cJt -eWF -fUR -htd -jNZ -sEB -sEB -sEB -sEB -sEB -sEB -qVo -lSu -bln -fUR -mXT -cJt -iMu -fUR -oqJ -bln -lSu -lSu -bln -bln -bln -bln -bln -oEB -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -oEB -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(34,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -stJ -bln -bln -lSu -bln -fUR -fUR -xau -fUR -fUR -gSE -sNA -sEB -sEB -sEB -sEB -sEB -sEB -sEB -rhJ -lSu -fUR -fUR -xau -fUR -fUR -bln -fUR -fUR -fUR -fUR -fUR -htd -bln -bln -bln -lSu -bln -bln -bln -lSu -oEB -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(35,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -mQb -bln -bln -lBD -bln -bln -bln -bln -bln -oEB -lSu -xOk -fUR -kod -kyg -uhx -uhx -uhx -uhx -sEB -sEB -sEB -sEB -sEB -sEB -sEB -uhx -uhx -uhx -uhx -jHX -tLm -fUR -lSu -fUR -kod -gFL -uhx -uhx -uhx -uhx -tMa -lSu -bln -bln -lSu -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(36,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -lBD -bln -lSu -jNZ -kKU -kKU -rzO -uhx -ykb -hAG -dDp -cJt -cJt -jMw -sEB -sEB -sEB -sEB -sEB -sEB -sEB -skc -cJt -cJt -qYz -lnL -otG -uhx -lSu -uhx -ykb -hAG -skc -cJt -cJt -qYz -lSu -lSu -lSu -bln -lSu -bln -bln -lSu -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(37,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -uer -bln -stJ -bln -bln -bln -bln -bln -jNZ -fUR -fUR -nFL -fUR -fUR -ykb -wOy -uhx -uhx -uhx -uhx -sEB -sEB -sEB -sEB -sEB -sEB -sEB -uhx -uhx -uhx -uhx -bzg -otG -uhx -lSu -uhx -ykb -wOy -uhx -uhx -uhx -uhx -lSu -lSu -lSu -lSu -bln -lSu -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(38,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -miY -fUR -eYK -xAk -xaf -fUR -uRx -jdY -rsw -rin -uhx -rcS -sEB -sEB -sEB -sEB -sEB -sEB -sEB -oMa -uhx -pgt -dcG -jXm -otG -uhx -lSu -uhx -ykb -jdY -rsw -phu -uhx -jls -bln -lSu -bln -bln -bln -lSu -bln -bln -bln -lSu -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(39,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -lBD -bln -bln -mQb -bln -bln -miY -mVE -ryM -uee -dJY -qlP -nDJ -sfr -fsv -aZK -uhx -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -uhx -iog -fsv -lFg -dvO -uhx -lSu -uhx -ykb -sfr -fsv -iQX -uhx -qVo -bln -bln -lSu -bln -lSu -bln -lSu -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(40,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lBD -bln -bln -bln -bln -bln -fsm -bln -miY -fUR -fUR -kVA -wWS -mVE -nDJ -fYW -fsv -xdH -uhx -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -qVo -uhx -mgc -fsv -sfr -dvO -uhx -lSu -uhx -ovm -fYW -fsv -asm -uhx -qVo -bln -lSu -bln -lSu -bln -bln -lSu -bln -lSu -bln -bln -bln -bln -oEB -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(41,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -uer -bln -miY -sEB -ydI -nvU -ydI -ydI -btm -fld -ycA -lpH -uhx -vCm -sEB -sEB -sEB -sEB -sEB -sEB -sEB -fiv -uhx -sjz -lKc -uMm -dvO -uhx -lSu -uhx -ovm -fld -ycA -lpH -uhx -pSK -bln -lSu -bln -bln -lSu -lSu -bln -bln -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(42,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -stJ -bln -bln -bln -bln -miY -ydI -ydI -nWM -kHl -mVE -nDJ -wOy -uhx -uhx -uhx -uhx -sEB -sEB -sEB -sEB -sEB -sEB -sEB -uhx -uhx -uhx -uhx -bzg -dvO -uhx -lSu -uhx -ovm -wOy -uhx -uhx -uhx -uhx -bln -lSu -lSu -bln -bln -bln -lSu -bln -lSu -bln -bln -lSu -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(43,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -lBD -bln -lSu -bln -jNZ -kKU -kKU -sEB -mVE -azN -xft -lRg -iaU -nDJ -hAG -dDp -cJt -cJt -jMw -sEB -sEB -sEB -sEB -sEB -sEB -sEB -lAC -cJt -cJt -qYz -lnL -dvO -uhx -lSu -uhx -ovm -uhA -lAC -cJt -cJt -qYz -rNE -lSu -lSu -bln -ozo -bln -bln -bln -bln -bln -lSu -lSu -bln -lSu -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(44,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lBD -bln -bln -bln -bln -bln -lJO -hEI -hEI -biY -biY -rkk -bLs -xRI -ydI -ior -wOy -uhx -uhx -uhx -uhx -sEB -sEB -sEB -sEB -sEB -sEB -sEB -uhx -uhx -uhx -uhx -bzg -oVX -fUR -lSu -fUR -tvm -wOy -uhx -uhx -uhx -uhx -tMa -lSu -lSu -lSu -bln -lSu -bln -bln -lSu -lSu -lSu -bln -lSu -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(45,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -lSu -stJ -bln -lJO -dxI -muv -qVN -biY -biY -biY -biY -ydI -oiD -xVN -fUR -fUR -nMj -chP -sEB -sEB -sEB -prs -sEB -sEB -sEB -fiv -lSu -fUR -fUR -bAo -nAX -fUR -fUR -fUR -qeF -xVN -fUR -fUR -oqJ -bln -bln -lSu -bln -bln -lSu -bln -bln -lSu -bln -bln -bln -lSu -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(46,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -mQb -bln -bln -lJO -lJO -ldJ -nOx -cwe -dIx -laB -laB -lJO -lXA -nDJ -wOy -pGy -fUR -rzO -lSu -mZf -ooL -sEB -sEB -sEB -ooL -rwt -lSu -lSu -fUR -rJr -bzg -dvO -clT -fUR -xce -ovm -wOy -rCU -fUR -bln -uer -bln -oEB -lSu -bln -bln -bln -lSu -oEB -bln -bln -bln -bln -bln -oEB -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(47,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -lBD -lJO -kQg -tLB -bIl -ivi -sbD -hjI -heg -lJO -htq -nDJ -wOy -eyk -fUR -fUR -fUR -fUR -uhx -uhx -uhx -uhx -uhx -fUR -fUR -fUR -fUR -dWl -bzg -dvO -mEv -fUR -gCq -ovm -wOy -eyk -fUR -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(48,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lBD -bln -bln -uer -bln -lJO -kQg -ofc -ylV -gjI -lJO -lJO -lJO -lJO -fUR -lzU -wwi -fUR -fUR -fUR -wUf -iQd -oOP -ccS -ccS -ccS -lVY -hHl -xuW -fUR -fUR -fUR -ePV -eHX -fUR -fUR -fUR -drb -tuD -fUR -fUR -fUR -fUR -rNn -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(49,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -lSu -bln -bln -lJO -lJO -lJO -fRb -lJO -lJO -fjF -qhO -lJO -iVv -qpt -fBQ -syL -vmC -syL -dwb -fsv -cuc -hgr -fbF -hgr -xFs -fsv -cmV -bXx -aui -bXx -btW -jJd -eyj -lGL -bXx -oMq -tEc -iGd -mKJ -vKD -tKI -tKI -tKI -tKI -htd -ntK -bln -lBD -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(50,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -jNZ -mGf -lJO -rrn -nud -hjI -ndz -hjI -xmo -vmx -eTe -nvI -nvI -oTc -nvI -nvI -fwM -fsv -cuc -hgr -hgr -hgr -xFs -fsv -dpU -swK -swK -ubx -swK -swK -swK -wfF -swK -nqD -thX -peM -ddd -mKa -ldw -bCQ -bCQ -tKI -bln -uer -bln -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(51,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -ozo -bln -bln -ntK -bln -lJO -lJO -lJO -pOq -cKe -thY -hjI -ilv -xmo -lJO -fUR -fUR -mVE -fUR -fUR -fUR -kIh -fsv -cuc -hgr -jIp -hgr -xFs -fsv -jLM -fUR -fUR -fUR -ort -ort -fUR -fUR -fUR -mYA -nEA -nwT -nwT -nwT -nwT -tKI -pgE -tKI -bln -lBD -bln -mQb -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(52,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -stJ -bln -lSu -lSu -cyH -hjI -nbj -hjI -uDc -xyO -eUf -aUm -kEY -kEY -qPq -gsN -nwr -owk -gjZ -abv -wdo -alD -ael -kdU -kdU -kdU -jbJ -xvl -jLM -buF -fUR -xxI -juu -juu -lnp -gel -fUR -teE -bKA -nwT -wvJ -tzM -aUM -tKI -bCQ -tKI -tKI -tMa -mQb -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(53,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -lBD -bln -bln -uer -lSu -bln -lJO -lJO -lJO -lJO -uDc -lJO -lJO -fsZ -lJO -lJO -lJO -opS -jIn -nLD -iRo -bvq -kHP -cuc -mVE -mVE -mVE -mVE -mVE -xFs -jLM -dvf -fUR -juu -jNB -qku -ukD -hrh -fUR -wtP -gMt -cut -pGd -bPw -ixb -tKI -jLX -fbY -teN -bln -bln -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -bln -bln -bln -mQb -bln -bln -bln -lSu -lSu -bln -bln -bln -bln -bln -bln -ozo -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(54,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -lJO -lJO -fEd -weL -lJO -uDc -lJO -tEi -dxu -nUh -qjr -lJO -qYA -xnV -qEK -roX -rMu -kHP -cuc -mVE -ich -nAH -nAH -mVE -xFs -jLM -qHO -fUR -nyT -kBU -xgX -juu -gNL -fUR -usU -cTh -iJl -ooa -dWP -bam -erK -rfF -brM -teN -stJ -fsm -bln -bln -bln -bln -bln -bln -bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -bln -bln -bln -mQb -bln -mQb -bln -hAM -lej -eRE -qQk -tTO -bln -mQb -bln -bln -bln -bln -bln -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(55,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -wLW bln bln bln @@ -230393,9 +217224,6 @@ bln bln bln bln -lSu -mQb -mQb bln bln bln @@ -230403,314 +217231,34 @@ bln bln bln bln -mQb -mQb bln bln bln -lSu bln -lJO -cKB -tcR -hjI -lJO -kgy -lJO -rmZ -egT -xiW -lnY -lJO -kyU -qFJ -mWY -hmt -xzo -kHP -cuc -mVE -nAH -nAH -nAH -mVE -xFs -jLM -fnC -vNe -piP -npy -npy -rFb -hrh -fUR -pFW -iNH -aVb -onQ -inQ -jZD -erK -bCQ -pdf -teN bln bln -stJ bln bln bln -ozo bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln bln bln -mQb -uer bln -bvb -tMa bln bln -bvb -tMa -uer -mQb -mQb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(56,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -ozo bln bln bln -hPv -kdS -kdS -eRE -wvw -kdS -kdS -eRE -kdS -kdS -kdS -eRE -qQk -kdS -kdS -kdS -kdS -kdS -eRE -gSd -kdS -lJO -gwM -xdU -nxe -kUn -tba -lJO -hPX -vcc -mXA -waM -lJO -gwq -mWK -isz -roX -iLA -uZT -cuc -mVE -nAH -nAH -nAH -mVE -xFs -jLM -iYy -tma -juu -mxQ -pXU -kSA -vUI -fUR -tkc -nsr -xSl -vxO -qAB -hCY -tKI -npr -uyx -teN bln bln bln @@ -230722,188 +217270,24 @@ bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln bln -mQb -mQb bln bln -lSu -chn bln -cnx bln -chn bln bln -lSu bln -mQb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(57,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln -mQb -fPc bln bln bln @@ -230911,66 +217295,13 @@ bln bln bln bln -muK -mQb bln bln -hty bln -mQb bln -uer -mQb bln bln bln -lJO -eXa -sHO -hjI -lJO -eUf -lJO -nKW -dak -byv -sOY -lJO -bpm -xQs -rqi -iRo -lvW -uTI -cuc -mVE -ich -nAH -nAH -mVE -xFs -bwn -ktW -tKI -tKI -tKI -tKI -tKI -tKI -nwT -goI -nwT -nwT -fZK -wRM -iox -tKI -bCQ -tKI -tKI -tMa -stJ -fsm bln bln bln @@ -230979,251 +217310,22 @@ bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln -mQb -hAM -lej -ujK -vTh -ujK -ujK -obe bln -tmR -mQb -obe -ujK -lej -vTh -qQk -ujK -hAM bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(58,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln -mQb -fPc bln -uei -tmR -uei bln -uei -tmR -uei -mQb -uei -tmR -uei bln -mQb bln bln bln -lSu -mQb bln -lJO -uBX -hjI -hjI -lJO -eUf -lJO -jvj -hKu -aaI -lJO -lJO -oCO -oCO -oCO -oCO -gyH -uTI -cuc -mVE -mVE -mVE -mVE -mVE -xFs -pLn -dpl -tKI -wKu -tXs -ljK -aRe -tKI -hbt -cTD -akK -tKI -tKI -cyA -tKI -tKI -kPq -tKI bln bln bln @@ -231236,251 +217338,34 @@ bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln -vap bln -ntK bln bln bln bln bln -tmR -mQb bln bln bln bln bln -lSu -fPc bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(59,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln -uer bln -bvb -tMa -uei -tmR -uei -mQb -uei -tmR -uei bln -uei -tmR -uei bln bln -lSu bln bln bln bln bln -lJO -lJO -lJO -lJO -lJO -erk -lJO -lJO -lJO -lJO -lJO -mCT -blA -mCT -sGq -oCO -tdp -uTI -kXD -nKk -nKk -sre -nKk -nKk -aWN -pLn -qFs -tKI -mqa -xqj -vsT -gXr -tKI -gec -ihc -sJI -tKI -hsQ -bCQ -eVp -eVp -bCQ -tKI bln bln bln @@ -231493,252 +217378,131 @@ bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln -fPc -mQb -xxB -xxB -xxB -xxB -xxB bln -sEB bln -xxB -xxB -xxB -xxB -xxB -lSu -fPc -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(60,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(4,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln bln -mQb bln bln -ebW -mQb -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln -lSu -lSu -mQb -ntK bln -uer bln -mZm -hEI -qhO -eUf -rgs -eUf -anl -lil -anl -pLZ -lJO -geZ -aPM -aPM -qTm -oCO -oCO -tmL -arG -cIa -dJY -npq -ecU -gkZ -tlO -udA -tKI -tKI -kJO -kjo -kJO -tKI -tKI -stP -vwi -oLo -tKI -iUW -bCQ -tKI -tKI -tKI -tKI -htd bln bln bln @@ -231750,547 +217514,73 @@ bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln -bvb -uer -tmR -tmR -tmR -tmR -tmR -tmR -sEB -tmR -tmR -tmR -tmR -tmR -tmR bln -bvb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(61,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln -fPc bln -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln -lSu bln bln bln bln bln bln -miY -hEI -flD -eUf -hjI -hjt -kkv -hjI -hjI -anl -icY -esv -lCb -ddZ -eUA -aoc -oCO -oCO -oCO -oCO -sll -eyf -sll -tKI -tKI -tKI -tKI -hZo -wBb -xvk -wBb -uZC -tKI -tKI -tKI -tKI -tKI -jez -bCQ -tKI -lSu bln bln -oEB bln bln bln -oEB bln bln bln -oEB bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln -mQb bln -fPc bln -xxB -xxB -xxB -xxB -xxB bln -sEB bln -xxB -xxB -xxB -xxB -xxB bln -fPc bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(62,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -hAM -kdS -kdS -obe bln -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln bln bln -eGr -wxN -wxN -wxN -biY -lJO -lJO -lJO -dYj -hjI -lJO -lJO -lJO -lJO -lJO -lJO -dZJ -eUi -eBB -tNd -nor -sst -cgw -mZu -hjv -pXh -rOb -gpp -tKI -dat -kDv -tKI -jEE -wBb -fgo -aSI -nEq -tKI -ybY -gvp -nSr -tKI -xDw -bCQ -tKI -lSu bln bln bln bln -lSu bln bln -lSu -lSu bln bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln -uap bln bln bln bln -mQb -mQb bln -sEB bln bln bln @@ -232298,222 +217588,22 @@ bln bln bln bln -fPc -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(63,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -fPc bln bln bln bln bln -tmR -mQb bln bln -tmR bln bln bln -tmR bln -vsI -eGr -eGr -eGr -hNJ -sxF -kjw -biY -hTJ -gks -qDI -eUf -jPV -lJO -pVQ bln -efI -efI -lJO -mLd -hBG -pEs -aFH -jRI -nza -nza -nza -cNS -doW -awz -nmx -izI -pdd -lMg -wSk -pdd -oLC -bVn -cHs -fLS -fLS -yel -edN -jLf -tlm -jLf -fsj -tKI -htd bln -lSu -lSu -lSu -lSu -lSu -lSu bln bln bln @@ -232522,516 +217612,140 @@ bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln bln bln -lSu -dzZ bln -xxB -xxB -xxB -xxB -xxB bln -sEB bln -xxB -xxB -xxB -xxB -xxB bln -fPc bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(64,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -mQb -yfW -tMa -cnx -tmR -tmR -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -tmR -izw -pVN -kJe -pVN -nQH -vos -smr -rgs -eUf -eUf -eUf -hjI -lJO -efI bln -mQb -kXI -lJO -wDf -sAR -sAR -lCn -kPy -dQI -pPT -pPT -hjv -vTP -lsi -kUm -tKI -kii -cEG -tKI -afz -mTc -tKI -tKI -tKI -tKI -tKI -tKI -tKI -tKI -tKI -dBJ -teN bln -lSu -lSu -lSu -lSu -lSu bln bln -lSu -lSu bln bln bln bln bln bln -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR -aBR bln bln bln -ozo bln bln -bvb -tMa -tmR -tmR -tmR -tmR -tmR -tmR -sEB -tmR -tmR -tmR -tmR -tmR -tmR bln -bvb -tMa bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(65,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(5,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln -mQb -vap bln -mQb bln bln bln -tmR bln bln bln -tmR bln bln -mQb -tmR -mQb -sEB -eGr -eGr -eGr -pVN -bvd -eAh -biY -bhQ -hjI -hjI -eUf -nst -lJO -lJO -lNj -qDI -lJO -lJO -mCT -mut -kby -oLm -rbE -wCL -tTc -wtr -oCO -kxs -lsi -fyq -qnj -qnj -qnj -qnj -qnj -qnj -tOw -xan -tOw -iZW -tOw -pLw -tOw -orq -tKI -dBJ -teN bln -lSu -lSu bln bln -lSu -lSu -lSu -lSu -lSu bln -oEB bln bln bln @@ -233052,241 +217766,23 @@ bln bln bln bln -mQb -fPc bln -xxB -xxB -xxB -xxB -xxB bln -sEB bln -xxB -xxB -xxB -xxB -xxB bln -fPc bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(66,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -fYT -kdS -kdS -hPv bln -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln bln bln -eGr -wxN -biY -biY -biY -hjI -hjI -qDI -eUf -hjI -dIx -kEq -ndz -hdh -fHq -lJO -lJO -lJO -lJO -fYS -tgd -fYS -fYS -fYS -fYS -wpO -lsi -gOm -qnj -omg -hzL -kRc -lNV -paZ -tOw -iKX -tOw -nZY -tOw -hce -tOw -wbY -tKI -dBJ -teN bln bln -lSu -lSu -lSu -lSu -lSu -lSu -lSu -lSu bln bln bln @@ -233308,9 +217804,6 @@ bln bln bln bln -mQb -mQb -fPc bln bln bln @@ -233318,232 +217811,27 @@ bln bln bln bln -sEB -mQb bln bln bln -mQb bln bln -ebW -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(67,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln -fPc -mQb -uei -tmR -uei -mQb -uei -tmR -uei bln -uei -tmR -uei bln -lSu bln bln -miY -hEI -dYC -hjI -hjI -hjI -lJO -eUf -eUf -eUf -eUf -eUf -eUf -eUf -eUf -cKD -gks -lJO -wSf -tak -bPr -byA -bVS -vQt -gpp -lsi -gpp -qnj -ddQ -gAB -ykG -ykG -wpQ -tOw -sVn -wlt -kEM -bLn -kEM -vkW -gak -tKI -dBJ -tKI -nMj bln -lSu -lSu bln bln bln -lSu bln -lSu bln bln bln @@ -233565,240 +217853,25 @@ bln bln bln bln -mQb bln -fPc bln -xxB -xxB -xxB -xxB -xxB bln -sEB bln -xxB -xxB -xxB -xxB -xxB bln -chn -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(68,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -mQb -uer bln -oHg -mQb -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln -lSu bln bln -miY -hEI -kbd -hjI -lJO -lJO -lJO -fzJ -qDI -qDI -qDI -lJO -lJO -lJO -bWl -lFq -dix -lJO -veN -ekn -dTD -eMH -dTD -ljT -pBk -lzO -tJu -qnj -hul -ykG -gwp -hCa -pig -wpc -xBn -jjO -xQf -hmZ -xQf -vQO -hlv -tKI -dBJ -tKI bln bln bln -lSu bln -lSu -bfP -lSu bln bln bln @@ -233819,247 +217892,68 @@ bln bln bln bln -uGo bln -mQb -mQb bln -bvb bln -tmR -tmR -tmR -tmR -tmR -tmR -sEB -tmR -tmR -tmR -tmR -tmR -tmR bln -bvb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(69,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(6,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -mQb -mQb bln -yfW -tMa -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln -lSu -lJO -hEI -lJO -lJO -lJO -adq -lJO -lZU -fIx -hRt -kWr -okU -hRt -mro -kUJ -lJO -eUf -gDS -wTX -lJO -ose -iMT -wIR -uAl -wQh -vQt -gpp -bAB -gpp -qnj -aOx -ykG -ykG -rCj -xDh -tOw -tOw -tOw -tOw -tKI -tKI -tKI -tKI -tKI -jss -tKI -mZf -ooL -maT -nNZ -oSK -maT -vEG -rEr -maT -sEB bln -oEB bln bln bln @@ -234076,246 +217970,22 @@ bln bln bln bln -cWX bln -mQb -lSu bln -fPc bln -xxB -xxB -xxB -xxB -xxB bln -sEB bln -xxB -xxB -xxB -xxB -xxB bln -fPc bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(70,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -uer -mQb -lSu -wOq bln -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln bln -lJO -khW -iSn -ghN -lJO -hjI -qDI -pWb -okU -rSe -npx -rSe -hRt -lJO -lJO -lJO -eHT -lJO -lJO -lJO -dAc -iMT -fjD -gOx -nbT -fYS -rdn -bAB -aaW -qnj -mxu -awx -koH -ubH -wml -bvg -bJa -btG -ehp -tKI -plg -huj -qjO -tKI -sHK -tKI -maT -maT -maT -xmk -bde -kXr -aRx -kjd -maT -miY -xeg bln bln bln @@ -234333,20 +218003,14 @@ bln bln bln bln -cWX bln bln bln -lSu -pMM bln bln -mQb -mQb bln bln bln -sEB bln bln bln @@ -234354,154 +218018,13 @@ bln bln bln bln -fPc bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(71,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -lSu bln bln -vap bln bln bln @@ -234516,65 +218039,6 @@ bln bln bln bln -lJO -gDZ -gDZ -uPS -cnz -ndz -qDI -jgD -hRt -vxi -hWd -ppq -hRt -mro -cyI -lJO -eUf -qhO -lJO -waZ -sng -iMT -nQu -gOx -vYa -fYS -hNz -bAB -gdY -ljE -vKq -vKq -vKq -eTC -neq -muy -muy -gRp -kjh -tKI -plg -jdW -mmn -ggn -dBJ -tKI -cYo -tEL -maT -nNZ -jME -kXr -hTk -rEr -maT -mZf -kKU -kKU -vJv bln bln bln @@ -234590,249 +218054,17 @@ bln bln bln bln -cWX bln -lSu bln -mQb -fPc -mQb -lSu -lSu -uer -nAx bln -sEB -tmR -sEB -mQb -cIf -gSd -ahG -ujK -ujK -obe bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(72,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln -obe -kdS -kdS -eRE -xAs -kdS -kdS -eRE -wvw -kdS -qQk -eRE -kdS -hBf -kdS -lJO -gLZ -cXp -xiW -lJO -hjI -qDI -xQB -hRt -rSe -hWd -ckQ -xJD -lJO -lJO -lJO -eUf -lNi -lJO -nFF -ddh -iMT -rXr -iVb -xWU -vQt -gpp -bAB -fWN -tpG -awx -jsB -uQu -psp -neq -muy -muy -gRp -geq -tKI -bsO -jyo -pXR -tKI -dBJ -tKI -grr -kLZ -jPc -xKj -hyY -xDu -huI -gbv -maT -kXr -maT -maT -kXr -htd bln bln bln @@ -234847,23 +218079,12 @@ bln bln bln bln -cWX bln -lSu bln -mQb -fPc bln -mQb bln -lSu bln bln -jlJ -jWl -jlJ -aMZ -vap bln bln bln @@ -234871,231 +218092,26 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(73,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln -lSu bln bln bln bln -mQb -fPc bln bln bln bln -lSu bln bln bln bln bln -lJO -hEI -lJO -lJO -lJO -uPS -lJO -ndz -hRt -jhf -uyH -nGC -mOx -tCu -cHB -lJO -qzs -jnV -lJO -tdY -gHS -iMT -hqx -myE -reJ -wrA -djr -lzO -mNy -qnj -etY -awx -bjQ -awx -sgT -dmk -sua -frd -qyL -tKI -tKI -tKI -tKI -tKI -wyr -tKI -kMh -ajw -ajw -wbW -ajw -kVl -czv -cCW -wyB -mSP -wyB -tEj -maT bln bln bln -gsK -kKU -kKU -nBE bln bln bln @@ -235103,695 +218119,127 @@ bln bln bln bln -xYt -atB bln bln bln -mQb -pRj -pRj -pRj -pRj -pRj -mNY bln -jlJ -hTq -jlJ bln -chn bln -uer -mQb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(74,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln -lSu -lSu bln bln -fPc bln bln -uer bln -mQb bln -ntK -stJ -lSu bln bln bln -lJO -cIq -lJO -hjt -lJO -csf -xht -wlr -qHj -gQD -lJO -lCV -lJO -lJO -eUf -iPR -lJO -ejo -cSe -xhk -skj -kkK -lNP -vQt -gpp -bAB -gpp -qnj -hjJ -ykG -aUi -kXB -ihk -ssv -omH -hJG -oYa -tKI -dzl -bCQ -jKP -fLS -jeK -cse -ajw -bff -otd -otd -ajw -odw -ajw -huI -huI -huI -uqg -pUi -maT bln bln bln -qjQ -aOd -axg -qjQ bln bln -pRj -pRj -pRj -ptf -pRj -pRj -uqG -kKU -kKU -rzO bln -pRj -emx -kpn -awt -wAW -mNY -nxm -jlJ -rbb -jlJ -jlJ -obe bln -mQb bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(75,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(7,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln -mQb bln -ozo bln bln -lSu -mQb bln -uap bln -fsm -lBD bln bln bln bln bln bln -lSu bln bln -lJO -lJO -lJO -xbr -lJO -unq -mZn -uSd -lnr -tIh -lJO -ovt -bZV -hjI -eUf -uPS -lJO -lJO -lJO -enI -lJO -lJO -lJO -lJO -kxs -bAB -fSv -qnj -gtG -ykG -dVb -pMX -qVg -wsV -uKO -uKO -juq -tKI -stL -thE -hbY -tKI -tKI -tKI -kUF -ajw -ajw -otd -otd -otd -otd -otd -otd -uqn -kLZ -jcJ -kXr bln bln bln -aOd -iAu -rLo -qjQ bln bln -pRj -kBV -pRj -dkn -vmr -pRj -uqG -ptf -kzZ -ptf bln -pRj -rej -iaT -daS -swS -mNY -mNY -smj -smj -iCX -glh bln -mQb -mQb bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(76,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -mQb bln -ntK bln -lSu -lSu -mQb bln -ebW -lSu bln bln bln @@ -235801,768 +218249,66 @@ bln bln bln bln -lBD bln bln bln -lJO -dGe -lJO -lJO -lJO -rCx -iNE -iBg -lJO -ovt -cAJ -kNi -ygk -ygk -fqv -fqv -rkP -fza -rkP -asC -ygk -jKJ -hMg -cke -kTC -qnj -dei -wpC -vZg -gta -ihk -qjp -uKO -uKO -juq -tKI -xqX -kIy -wBb -tKI -ifX -ajw -ajw -ajw -mmi -aUA -mmi -ajw -ajw -ajw -ajw -ajw -ajw -ajw -maT bln -qjQ -qjQ -qjQ -qjQ -jDl -qjQ -oot -oot -pRj -qOl -qPw -csE -hRw -pRj -eDJ -ptf -daS -ptf bln -pRj -mVN -hUI -mRU -qAI -snw -mNY -qDS -ooU -ipE -glh -mQb -uer bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(77,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -uer bln bln -lSu -lSu bln -uer bln -fPc bln -lSu bln bln -mQb -stJ bln bln bln -mQb bln bln -fsm bln -hEI -hjI -hEI -sEB -lJO -hEI -hEI -hEI -lJO -lJO -dDV -oaR -lJO -lJO -lJO -lJO -lJO -lJO -lJO -lJO -lJO -lJO -gZc -aJA -gpp -qnj -nct -ykG -tQS -oWN -pji -apq -eoY -poK -smn -cUd -sIM -yjn -wBb -tKI -wAf -ajw -kXs -ajw -mmi -wiz -mmi -oJk -jjk -jjk -jjk -sOm -uEI -ajw -maT -maT -qjQ -pvY -esc -qjQ -axg -qjQ bln bln -ptf -hZQ -cZN -ybu -qrr -pRj -ycS -pRj -lDr -pRj -ptf -pRj -kqK -dnM -swS -mXN -gDv -mNY -qIf -fFx -czR -glh -mQb -mQb bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(78,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -hMQ -mQb bln bln bln -hMQ bln -fPc bln bln -stJ bln -uer bln bln bln -stJ bln bln bln -uer bln -hEI -ndz -hEI -sEB -sEB bln -fsm bln bln -hEI -uPS -oaR -oSy -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -jOt -rWZ -auc -rWZ -sAS -sAS -sAS -sAS -tKI -tKI -tKI -tKI -tKI -tKI -tKI -kcE -pdf -aSI -tKI -ooR -ajw -ajw -ajw -mmi -wiz -mmi -sln -wam -wam -wam -wam -mWD -ajw -pYT -ajw -tAS -hoD -hoD -vDO -lgH -qjQ bln bln -ptf -qOl -sUS -ybu -vUW -pRj -mKA -yiR -daS -iJh -wRu -pRj -pRj -kuR -kCC -lDh -pRj -mNY -mNY -pyI -mNY -glh -mQb -uer bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(79,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -tGr -tGr -tGr -umh -jZo -jZo -jZo -jZo -umh -tGr -xAs -jbe bln bln bln @@ -236576,91 +218322,9 @@ bln bln bln bln -hEI -hjI -hEI -sEB -sEB -lSu bln -tLi -lBD -hEI -hjI -wPr -oSy -pLg -ybQ -ybQ -ybQ -ybQ -ybQ -ybQ -vsF -jOt -ozw -eRw -gpp -gJz -nQv -nDY -tzP -tKI -wuA -nAr -nAr -nAr -nAr -nAr -nAr -nAr -wNR -tKI -jnp -ajw -ajw -ajw -mmi -wiz -mmi -vmn -wam -wam -wam -wam -gOI -oMk -kXr -maT -qjQ -eGw -ewI -pPl -xCL -qjQ bln bln -ptf -csE -vPi -ybu -xmQ -pRj -cnd -hth -wEW -hth -hjH -pRj -vgw -rlj -bKZ -aPV -gFH -apj -cqL -xHe -ptf bln bln bln @@ -236670,159 +218334,6 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(80,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -tGr -miY -lSu -lSu -sEB -tGr -tGr -tGr -sDl -sDl -sDl -sDl bln bln bln @@ -236830,94 +218341,11 @@ bln bln bln bln -hEI -hEI -lJO -lJO -hjI -lJO -lJO -lJO bln -mQb bln bln -hEI -hjI -wPr -oSy -sDl -ybQ -gGZ -lye -ebL -edn -ybQ -sCK -jOt -ozw -aJA -oRM -oVG -pRL -gfF -hqm -tKI -wBb -tKI -tKI -tKI -tKI -tKI -tKI -tKI -tKI -tKI -leW -vlN -qPJ -vlN -ajw -wiz -ajw -nNu -wam -wam -wam -wam -wxT -ajw -maT bln -qjQ -qyT -qcE -aFz -hoD -qjQ -utC bln -ptf -qOl -ace -ybu -thW -pRj -ntO -dnM -nzp -wEW -hjH -eMT -iaT -bFY -aZq -ukA -hUI -apj -daS -xHe -ptf bln bln bln @@ -236927,1542 +218355,213 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(81,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -tGr -tGr bln -gZt -nMR -tGr -tGr -tGr -jNZ bln -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -hEI -qNE -eAb -prE -hjI -tTL -ezq -lJO -hEI -hEI -hEI -hEI -lJO -hjI -wPr -oSy -sDl -ybQ -oPI -khR -khR -eRh -ybQ -jOt -jOt -ozw -aJA -xSL -gJz -eUx -imO -kGF -tKI -wBb -tKI -xua -llR -fOs -dsf -xjF -xem -dwY -ikO -bji -ajw -ajw -vlN -ajw -wiz -ajw -qUS -irD -irD -irD -pzX -gdN -ugi -maT bln -qjQ -jAq -qxb -nrm -iQr -qjQ -oot -oot -pRj -vSE -mqI -qOl -ujj -pRj -dOH -hjH -qTS -dNC -iRJ -pRj -wls -qxY -tKV -cjL -gfC -pRj -daS -mxg -pRj -pRj -pRj -oMa bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(82,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -tGr -tGr bln bln bln bln -tGr -tGr -fsm -sEB bln bln -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -hEI -dZc -cZD -apd -tPV -hjI -hjI -cnz -hjI -hjI -hjI -hjI -hjI -hjI -wPr -oSy -sDl -ybQ -olQ -bnz -jxq -sOz -vGI -pPD -lEE -idO -aJA -waV -tKI -tKI -tKI -tKI -tKI -blY -tKI -wrP -alT -taf -kGQ -bAa -xal -wLO -lfG -oSS -erN -xwp -baf -wiz -wPh -iaF -iaF -iaF -iaF -ajw -ajw -bdW -pBE -pBE -uYc -pBE -pBE -ojk -bVJ -dSO -qjQ bln bln -pRj -jzk -kYF -jOJ -qzM -pRj -qFC -uIx -osI -osI -xbq -pRj -nDy -hUI -qwX -nVR -iWZ -bse -xHe -oBZ -lPE -daS -nNr -qVo bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(83,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -tGr -tGr bln bln bln -oEB bln -tGr -tGr bln -lSu -ntK bln bln bln -fsm bln -sDl -sDl -sDl -sDl -sDl -hEI -eeF -nWf -prE -gDS -aXY -iPR -lJO -hEI -hEI -hEI -hEI -lJO -hjI -wPr -oSy -sDl -ybQ -oPI -xWN -xWN -pib -ybQ -jOt -jOt -ozw -aJA -gpp -bpK -pdf -pdf -pdf -pdf -wBb -tKI -aiQ -alT -dcs -kin -dsU -alT -lbg -ikO -ikd -jhy -ppo -lxb -eWV -kXr -xaF -rUy -smx -qqJ -gjP -ajw -ajw -uYc -pgq -szU -eVn -pBE -ePB -hxE -xtr -qjQ bln bln -pRj -csE -kSD -csE -uwd -pRj -poO -hjH -daS -pXv -kEC -pRj -bxV -uKP -iaT -hUI -lLm -mLa -qSY -daS -pRj -igG -pRj -qVo bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(84,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -tGr -tGr -tGr -tGr -tGr bln -pZY bln bln -fsm -mZf bln -tGr -tGr bln -miY bln bln bln bln bln -sDl -sDl -sDl -sDl -sDl -sDl -hEI -hEI -lJO -lJO -hEI -lJO -lJO -lJO bln -lBD bln bln -hEI -hjI -xJJ -oSy -sDl -ybQ -egF -jYV -jDW -hPf -ybQ -eaG -jOt -ozw -ons -eNE -tKI -tKI -tKI -tKI -tKI -wBb -bcx -qiK -rrB -lit -qiP -fgc -obQ -ndk -rbC -kXr -hrJ -ttT -sQa -hrJ -kXr -kXr -kXr -kXr -kXr -kXr -haG -eMa -nRt -lPK -jFJ -lLE -pBE -qjQ -rVe -qjQ -qjQ bln bln -pRj -wVr -drs -pRj -pRj -pRj -pRj -pRj -pRj -wpY -pRj -pRj -ptf -pRj -pRj -pRj -pRj -pRj -wFg -pRj -pRj -pRj -pRj -eHC +bln +bln +"} +(8,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(85,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -tGr bln -ntK bln bln bln bln bln -tGr -tGr bln -lSu -fsm bln bln -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl bln bln bln bln bln -mQb -tLi bln -hEI -hjI -wPr -oSy -pLg -ybQ -ybQ -ybQ -ybQ -ybQ -ybQ -vsF -jOt -ozw -ons -gpp -lGz -pMv -bso -dBB -tKI -wBb -tKI -tKI -tKI -tKI -tKI -tKI -tKI -tKI -tKI -kaw -vkF -rTt -sOJ -cnB -bvr -mAN -vra -lZQ -jtV -kXr -hKV -eMa -pBE -mpe -byn -wBy -pBE -qdC -jBf -dhY -qjQ -oot -oot -pRj -daS -tut -qai -qoK -pXv -sgh -pXv -pXv -pXv -ptf bln bln bln bln bln bln -ptf -xHe -ptf bln -uer -uer -mQb bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(86,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr bln bln bln bln bln bln -jNZ bln -tGr -tGr bln -xiO -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -lSu -qVo -lSu -lSu bln bln -fsm bln -stJ bln bln -hEI -hjI -oaR -oSy -sDl -sDl -sDl -sDl -sDl -sDl -sDl -sDl -jOt -caH -ons -oRM -oRM -uLX -rmA -qGW -tKI -lGd -wxy -nAr -wxy -axz -dzl -tKI -dMv -pdf -tKI -iUM -ssc -cXl -wRx -sdW -kXA -kXA -oDt -kRU -lMd -kXr -hLY -ceo -pBE -fNc -gSf -cYK -pBE -cZa -hxE -xUS -aOd bln bln -ptf -daS -jSe -xcW -sxY -tFs -pRj -ptf -ptf -ptf -pRj bln bln bln bln bln bln -ptf -xHe -ptf bln bln -mQb -mQb bln bln bln @@ -238471,238 +218570,21 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(87,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -miY bln bln -oEB -mZf bln -lSu bln -tGr -tGr bln bln -sDl -sDl -sDl -sDl -sDl -tGr -tGr -tGr -tGr -lSu bln -rzO bln bln bln -mZf -lSu bln -lSu -ntK bln -lJO -lJO -lJO -lJO -kcZ -biY -biY -sDl -sDl -sDl -hDU -hDU -hDU -hDU -hDU -gRs -ons -gpp -tmw -pMv -bcT -iTy -tKI -afz -rvS -xli -kfe -aCU -jJX -tKI -tKI -tKI -tKI -qQo -ibm -nEo -wNT -aYm -xqy -cXl -uxl -oRy -aHC -kXr -ghl -ceo -pBE -uYc -uYc -pBE -pBE -iVA -hxE -aCh -aOd bln bln -ptf -wSU -jSe -pRj -pRj -tFs -ptf bln bln bln @@ -238713,266 +218595,40 @@ bln bln bln bln -ptf -xHe -ptf bln bln bln bln bln -ozo bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(88,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -lSu -nMR bln -rzO bln -pby -rwt bln -tGr -tGr -tGr -lSu -sDl -sDl -sDl bln -tGr -tGr -tGr -tGr -tGr -jNZ bln -lSu bln bln bln bln -mZf bln -xfZ bln bln -lJO -hQc -lgO -kke -sTj -hos -biY -sDl -sDl -sDl -hDU -dAQ -fVU -iYe -hDU -gpp -aJA -gpp -fUr -pMv -eAQ -pHy -tKI -tKI -tKI -tKI -tKI -vgR -tKI -tKI -gLN -rCC -gLN -rCC -eVl -rCC -dXh -cHb -cHb -mOA -cHb -psW -psW -oIH -ceo -ceo -yeh -hxE -hxE -vQj -fvx -hxE -hxE -xFb -aOd bln bln -ptf -jYS -gBe -jSe -oxB -jQC -ptf bln bln bln bln bln -jNZ -nME bln bln bln -ptf -xHe -ptf bln bln bln @@ -238987,253 +218643,35 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(89,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -miY bln bln bln bln bln bln -tGr -tGr -tGr -tGr -mZf bln bln bln bln -tGr -tGr -tGr -tGr bln -mZf bln -qVo bln -xfZ bln bln -lSu -uer bln -lJO -hEI -lJO -pKS -iSX -lJO -bOX -hos -biY -hDU -hDU -hDU -hDU -lyy -aJm -iFj -hDU -abL -ons -aLV -bXm -bXm -bXm -bXm -gst -gVP -mPh -ciI -aRX -bhV -nXQ -bLW -jJe -rCC -aMd -rCC -jIg -wEh -unO -hkU -hwF -ljl -kXA -rLu -nRq -maT -ajw -eMa -aOd -xZX -hxE -iVA -hoD -hoD -abz -qjQ -qjQ -oot -oot -pRj -pRj -uWW -kNZ -pRj -jQC -ptf bln bln bln bln -jNZ -xbV -qVo bln bln bln -ptf -xHe -ptf bln bln +"} +(9,1,3) = {" bln -mQb bln bln bln @@ -239241,6 +218679,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -239249,6 +218926,8 @@ bln bln bln bln +"} +(10,1,3) = {" bln bln bln @@ -239257,148 +218936,502 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(90,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(11,1,3) = {" bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -fsm -eUO bln bln bln -fsm bln -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -239407,94 +219440,265 @@ bln bln bln bln +"} +(12,1,3) = {" bln -csm -hjI -nbj -vfm -exL -hEI -qGU -biY -biY -mSY -mQh -xKb -djF -xMW -apI -tOi -kkO -fNK -aJA -hIj -bXm -gpZ -vov -cAo -gst -uao -plN -rTO -rTO -fsS -aqQ -gst -dKe -lek -jak -nfd -jIg -wEh -uuP -aGF -uuP -gam -qQo -lmv -uuP -tue -nZh -lNG -tue -qjQ -jBf -nvx -lis -aud -lis -qjQ bln bln bln bln -pRj -ili -pRj -pRj -jQC -ptf bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -fkF -cPp -rwt bln bln bln -ptf -xHe -ptf bln -ntK bln -mQb -uer -mQb bln bln +"} +(13,1,3) = {" bln bln bln @@ -239503,6 +219707,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -239511,6 +219954,255 @@ bln bln bln bln +"} +(14,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -239519,245 +220211,522 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(91,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(15,1,3) = {" bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr bln -mZf -lSu -sEB bln bln -gHA -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr -tGr bln -ntK bln -rwt bln -rwt bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -mZf -lSu bln -lJO -foT -lJO -tyl -kvE -hEI -qGU -biY -rcP -jXN -vVj -dRD -jFf -uOj -bgF -vPM -esI -cVz -ons -xSL -lnc -qRq -pNK -aTT -gst -sTn -fXu -uOM -vzw -rTO -pRX -gst -byl -rgl -wVF -iBF -guS -wEh -vlL -qxQ -eBe -hnC -cah -aSh -ycQ -nZh -lIy -tBR -qwd -pRj -mAc -pRj -pRj -pRj -pRj -pRj bln -mQb bln bln -pRj -axr -mUh -pRj -jQC -ptf bln +"} +(16,1,3) = {" bln bln bln bln -lbc bln bln bln bln -ptf -xHe -ptf +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -mQb bln bln bln -pRj -pRj -ptf -ptf -ptf bln bln +"} +(17,1,3) = {" bln bln bln @@ -239766,6 +220735,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -239774,912 +220982,2825 @@ bln bln bln bln +"} +(18,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(92,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(19,1,3) = {" bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -rzO -nMR bln bln bln bln bln -nMR -mSQ -tGr -tGr -lSu bln -ntK bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -xAs bln bln bln bln bln -jNZ -lSu -jNZ -lSu bln -rzO -lSu bln +"} +(20,1,3) = {" bln -lJO -lJO -lJO -lJO -lJO -lJO -lXn -biY -dXv -lck -ocu -vwQ -wMc -ygv -toW -kyi -aNq -jsF -ons -ons -lxc -wvK -aKs -tgH -gst -iXM -vWW -vWW -vWW -tnO -kPL -gst -iSA -vHK -kDj -dBZ -dOw -cMI -qmi -kUx -umR -hnC -nKr -qmi -cex -nZh -mdS -thK -dnT -pRj -kCn -baB -pRj -xSI -tXb -pRj bln bln -uer -mQb -pRj -axr -sma -pRj -wMU -ptf bln bln bln bln bln -tIC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -pRj -xHe -pRj -pRj -ptf -ptf -pRj -ptf -ptf -pRj -pRj -enR -yju -eoL -ptf bln bln -mQb bln bln +"} +(21,1,3) = {" bln bln bln -mQb bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(93,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(22,1,3) = {" bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -lSu bln bln -lSu bln bln bln bln -jSf -sEB -lSu -sEB bln -mZf -lSu -mZf -xAs +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -fsm bln -uer bln bln bln bln bln bln +"} +(23,1,3) = {" bln bln bln bln -lJO -oXf -xSx -fdF -lJO -vqS -oIB -biY -vVj -jXN -rcP -viV -gbd -uOj -pdW -jfR -aNq -jsF -ons -gpp -lnc -kFu -sJr -vBu -gst -sbY -xAy -xAy -tge -ozH -bZg -gst -hYG -jYG -dOw -dOw -yhe -rCC -vPh -vQQ -vQQ -sve -qmi -cXc -fhw -nZh -lzt -cQh -pyc -pRj -kCn -daS -bKp -bPz -axr -pRj bln -mQb -mQb bln -pRj -daS -tZM -pRj -wMU -ptf bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(24,1,3) = {" +bln bln bln bln bln bln -pRj -pRj -pRj -pRj -poc -xzH -hrS -faF -pXv -mBO -pXv -xYO -pXv -rnh -pXv -xDe -nkO -ptf bln bln -uer -mQb -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -uer bln bln -mQb bln bln +"} +(25,1,3) = {" bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(94,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr bln -jNZ -oEB -jNZ bln -ntK bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -xPF bln bln bln -lSu bln bln -lBD -xAs bln bln +"} +(26,1,3) = {" bln -xfZ bln bln bln bln bln -fsm +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fwx +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fwx +fwx +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -dvY -lJO -nLE -erl -oDH -fVm -ndz -oIB -biY -biY -gNC -iLi -oJT -wwO -gad -gAk -tMI -hDU -vAY -ons -eNE -bXm -mWs -lSg -mTh -gst -gst -sto -lpj -gst -gst -npP -bLW -xjP -qcI -gxO -dKK -xmN -rCC -iiy -grN -qmi -kGx -rqJ -rMr -bgK -nZh -iOS -mYs -fxn -pRj -mgo -daS -pRj -iaT -twF -pRj bln bln bln bln -pRj -pRj -pRj -pRj -wMU -pRj -pRj -pRj -pRj -ptf -ptf -ptf -ptf -pRj -bLA -eQz -blO -xHe -pRj -glX -nSl -kNZ -pRj -lDF -wSU -ovy -pRj -qYR -qvk -tXb -ptf +bln +"} +(27,1,3) = {" bln bln bln bln -mQb bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +tra +bln +hcw +lSu +tra +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +tra lSu +weW bln -mQb -mQb +tra +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -mQb -mQb bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(95,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -tGr -tGr -tGr -tGr -tGr -mZf -vwC -pby +(28,1,3) = {" bln bln -tGr -tGr bln -jSf -lBD bln bln -rzO bln bln -fsm -xAs bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +sEB +sEB +sEB +fwx +utC +utC +fwx +utC +utC +utC +utC +utC +fwx +utC +fwx +fwx +sEB +sEB +sEB +fwx +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -240688,3390 +223809,3203 @@ bln bln bln bln +"} +(29,1,3) = {" bln bln bln bln bln -lJO -lJO -lJO -lJO -lJO -thD -oIB -hjI -biY -biY -biY -biY -biY -biY -biY -biY -biY -ede -iKj -bPp -bXm -lnc -lnc -lnc -gst -sAC -eBd -eBd -wJR -uri -tKZ -gst -rCC -rCC -wEh -kgX -wEh -rCC -sOn -aBh -eaE -wkN -aBh -sOn -sOn -tue -tue -tue -tue -pRj -kCn -daS -pRj -pRj -pRj -pRj -bON -bON -bON -bON -pRj -wwE -kkD -daS -dWZ -qtM -obj -obj -obj -obj -obj -obj -obj -obj -obj -obj -iOM -suR -pRj -pRj -ick -ivm -pRj -pRj -mNY -mNY -mNY -mNY -mNY -mNY -mNY -hPv -lej -hBf -eRE -ujK -ujK -eRE -ujK -ujK -eRE -ujK -hPv bln -uer -mQb +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fwx +utC +sEB +sEB +sEB +fwx +utC +fwx +utC +utC +jNZ +kKU +rzO +fwx +utC +fwx +utC +utC +sEB +sEB +sEB +fwx +utC +tkU +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(96,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(30,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +fUR +sEB +sEB +sEB +fUR +utC +utC +utC +jNZ +sEB +sEB +sEB +rzO +utC +utC +utC +fUR +sEB +sEB +sEB +fUR +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl aBR aBR -tGr -tGr -tGr -tGr -tGr -tGr +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -lSu -tGr -tGr -tGr -tGr -mSQ bln bln bln -rwt -lBD -ntK bln -tCj -xAs -xAs -xAs -xAs -xAs -xAs -xAs -xAs -xAs -hIv -wPN -wPN -lJO -lJO -lJO -otM -hDc -wGG -psR -vHA -cJH -sCE -cGe -gYG -iLK -iLK -iLK -det -iLK -vBi -lJO -dnq -iuv -xgm -dnq -dnq -dnq -dnq -tPH -dnq -dnq -fTx -bep -dnq -gOy -dnq -srw -yld -pTB -pTB -pTB -mWU -pTB -pTB -dnq -dyN -rGl -hJE -vYA -hzV -rGl -vTo -oVu -mye -ptd -ptd -obj -obj -obj -tXE -obj -obj -obj -obj -tXE -obj -uNW -obj -uoB -mNY -mNY -mNY -mNY -mNY -mNY -mNY -mNY -mNY -mNY -mNY -pRj -sCw -eQz -rAO -taX -wOB -beO -kbs -cXo -gBv -tjH -aUK -gGs -bbU -aUj -aUj -nce -mQb -mQb bln -lSu bln -mQb -mQb +"} +(31,1,3) = {" bln bln -yfW -fCR -ujK -ujK -dMo bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(97,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +tkU +utC +fUR +sEB +tqR +sEB +fUR +fwx +tra +jNZ +sEB +sEB +sEB +sEB +sEB +rzO +tra +fwx +fUR +sEB +tqR +sEB +fUR +fwx +tUm +utC +fri +utC +utC +utC +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR -tGr -tGr -tGr -tGr -tGr -bDu -bDu -bDu -bDu -bDu -bDu -bDu -xAs -xAs +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -lSu bln bln bln -lSu -cuq -itE -lSu -cuq -itE -lSu -cuq -itE -rzG -sDl -sDl -sDl -hEI -sop -wZm -fFb -jwL -lJO -lJO -lJO -lJO -htJ -apX -hjI -hdh -mFy -fjF -hjt -ndz -vOG -anb -sSe -bzQ -aTI -bmv -bmv -bmv -bmv -pwM -bmv -bmv -cKq -cKq -cKq -qsy -iwz -dLQ -iwz -xwC -jwt -gOy -iwz -iwz -iwz -iwz -rQn -iwz -iwz -iwz -uag -iwz -nQO -nua -pRj -pRj -kFR -daS -tZb -rLc -axr -utU -teF -axr -utU -daS -daS -tZb -daS -fhW -mNY -csT -csT -csT -xaI -fiY -wkl -csT -csT -csT -mNY -gob -hwn -cAe -mXa -dpx -mXa -mXa -qCl -mNY -aUj -vWy -kLc -oFY -sIN -xmK -uaG -cSx -uOE -cSx -vyU -pXY -pXY -pXY -vyU -uOE bln -chb bln -ntK bln -chb +"} +(32,1,3) = {" bln bln bln bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +tkU +utC +tUm +utC +fUR +fUR +mnu +fUR +fUR +fwx +utC +miY +sEB +sEB +sEB +sEB +sEB +qVo +utC +utC +fUR +fUR +mnu +fUR +fUR +utC +utC +dHF +utC wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(98,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +vfr +utC +utC +txl +txl +txl +txl aBR aBR aBR -tGr -tGr -tGr -tGr -bDu -vKk -hwR -igB -wRs -xlC -bDu -dvl -cuq -jRS -jRS -dlt -jRS -jRS -itE -llT -sgW -akQ -lSu -sgW -akQ -lSu -sgW -akQ -rzG -sDl -sDl -sDl -hEI -nFG -sjp -rqk -ure -lJO -gAs -bZx -biY -biY -ogy -biY -biY -biY -biY -biY -biY -biY -biY -tFw -fPP -dnq -xzh -xzh -xzh -xzh -xzh -dnq -mgj -bzc -xIS -mgj -mgj -mgj -srw -jOy -ljp -gHe -sni -bep -qrJ -uLC -xzh -aNE -qcu -bDR -wXW -cYj -bep -ylU -lAB -uvC -pRj -dHu -daS -daS -nOY -axr -daS -bPz -daS -axr -axr -daS -axr -axr -fhW -mNY -anz -mDf -nLb -kNp -vbn -vFs -mMk -qAV -fyw -mNY -kCn -kCn -kCn -kCn -kCn -kCn -kCn -ioQ -jMn -pZG -toq -uDE -xFB -rkc -gxR -uaG -iLY -iLY -iLY -bxa -pXY -pXY -pXY -pXY -fcP +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln -chb bln -mQb bln -bvb -jHb -ozo bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(99,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -tGr -tGr -tGr -bDu -jgG -mAe -jJM -mAe -dfz -dnX +(33,1,3) = {" bln -abb -tDg -tDg -ooL -tDg -tDg -oFI -oEB -sgW -akQ -lSu -sgW -akQ -lSu -sgW -akQ -rzG -sDl -sDl -sDl -lJO -lJO -lJO -lJO -lJO -lJO -bZx -bZx -bWn -seL -nUr -ibk -xwr -xgg -xId -whQ -kka -fmm -bWn -fTR -eJe -iIF -jII -pAZ -pAZ -jII -inJ -dnq -wGa -dxK -dxK -iOF -opm -opm -dxK -gfb -gfb -gfb -pYB -gfb -gfb -vtg -rcE -rcE -rcE -hVc -jII -jII -rLl -ylU -dnq -uaY -pRj -jQC -daS -axr -fXq -daS -daS -tbi -daS -daS -axr -axr -axr -axr -fhW -mNY -krU -qjq -cEM -aQR -csT -aQR -eTi -rfR -aGB -mNY -kCn -mNY -mNY -mNY -mNY -mNY -mNY -mNY -mNY -nav -gfo -nNs -rDO -rkc -qWM -lha -kAK -iLY -iLY -lqE -pXY -pXY -pXY -pXY -uOE bln -chb bln -uer bln -chb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(100,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +fri +utC +utC +utC +fUR +mXT +cJt +eWF +fUR +dTI +dtP +sEB +sEB +sEB +sEB +sEB +sEB +qVo +fwx +utC +fUR +mXT +cJt +iMu +fUR +hvA +utC +fwx +fwx +utC +utC +utC +utC +utC +tra +utC +utC +bln +bln +bln +aBR +aBR +aBR aBR aBR aBR -tGr -tGr -bDu -nGU -mAe -jJM -mAe -dfz -feJ -feJ -awd -awd -awd -feJ -feJ -kyy -kyy -cJi -abb -oFI -oEB -abb -oFI oEB -abb -oFI -rzG -sDl -sDl -sDl -pfe -bZx -bZx -bZx -bZx -mgs -kQi -oWk -bWn -sBu -nUr -sFS -mhb -mhb -mhb -qwi -bIc -bIc -tgn -ikB -eJe -utR -pAZ -ucn -tLi -pAZ -tVd -uLC -jCT -dxK -xax -oyp -phf -sEl -qRs -jST -wUX -odN -iZq -dpH -gfb -mYG -iIA -fGQ -iIA -cvg -qQb -jII -okb -ylU -dnq -dyB -pRj -jQC -pXv -jUV -sGz -miL -pZS -axr -qCa -aph -oIy -aAM -nON -nON -iQb -mNY -juS -aQR -aQR -aQR -fxR -aQR -csT -csT -csT -mNY -kCn -mNY -dUn -thC -cpH -kbJ -kbJ -kbJ -yaL -hNM -epY -vWe -kIt -kMY -omT -lha -iLY -iLY -iLY -bxa -pXY -pXY -pXY -pXY -xLS +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(34,1,3) = {" bln -chb bln -lSu bln -chb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(101,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +vfr +utC +utC +fwx +utC +fUR +fUR +xau +fUR +fUR +gSE +sNA +sEB +sEB +sEB +sEB +sEB +sEB +sEB +rhJ +fwx +fUR +fUR +xau +fUR +fUR +utC +fUR +fUR +fUR +fUR +fUR +htd +bln +bln +bln +lSu +bln +bln +bln +lSu +oEB aBR aBR aBR -lbc -bDu -jgG -mAe -jJM -mAe -stt -qVB -eeD -aSH -lyG -rUb -vrb -feJ -cRg -pBN -brx -kyy -kyy -kyy -kyy -iDq -bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -rzG -tlE -tlE -tlE -pfe -bZx -bZx -bZx -bZx -gYm -krQ -skZ -bWn -nch -xMX -xIz -bIc -bIc -bIc -wdI -yaE -yaE -mvw -aTH -eJe -utR -pAZ -wtj -lBD -bcN -qzy -adP -adP -dxK -wzk -wzk -wzk -wzk -pgw -iYb -iYb -msb -hll -iYb -gfb -cpm -cpm -cpm -egY -wwn -jfc -cpm -pzb -cRF -dnq -pRj -pRj -dOa -pRj -pRj -pRj -pRj -hSm -qLA -jui -pRj -pyR -fWC -lmB -lGw -daS -mNY -ctI -hLZ -qNv -csT -csT -aQR -eso -rop -wTA -mNY -kCn -mNY -dUn -hpd -ahK -kbJ -kbJ -wkw -yaL -saO -eVV -rat -dNG -sth -aUj -aUj -rNZ -iLY -iLY -lqE -pXY -pXY -pXY -vyU -uOE bln -chb bln -mQb bln -chb bln -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(102,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(35,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +tkU +utC +utC +dHF +utC +utC +utC +utC +utC +tra +fwx +xOk +fUR +kod +kyg +uhx +uhx +uhx +uhx +sEB +sEB +sEB +sEB +sEB +sEB +sEB +uhx +uhx +uhx +uhx +jHX +tLm +fUR +fwx +fUR +kod +gFL +uhx +uhx +uhx +uhx +tMa +lSu +bln +bln +lSu +bln +bln +bln +bln aBR aBR aBR aBR -lbc -bDu -cFb -mAe -jgs -mAe -uVP -aWk -diC -bJj -lyG -teq -bXy -feJ -xWb -jDM -brx -rai -amn -hzG -wZD -iDq +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln bln -rzG -sDl -sDl -sDl -pfe -bZx -bZx -bZx -bZx -gYm -krQ -gYp -bWn -iUO -egL -ssF -pSu -fgQ -pSu -pSu -tlo -kZC -tgn -igQ -euZ -utR -pAZ -mQb -bNy -qWZ -oVR -apo -oVR -dxK -xVq -lnk -pNs -pNs -oyb -mqD -iYb -dkb -kmi -iYb -xaA -ovx -gMq -pec -fJl -xMR -fYE -cpm -dnq -ylU -pua -pRj -xWm -jQC -ukS -kFR -xWm -pRj -pRj -pRj -pRj -pRj -tRa -fhW -rCZ -uow -daS -mNY -gFI -bdR -xaI -xaI -csT -kNp -xaI -dBh -xYI -mNY -oXX -mNY -hpd -hpd -hpd -wkw -wkw -wkw -yaL -cTs -nJp -ycB -ycB -qtj -qtj -aUj -iLY -iLY -iLY -bxa -pXY -pXY -pXY -pXY -fcP -lSu -chb bln -uer -mQb -bvb -tMa -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(103,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG +(36,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +dHF +utC +fwx +dtP +iOh +iOh hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +uhx +ykb +hAG +dDp +cJt +cJt +jMw +sEB +sEB +sEB +sEB +sEB +sEB +sEB +skc +cJt +cJt +qYz +lnL +otG +uhx +fwx +uhx +ykb +hAG +skc +cJt +cJt +qYz +lSu +lSu +lSu +bln +lSu +bln +bln +lSu +bln +bln aBR aBR aBR aBR -lbc -bDu -qdF -cno -oSC -ovV -hkY -feJ -pyG -pdK -lyG -apS -uCs -gbJ -pTN -aPN -hEG -eRO -eRO -fDc -eGA -iDq -jSt -mfH -wPN -xAs -jbe -sDl -sDl -bHI -bZx -bZx -bZx -bZx -gYm -krQ -thI -bWn -tsz -xMX -hSl -ueS -ueS -ueS -wTw -yaE -rAZ -qOD -keS -eJe -kKX -pAZ -stJ -fsm -qWZ -lvA -gKU -aoW -dxK -fbw -hue -hBZ -eYT -vdi -oMP -iYb -txI -xvZ -iYb -sbi -jWP -ool -jRC -cgC -jaq -vvT -cpm -dnq -ylU -dnq -pRj -pRj -pRj -pRj -jnm -pRj -pRj -gTf -sPI -uFh -vym -vym -sdd -vym -pRj -oKv -mNY -csT -csT -xaI -pnn -jek -kYq -xaI -csT -csT -mNY -kCn -mNY -yaL -rqF -rqF -yaL -yaL -yaL -yaL -pmi -bTF -nHe -jDP -wTg -bRj -gyR -fhX -kAK -iLY -lqE -pXY -pXY -pXY -pXY -uOE +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(37,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fri +utC +vfr +utC +utC +utC +utC +utC +dtP +fUR +fUR +nFL +fUR +fUR +ykb +wOy +uhx +uhx +uhx +uhx +sEB +sEB +sEB +sEB +sEB +sEB +sEB +uhx +uhx +uhx +uhx +bzg +otG +uhx +fwx +uhx +ykb +wOy +uhx +uhx +uhx +uhx +lSu +lSu +lSu +lSu bln -yfW -jKQ +lSu bln -mQb -ebW bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(104,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO aBR aBR aBR aBR aBR -lbc -bDu -hGH -qkL -cLD -qkL -hGH -feJ -iuS -lyG -xgc -lyG -lyG -ihx -wZj -jAk -cMA -wkr -wcL -ven -iFg -kyy -kTz -lbk -sDl -sDl -sDl -sDl -sDl -bHI -bZx -bZx -bZx -bZx -gYm -krQ -dky -bWn -ylz -xMX -lPJ -nVB -nVB -nVB -bpn -uPE -cQA -qIB -xhw -eJe -pXn -pAZ -jDB -qWZ -qWZ -qWZ -wrk -qWZ -dxK -cct -hue -xit -wfK -fHK -qpS -iYb -iYb -iYb -iYb -kFW -ybI -nnR -tuz -eRZ -qpZ -rAA -cpm -ooV -bwD -qdI -pRj -fHv -phk -isK -kXL -xnG -pRj -swO -pHr -qxn -tFK -vAH -smg -dlR -pRj -daS -mNY -kYq -kYq -kYq -kYq -aVI -kYq -kYq -kYq -kYq -mNY -kCn -mNY -akL -tvF -tvF -bsX -gTK -ruO -fKe -rGu -aQW -pVK -wRd -gGt -uJR -rIX -iLY -lqE -fcP -cSx -vyU -vyU -vyU -vyU -fcP -bln -pMM -mQb -lSu -bln -fYT -tTO -mQb -mQb -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(105,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO aBR aBR aBR aBR aBR -lbc -nbp -lIt -hdn -ijj -nbw -lRF -feJ -mgZ -tDL -lyG -lok -nGK -feJ -mex -aKq -iDq -jUn -eRO -gIF -pNz -kyy -vvc -lbk -sDl -sDl -sDl -sDl -sDl -bHI -bZx -bZx -bZx -bZx -gYm -gMK -huT -bWn -ukJ -xMX -vvu -joh -mdM -wBa -fSP -iMw -rRd -bWn -piB -eJe -utR -pAZ -kIL -qWZ -vij -bMZ -paK -aVH -xKJ -dhj -kiL -tOF -tOF -ktU -wzk -wzk -sKz -jle -jfc -vYm -qBt -xMQ -jRC -nvs -hPz -shc -cpm -dVF -ylU -bep -pRj -uuy -mIc -juM -frc -xnG -pRj -kta -kta -vym -vym -pUx -bFf -gAJ -pRj -daS -mNY -kiR -rHQ -wFX -rBV -kJV -cOa -omG -tvW -scx -mNY -kCn -mNY -gmR -tMD -rMG -neF -twt -mwm -btC -wRd -fDn -hcg -fDn -gka -gka -gka -aZH -gka -fDn -aZH -fDn -fDn -gka -uMs -mQb +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln -fPc -mQb bln bln bln -chb bln -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(106,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(38,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vJV +fUR +eYK +xAk +xaf +fUR +uRx +jdY +rsw +rin +uhx +rcS +sEB +sEB +sEB +sEB +sEB +sEB +sEB +oMa +uhx +pgt +dcG +jXm +otG +uhx +fwx +uhx +ykb +jdY +rsw +phu +uhx +jls +bln +lSu +bln +bln +bln +lSu +bln +bln +bln +lSu +bln +bln aBR aBR aBR -bln aBR aBR -nbp -nbp -hjX -omk -omk -jeF -ctE -feJ -feJ -cqW -wHe -aPW -hsN -feJ -uGr -uGr -iDq -qlw -cFZ -mEB -iDq -iDq -ciG -mfH -jbe -sDl -sDl -sDl -sDl -bHI -bZx -bZx -bZx -bZx -gYm -lwO -vTg -bWn -tgn -bEz -tgn -bWn -tgn -bWn -bWn -tgn -bWn -bWn -fzy -eJe -utR -pAZ -dYP -qWZ -xCv -vWL -nci -tPC -xkI -gnM -aHW -clP -clP -clP -clP -clP -clP -clP -rwn -eWc -nDA -vvi -xpJ -vYs -suL -gCn -qIx -dZQ -aNs -atv -pRj -pRj -pRj -pRj -pRj -kmR -pRj -cCP -kta -fcR -uFh -bts -pwi -oVt -pRj -swS -mNY -giQ -ppD -vmU -pnn -pVv -pPR -kWw -qca -aMs -mNY -kCn -mNY -lEA -uJn -ijZ -bXo -twt -ctM -wRd -fDn -fDn -aMb -yjV -wWa -yjV -nOG -haf -rnt -vWr -bgZ -yjV -xHf -gka -gka -gka -gka -gka -gka -gka -gka -aao -bvb -tMa +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(107,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(39,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +dHF +utC +utC +tkU +utC +utC +vJV +mVE +ryM +uee +dJY +qlP +nDJ +sfr +fsv +aZK +uhx +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +uhx +iog +fsv +lFg +dvO +uhx +fwx +uhx +ykb +sfr +fsv +iQX +uhx +qVo +bln +bln +lSu +bln +lSu +bln +lSu +bln +bln +bln +bln +bln +bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln -aBR -nbp -mhx -jeF -egm -axd -wGW -tJN -ikI -feJ -feJ -gPn -fLs -feJ -feJ -uGr -uGr -iDq -jBr -lAL -ejc -iDq -nrG -hTw -lbk -sDl -sDl -sDl -sDl -sDl -psN -psN -psN -psN -psN -wqx -cJd -gYp -bWn -bTJ -cGt -wRI -qdE -meG -bWn -ntK -mQb bln -jII -ooV -wTL -eff -qWZ -qWZ -qWZ -svR -xRw -nYv -qVp -xKJ -dvA -lCI -age -olG -bEC -uEy -iLm -dxK -dxK -cpm -cpm -cpm -cpm -cpm -cpm -cpm -cpm -cpm -dJd -iuv -dnq -nlv -uMN -nsM -fZf -qpU -cEr -iXT -aHV -kta -gDm -oKY -kCI -iXk -dNX -pRj -daS -mNY -dSf -vfS -jGh -jNg -vHa -alv -vHa -mbt -hQj -mNY -kCn -mNY -bpd -uJn -kYL -gLu -dth -bTF -wRd -gka -igw -lAu -vWr -vWr -vWr -vWr -vrI -vWr -vWr -neR -vWr -uLH -xNC -gka -miS -nrH -oNX -lhC -maY -gka bln -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(108,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(40,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +dHF +utC +utC +utC +utC +utC wNO +utC +vJV +fUR +fUR +kVA +wWS +mVE +nDJ +fYW +fsv +xdH +uhx +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +qVo +uhx +mgc +fsv +sfr +dvO +uhx +fwx +uhx +ovm +fYW +fsv +asm +uhx +qVo +bln +lSu +bln +lSu +bln +bln +lSu +bln +lSu +bln +bln +bln +bln +oEB +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -lBD bln -aBR -nbp -xKY -omk -sMY -wMV -qqM -wMi -xaJ -arA -jwx -kfy -aZo -jwx -wfp -cZm -hLf -okx -mLu -lAL -npn -iUo -cOp -hTw -gIL -esK -esK -esK -esK -esK -tPW -iPT -ppl -kes -hzY -jpd -lwO -gYp -bWn -glP -nzB -nzB -nzB -sdX -tgn -itN -nuX -yfF -pAZ -dnq -kgD -utR -uEQ -lET -grA -fwQ -nOH -gxU -gZq -ybv -ybv -ybv -ybv -ybv -ybv -dxK -dxK -dxK -sEB -sEB +bln +bln +bln +bln +bln +bln +"} +(41,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +fri +utC +vJV +kDs +ydI +nvU +ydI +ydI +btm +fld +ycA +lpH +uhx +vCm sEB sEB sEB @@ -244079,5841 +227013,5691 @@ sEB sEB sEB sEB -pAZ -dnq -iuv -dnq -nlv -uMN -uMN -msP -hPQ -cEr -aQO -fFv -kta -bbo -vja -wle -bbo -bOk -pRj -daS -mNY -adg -wlz -tnp -pnn -aZx -uro -dKh -uGl -qea -mNY -roQ -mNY -lEA -uJn -cSE -tCe -twt -eCt -wRd -fDn -rOA -eEO -nMx -azg -azg -fKO -azg -azg -pJy -vEy -ban -wdL -dso -nnl -raT -raT -brY -lhC -lhC -gka +fiv +uhx +sjz +lKc +uMm +dvO +uhx +fwx +uhx +ovm +fld +ycA +lpH +uhx +pSK +bln lSu -chb -uer -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(109,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +lSu +lSu +bln +bln +bln +bln +bln +bln +bln +bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln -uer bln -lBD -nbp -mhx -jeF -lkb -arb -mwh -xlx -oSm -jQB -eqI -eqI -eqI -eqI -eqI -piv -bkC -kyy -daq -lAL -vAt -kyy -dOY -psP -lbk -sDl -sDl -sDl -sDl -sDl -psN -cch -nTp -nTp -kxp -kQc -cxz -nnx -bWn -soN -npu -oMS -npu -jzE -bWn -nSo -jII -pAZ -pAZ -rLl -eJe -utR -tmQ -wUJ -ppK -wna -lCg -wEG -ybv -ybv -ibY -jRg -qCP -aAi -ybv -ybv -nBk -paM -paM -paM -paM -paM -paM -paM -paM -paM -paM -paM -dnq -vrX -nBl -kta -aHR -cPi -gCl -jpH -mkn -qnw -sEn -kta -khu -bbo -pbE -vja -iRc -pRj -daS -mNY -voK -voK -voK -voK -voK -voK -voK -lII -voK -mNY -kCn -mNY -ixG -aPf -dzJ -drd -twt -mEw -sSJ -fDn -rOA -eEO -hTm -cks -sGJ -cGf -qMN -iUJ -hHp -cGf -atN -fpD -jFV -szo -vBm -vBm -rQf -rQf -mUs -gka bln -chb bln -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(110,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(42,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +vfr +utC +utC +utC +utC +vJV +ydI +ydI +nWM +kHl +mVE +nDJ +wOy +uhx +uhx +uhx +uhx +sEB +sEB +sEB +sEB +sEB +sEB +sEB +uhx +uhx +uhx +uhx +bzg +dvO +uhx +fwx +uhx +ovm +wOy +uhx +uhx +uhx +uhx +bln +lSu +lSu +bln +bln +bln +lSu +bln +lSu +bln +bln +lSu +bln +bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR -lBD +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln bln bln -lBD -nbp -nbp -ezs -jeF -omk -jeF -nQf -pCE -arA -rYB -rgC -she -sYG -rgC -sGp -kNQ -iDq -kyy -bKN -kyy -iDq -rpT -ygM -mfH -sDl -sDl -sDl -sDl -sDl -psN -riB -dkY -wLc -hzY -bRn -fng -lBt -bWn -bWn -tgn -tgn -tgn -bWn -bWn -mae -pAZ -jhA -eZL -ljx -nxW -utR -tmQ -qXF -dMX -gER -nOH -xVc -ybv -xzT -cHO -aer -cHO -rOC -ybv -ybv -paM -paM -orG -gtP -grc -xvs -pgp -adf -tQg -mdc -rWc -paM -nTe -iuv -dnq -kta -ihh -ryh -rXY -wzY -mIH -bqi -aQO -kta -drw -bbo -gwx -erA -qll -pRj -dPT -pRj -pMu -gVD -kPu -ajF -qwe -uJH -iAc -roj -gXN -pRj -kCn -mNY -gTK -fNr -nzI -gTK -gTK -myX -sSJ -gka -oAs -fab -eDC -uIV -nXl -wuo -agm -fNN -gbh -wuo -sRL -oyz -mLV -fDn -rQf -vBm -viH -viH -rQf -gka -mQb -bvb -jHb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(111,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(43,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +dHF +utC +fwx +utC +dtP +iOh +iOh +kDs +mVE +azN +xft +lRg +iaU +nDJ +hAG +dDp +cJt +cJt +jMw +sEB +sEB +sEB +sEB +sEB +sEB +sEB +lAC +cJt +cJt +qYz +lnL +dvO +uhx +fwx +uhx +ovm +uhA +lAC +cJt +cJt +qYz +rNE +lSu +lSu +bln +ozo +bln +bln +bln +bln +bln +lSu +lSu +bln +lSu +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln -tGr bln -lbc -nbp -jOS -kKx -dlK -pbI -jIm -mgU -mgU -nea -mgU -mgU -mgU -mgU -vAm -hAO -jwx -kOk -nlp -dNt -mfH -uJX -nCi -mfH -sDl -sDl -sDl -sDl -sDl -psN -pTd -jLZ -jQU -psN -pfe -aeQ -mdX -pfe -oyd -vws -mjf -wEb -sIZ -pfe -pfe -jII -mxM -qLt -uom -pkW -kKX -tmQ -bvE -aRz -paK -nOH -mOL -ybv -oqz -lRx -oJP -bdK -dzi -ybv -ybv -kxT -mVi -dgQ -rTM -fwf -fwf -fwf -fwf -fwf -qHP -eYs -hcL -isx -iuv -dnq -kta -kta -kta -kYS -nlv -kmC -kta -kta -kta -vym -bCs -vym -vym -vym -vym -bbr -wou -bbr -cLN -vol -fmc -jtM -cLN -cLN -qbO -xtQ -hIH -kCn -mNY -hFJ -tMD -ehJ -fMt -twt -tXB -sSJ -gka -uXC -fab -fNv -wuo -wuo -nnw -spv -dwy -spv -wuo -cSH -kUz -mLV -fDn -lhC -lhC -lhC -lhC -lhC -gka -mQb -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(112,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(44,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +dHF +utC +utC +utC +utC +utC +lJO +hEI +hEI +biY +biY +rkk +bLs +xRI +ydI +ior +wOy +uhx +uhx +uhx +uhx +sEB +sEB +sEB +sEB +sEB +sEB +sEB +uhx +uhx +uhx +uhx +bzg +oVX +fUR +fwx +fUR +tvm +wOy +uhx +uhx +uhx +uhx +tMa +lSu +lSu +lSu +bln +lSu +bln +bln +lSu +lSu +lSu +bln +lSu +bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln -lBD -tGr -tGr -tGr -lbc -nbp -nbp -lQc -lQc -lQc -nbp -mgU -bvX -ccF -fad -azx -tDw -rhf -cAC -cEL -hwZ -vdf -xFm -riv -xHq -ccr -txU -jzC -qml -qml -qml -qml -qml -iiH -teP -teP -teP -qbk -gMK -fng -rHc -mxF -uog -vVY -uog -uog -nfU -bzI -uog -yaF -mny -dnq -wmK -rcj -utR -tmQ -eOw -rns -mkA -nOH -aAv -ybv -jjq -fHo -hMc -rOC -dhL -ybv -ybv -aqd -umu -umu -fyK -dPq -qqT -xdb -gVq -wnz -loT -fwf -hcL -isx -nlT -krv -hyc -fdy -fdy -pPh -cLN -xxz -fdy -pvg -nQW -vsz -fdy -oRb -wHX -nbi -qzu -cLN -cLN -cLN -cLN -fdy -eKb -nzq -cLN -cLN -qbO -kKH -pRj -eAj -sro -dgp -qkT -kzA -whW -twt -mEw -sSJ -oSR -glc -fab -ktw -bny -jQe -xBp -bYw -bYw -bYw -ucO -kcD -ugq -njT -fDn -cYq -lhC -lhC -phL -lhC -gka bln -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(113,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(45,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +fwx +vfr +utC +lJO +dxI +muv +qVN +biY +biY +biY +biY +ydI +oiD +xVN +fUR +fUR +nMj +chP +sEB +sEB +sEB +prs +sEB +sEB +sEB +fiv +fwx +fUR +fUR +bAo +nAX +fUR +fUR +fUR +qeF +xVN +fUR +fUR +oqJ +bln +bln +lSu +bln +bln +lSu +bln +bln +lSu +bln +bln +bln +lSu +bln +bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(46,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +tkU +utC +utC +lJO +lJO +ldJ +nOx +cwe +dIx +laB +laB +lJO +lXA +nDJ +wOy +pGy +fUR +hHG +fwx +mZf +ooL +sEB +sEB +sEB +ooL +rwt +fwx +fwx +fUR +rJr +bzg +dvO +clT +fUR +xce +ovm +wOy +rCU +fUR +bln +uer +bln +oEB +lSu +bln +bln +bln +lSu +oEB +bln +bln +bln +bln +bln +oEB aBR aBR aBR -uer +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -tGr -tGr -tGr -lbc bln -lBD bln -npb bln -lSu -hIO -rPP -eNl -vbF -mcH -xyx -eDM -xFm -tGB -nCh -fwh -ijU -bqG -lbk -fqH -sbN -lbk -oAh -oAh -oAh -oAh -oAh -vDb -lgz -hBr -mzP -vDb -vvh -vPC -pvm -dMi -cvC -kQc -iYG -kQc -kOV -kQc -kQc -iJN -gOy -gOy -fKF -qjg -utR -tmQ -lkI -lvl -aog -ktl -dEI -uab -bzC -jKK -mVp -mNJ -lVc -ybv -ybv -tIy -umu -umu -fyK -oIr -eEm -wzC -oIr -oIr -sZU -obc -bRM -jbj -gMM -jba -mKC -oQp -oQp -lCY -oQp -oQp -oQp -oQp -oQp -oQp -oQp -oQp -oQp -tdb -oQp -oQp -oQp -oQp -oQp -oQp -mxX -oQp -oQp -kPg -nyn -bYi -pRj -cpi -mNY -bTq -xUP -gRt -rpF -twt -fcg -eTx -fDn -jQz -tNx -tfR -iNa -tLW -seR -lgg -uey -esE -uLe -lGp -efV -iaV -fDn -efE -lhC -efE -kJU -lhC -gka -tMc -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(114,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(47,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +dHF +lJO +kQg +tLB +bIl +ivi +sbD +hjI +heg +lJO +htq +nDJ +wOy +eyk +fUR +fUR +fUR +fUR +uhx +uhx +uhx +uhx +uhx +fUR +fUR +fUR +fUR +dWl +bzg +dvO +mEv +fUR +gCq +ovm +wOy +eyk +fUR +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln aBR aBR aBR aBR -bln -tGr -tGr -tGr -lbc +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -npb bln bln -hIO -vyd -ePr -kGc -kWh -qVJ -mgU -kqc -kqc -kqc -jct -jaw -xwf -aPd -hQP -lWg -ncB -bgN -bgN -bgN -bgN -bgN -tVu -lvS -mbz -hha -dEk -nUJ -mES -csB -gtB -tny -dLo -ctj -aZG -wYZ -aKI -peq -obb -qJV -vBh -fiE -oBs -utR -tmQ -axf -kzD -nsj -lhv -sDV -ybv -xwm -vzT -wfc -oqz -rSN -ybv -ybv -aqd -umu -umu -fyK -dCR -lGG -apt -rcA -nrB -xWO -dHs -hcL -isx -fuM -vXh -hyc -rWn -mJa -rWn -mHa -vmk -rUY -rWn -rWn -cLN -mFU -cLN -rWn -rWn -rbs -eQX -rWn -rWn -gDV -tro -eKb -jRV -uOL -gQq -bwt -nZu -mNY -mNY -mNY -qnC -qnC -qnC -qnC -gyR -euq -wfn -ras -fkj -fab -iag -dfq -ein -xBp -imd -imd -imd -vuK -utA -qYQ -xUb -fDn -lhC -lhC -lhC -gsk -lhC -gka -lSu -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(115,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(48,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +dHF +utC +utC +fri +utC +lJO +kQg +ofc +ylV +gjI +lJO +lJO +lJO +lJO +fUR +lzU +wwi +fUR +fUR +fUR +wUf +iQd +oOP +ccS +ccS +ccS +lVY +hHl +xuW +fUR +fUR +fUR +ePV +eHX +fUR +fUR +fUR +drb +tuD +fUR +fUR +fUR +fUR +rNn +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -tGr -tGr -lbc -bln bln bln -miY -oot -oot -hIO -jDt -wtg -diq -uet -ptr -mgU -fUj -kcc -tpX -oIC -jjt -bvY -jNp -jNp -jNp -jNp -sDl -sDl -sDl -sDl -sDl -skl -skl -skl -skl -skl -skl -skl -iLa -skl -skl -skl -skl -skl -skl -skl -skl -skl -pDt -tsk -wLX -eJz -utR -tmQ -dqR -rUo -paK -lhv -hwC -ybv -vOD -rOC -vzT -cHO -oYu -ybv -ybv -jkK -kaW -bHj -ery -dHs -dHs -dHs -dHs -dHs -qlQ -ncu -hcL -isx -iuv -ipa -xVK -xVK -xVK -xVK -cvS -vWh -cvS -xXf -xXf -skn -lHE -frE -obK -npB -gwK -jyR -jyR -gwK -bID -bID -hOc -cLw -hOc -djO -hOc -bID -qnC -vkz -aom -pcg -deD -unG -qnC -isX -eBI -oEt -gka -vKy -fab -fyQ -wuo -wuo -nnw -cDK -uvk -cDK -wuo -cSH -kUz -mLV -fDn -lhC -lhC -lhC -lhC -lhC -gka bln -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(116,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(49,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +fwx +utC +utC +lJO +lJO +lJO +fRb +lJO +lJO +fjF +qhO +lJO +iVv +qpt +fBQ +syL +vmC +syL +dwb +fsv +cuc +hgr +fbF +hgr +xFs +fsv +cmV +bXx +aui +bXx +btW +jJd +eyj +lGL +bXx +oMq +tEc +iGd +mKJ +vKD +tKI +tKI +tKI +tKI +htd +ntK +bln +lBD +bln +bln +bln +bln +bln +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -lBD -tGr -lbc bln bln bln -npb bln bln -hIO -hIO -hIO -bUx -bUx -bUx -bUx -kpX -jmy -xMn -cAC -nRm -bRG -hfA -idv -ahA -cHY -sDl -sDl -sDl -sDl -sDl -tOq -jOQ -jOQ -jOQ -jOQ -jOQ -jOQ -jOQ -deY -deY -fhz -deY -gUr -deY -deY -deY -wAZ -tVd -uLC -xQg -fwm -utR -tmQ -pMy -cOP -gER -wLt -bIL -ybv -pPN -oqz -kOX -oqz -oXg -ybv -ybv -paM -paM -tcn -bMC -dUP -unH -uOo -bMt -oOt -mln -igb -paM -xns -iuv -qrb -xVK -pks -xVV -cKo -cvS -gDp -kRP -oWl -vRS -stD -xGp -eFd -qeh -eBV -gwK -gWt -tTV -jtA -bID -obo -miw -gCK -cMd -lHC -vzU -ahm -qnC -bjK -qGQ -sOE -wcx -fVy -qnC -nAw -uif -wRd -gka -gSr -fab -iag -loc -hNI -wuo -fRv -fNN -esE -wuo -hqE -iam -mLV -fDn -rQf -vBm -lVu -vBm -lfp -gka bln -bvb -hZu +"} +(50,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +dtP +mGf +lJO +rrn +nud +hjI +ndz +hjI +xmo +vmx +eTe +nvI +nvI +oTc +nvI +nvI +fwM +fsv +cuc +hgr +hgr +hgr +xFs +fsv +dpU +swK +swK +ubx +swK +swK +swK +wfF +swK +nqD +thX +peM +ddd +mKa +ldw +bCQ +bCQ +tKI +bln +uer +bln +bln +bln +bln +bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(117,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -lBD -tGr -lbc -bln bln bln -lbc bln bln -lBD bln -lSu -bUx -jOQ -bxQ -bUx -oty -vxc -aKt -tDk -jjt -lUw -iWS -vwt -gII -cHY -sDl -sDl -sDl -sDl -sDl -tOq -jOQ -skl -skl -skl -skl -skl -skl -skl -skl -skl -skl -skl -skl -skl -skl -skl -pAZ -pAZ -rLl -gOy -utR -tmQ -dtr -gKG -iBe -lhv -xpw -ybv -ybv -pos -cBU -twK -pyh -ybv -ybv -nBk -paM -paM -paM -paM -paM -paM -paM -paM -paM -paM -paM -dnq -iuv -yas -xVK -jbh -eUW -bmu -cvS -gDp -kRP -ruo -ruo -mzE -aZV -qvW -gwK -wTC -hvS -elj -iRr -omi -tKi -czl -ydg -dAm -szR -dcC -jGB -akz -sCA -guz -ojv -bAT -eri -pvE -qKQ -hqA -uif -wRd -fDn -rOA -fab -iag -pQo -hNI -wuo -kSM -aFn -ctk -wuo -cSH -kql -liI -szo -vBm -vBm -rQf -rQf -mUs -gka -mQb -chb -mQb -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(118,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(51,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +vOy +utC +utC +tUm +utC +lJO +lJO +lJO +pOq +cKe +thY +hjI +ilv +xmo +lJO +fUR +fUR +mVE +fUR +fUR +fUR +kIh +fsv +cuc +hgr +jIp +hgr +xFs +fsv +jLM +fUR +fUR +fUR +ort +ort +fUR +fUR +fUR +mYA +nEA +nwT +nwT +nwT +nwT +tKI +pgE +tKI +bln +dHF +utC +tkU +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -mZf -oot -oot -ajx -qVo bln bln bln bln bln -bUx -xmO -ubE -bUx -iQj -aOS -rud -cAC -mWM -scu -pmr -qPp -ryG -cHY -sDl -sDl -sDl -sDl -sDl -tOq -jOQ -skl -lcB -rmn -ygB -svH -nCP -ygB -lcB -rmn -ygB -wIz -eFt -ygB +"} +(52,1,3) = {" bln -oJn -fsm -pAZ -dnq -nfk -utR -tmQ -qnV -qGd -cEv -lhv -iGH -bGm -ybv -ybv -ybv -ybv -ybv -ybv -lpM -vey -vey -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -pAZ -dnq -iuv -vXh -xVK -qbn -fiO -arg -cvS -gDp -kRP -sBK -qKx -aRR -tRZ -oyj -gwK -nEV -bry -vPc -fLq -hro -tKi -kCG -dxA -oht -rSC -ami -oPU -wHj -mBB -juH -ojv -lqi -mDw -tbH -qKQ -aTj -uif -wRd -fDn -rOA -fab -bjl -shB -shB -naU -cll -shB -yeD -nka -iCg -kql -oNO -bBJ -dCy -dCy -fyR -lhC -lhC -gka -mQb -chb -uer -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(119,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +vfr +utC +fwx +fwx +cyH +hjI +nbj +hjI +uDc +xyO +eUf +aUm +kEY +kEY +qPq +gsN +nwr +owk +gjZ +abv +wdo +alD +ael +kdU +kdU +kdU +jbJ +xvl +jLM +buF +fUR +xxI +juu +juu +lnp +gel +fUR +teE +bKA +nwT +wvJ +tzM +aUM +tKI +bCQ +tKI +tKI +qRv +tkU +utC +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -uer bln -lBD bln bln bln -npb bln bln bln -tGr -tGr -bUx -xmO -deY -bUx -kdT -bLt -syN -cAC -mWM -bRG -kpj -fGq -eig -jNp -jbe -sDl -sDl -sDl -sDl -skl -jOQ -skl -nYn -hui -ygB -qbF -oqg -ygB -vZz -bnt -ygB -vZz -rVV -ygB -vXU -drZ -yfF -jII -eff -kxA -eff -qWZ -qWZ -qWZ -aCP -wKI -iFs -qVp -lpM -aJE -hho -cNK -lKw -lpM -lpM -lpM -lpM -lpM -lpM -lpM -lpM -mhQ -mhQ -mhQ -mhQ -mhQ -mhQ -rhw -iuv -ozW -xVK -vXX -cNm -vPk -cvS -gDp -kRP -lyq -xBN -bfU -aSu -dBK -gwK -jyR -sok -gwK -jyR -bID -bID -fvA -vCK -rSC -rSC -rSC -tGH -kVM -sCA -rSP -uKM -uaz -vqf -dCW -ixZ -rGu -eZO -wRd -gka -lzJ -snO -pIm -vWr -vWr -vWr -xfn -vWr -vWr -kQt -vWr -nsv -tpk -gka -oWQ -dcO -alx -pMC -qWJ -gka +"} +(53,1,3) = {" bln -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(120,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +dHF +utC +utC +fri +fwx +utC +lJO +lJO +lJO +lJO +uDc +lJO +lJO +fsZ +lJO +lJO +lJO +opS +jIn +nLD +iRo +bvq +kHP +cuc +mVE +mVE +mVE +mVE +mVE +xFs +jLM +dvf +fUR +juu +jNB +qku +ukD +hrh +fUR +wtP +gMt +cut +pGd +bPw +ixb +tKI +jLX +fbY +teN +utC +utC +utC +utC +utC +utC +utC +utC aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +utC +utC +utC +tkU +utC +utC +utC +fwx +fwx +utC +utC +utC +utC +utC +utC +vOy +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -tGr -tGr -bln bln -npb bln -tGr -tGr -tGr -tGr -bUx -hJe -xmO -bUx -kzw -kzw -kzw -cAC -xAQ -iMg -jNp -jNp -jNp -jNp -pVL -sDl -sDl -sDl -sDl -skl -uFS -skl -nOl -oCF -ygB -dcq -peb -ygB -mJO -oCF -ygB -bSW -oCF -ygB -lBD -jII -jII -jII -aVr -xwC -utR -pAZ bln -qWZ -bGc -vmj -aqB -pVq -rkI -oRk -mvc -mvc -rAW -gYz -mVw -kKG -jda -lpM -rEo -euf -jzn -mhQ -kDa -erZ -wVu -fZg -mhQ -pzb -iuv -prh -qFX -lke -laM -lIQ -cvS -gDp -kRP -uzf -pcs -bfU -ecs -jLl -dfQ -vbO -fKI -vEw -bAR -gnj -uwj -axY -eeT -bDz -rSC -inE -oPU -xpc -qnC -qnC -sCA -sCA -qnC -qnC -qnC -tzH -uif -wRd -fDn -fDn -bfL -dXn -mmk -qZQ -ead -xwE -ner -ner -xwE -ner -asy -sEU -gka -gka -gka -gka -gka -gka -gka -aao -bvb -tMa bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(121,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(54,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +lJO +lJO +fEd +weL +lJO +uDc +lJO +tEi +dxu +nUh +qjr +lJO +qYA +xnV +qEK +roX +rMu +kHP +cuc +mVE +ich +nAH +nAH +mVE +xFs +jLM +qHO +fUR +nyT +kBU +xgX +juu +gNL +fUR +usU +cTh +iJl +ooa +dWP +bam +erK +rfF +brM +teN +vfr wNO +utC +utC +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +aBR +utC +utC +utC +tkU +utC +tkU +utC +hAM +lej +eRE +qQk +tTO +utC +tkU +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln -tGr -tGr -lBD bln -mlS bln -xAs -nXb -nXb -nXb -ykw -eyb -gck -ykw -sLj -vhL -law -eqI -ewM -wAT -kdy -taj -vsL -vpn -lRc -sDl -sDl -sDl -sDl -skl -jOQ -skl -ygB -gQI -ygB -ygB -ugX -ygB -ygB -nJH -ygB -ygB -rsV -ygB -fEZ -ygB -tSb -aab -dcI -sNI -bUH -pAZ -hLw -qWZ -ydk -tGF -iUT -tnk -lpM -rCD -uEm -nfL -mvc -uQT -uDa -cPV -mvc -lzb -anu -jly -fXb -mhQ -oYN -jUD -nZb -lRf -mhQ -dnq -iuv -iFm -xVK -xRo -owv -qXU -uwO -rSx -kRP -kRP -uFV -cAR -kNk -tmA -bNE -hht -xKU -xnE -tvd -egV -xAn -syU -vYJ -fGn -iSL -vzU -pZn -bBd -xSv -gyR -lLD -xZl -qaF -pna -gyR -cod -uif -jKe -wRd -fDn -oSR -bDX -gka -gka -gka -kvj -lhC -lhC -hte -gYg -kQQ -hRE -haC -haC -haC -haC -haC -haC -hso -lSu -chb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(122,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(55,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +wLW +utC +utC +utC +utC +utC +utC +utC +fwx +tkU +tkU +utC +utC +utC +utC +utC +utC +utC +tkU +tkU +utC +utC +utC +fwx +utC +lJO +cKB +tcR +hjI +lJO +kgy +lJO +rmZ +egT +xiW +lnY +lJO +kyU +qFJ +mWY +hmt +xzo +kHP +cuc +mVE +nAH +nAH +nAH +mVE +xFs +jLM +fnC +vNe +piP +npy +npy +rFb +hrh +fUR +pFW +iNH +aVb +onQ +inQ +jZD +erK +bCQ +pdf +teN +utC +utC +vfr +utC +utC +utC +vOy +utC +utC +utC aBR aBR aBR aBR -lBD -tGr -tGr -tGr +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +utC +utC +utC +utC +utC +tkU +fri +utC +bvb +tMa bln bln +bvb +qRv +fri +tkU +tkU +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -sEB -ykw -nEs -wOc -lEj -cKv -nsL -eyb -hAQ -ksC -loy -psY -lmM -oyL -kbm -lRc -sDl -sDl -sDl -sDl -skl -jOQ -yab -npa -rMN -oyv -alO -rMN -agp -alO -rMN -alO -alO -qCI -fhg -alO -fEe -hYD -hYD -waU -xwC -kKX -pAZ -luG -qWZ -qWZ -qWZ -qKn -qWZ -lpM -ejT -iEV -iEV -cPV -hCV -jeC -jeC -mvc -lpM -oGQ -wKw -mZT -mhQ -hUV -aks -nLH -xex -mhQ -cBk -kdA -xFj -xVK -xcS -tyK -eMf -cvS -gDp -iMA -qNl -fkO -tjY -aMr -cwj -keP -cRO -guU -ayq -sdp -bID -iKh -rOU -qXt -jEo -fEL -boX -vjQ -lCD -pNO -nFc -uSo -uSo -uSo -ndC -etO -cqo -oqC -eZP -eZP -gKl -tlh -tCW -oGy -fDn -lhC -hte -hte -hte -bEa -dCy -dMK -gka -nce bln bln bln bln +"} +(56,1,3) = {" bln -lSu -hAM -sds -ntK bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(123,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +vOy +utC +utC +utC +hPv +kdS +kdS +eRE +wvw +kdS +kdS +eRE +kdS +kdS +kdS +eRE +qQk +kdS +kdS +kdS +kdS +kdS +eRE +gSd +kdS +lJO +gwM +xdU +nxe +kUn +tba +lJO +hPX +vcc +mXA +waM +lJO +gwq +mWK +isz +roX +iLA +uZT +cuc +mVE +nAH +nAH +nAH +mVE +xFs +jLM +iYy +tma +juu +mxQ +pXU +kSA +vUI +fUR +tkc +nsr +xSl +vxO +qAB +hCY +tKI +npr +uyx +teN +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +aBR +aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +utC +utC +utC +utC +tkU +tkU +utC +utC +fwx +chn bln +cnx +bln +chn +utC +utC +fwx +utC +tkU +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -tGr -tGr bln -lSu -xiI -mBh -oot -oot -kei -pDC -clq -qgO -qgO -bqx -xQG -ykw -mfH -cIY -mfH -mfH -lHL -fAH -aAl -lRc -sDl -sDl -sDl -sDl -skl -jOQ -skl -fZV -iPm -iPm -jKN -qxp -jqr -drt -eGy -iPm -iPm -iPm -iPm -iPm -pcx -hay -cfr -dct -iuv -utR -pAZ -wtj -eJK -qWZ -kGe -lWd -dOF -lpM -djh -sgZ -sgZ -pZN -kwu -uKS -uPB -xLF -lpM -dbm -vey -vey -mhQ -raN -rJv -hPT -tJR -mhQ -dnq -iuv -opu -xVK -gov -cvS -cvS -cvS -gDp -qEm -kRP -fiT -kQf -hDh -vnt -keP -qTa -ctr -avk -gxP -bID -phw -uCK -gJN -ckX -iub -inn -wyN -vfU -pdV -gyR -vHT -uGT -qWy -pna -gyR -jmD -xrg -dxn -aPD -aPD -rHx -fKf -pst -bWQ -xRZ -jer -xJT -eCp -eCp -uYO -rOe -gka bln -mQb -mQb -lSu -lSu -mQb bln -chb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(124,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -aBR +(57,1,3) = {" bln bln bln -lBD bln bln bln bln bln -sEB -ykw -dtz -lEj -fCW -nUg -dKP -ykw -tSi -kfc -dcX -mfH -nmq -kqG -pVL -pVL -jbe -sDl -sDl -skl -skl -ykA -skl -ygB -ygB -ygB -nmo -qIU -qIU -lDq -wVD -uja -uja -uja -iyJ -uja -uja -uja -uja -uHN -vrX -utR -pAZ -eAu -hFr -qWZ -oVR -lfo -oVR -lpM -oii -auU -auU -fgq -heX -heX -heX -viQ -lpM -lIp -axB -lrD -mhQ -ixu -hGh -frN -frN -mhQ -pzb -iuv -rsa -cvS -ewi -cvS -svV -kwX -gDp -egp -kRP -keP -pJQ -pJQ -pJQ -keP -vei -bTx -nvW -xxs -bID -bID -bID -bID -nnp -res -eLM -bID -bID -bID -gyR -gyR -gyR -gyR -gyR -gyR -gyR -gyR -gyR -aPD -lQe -umz -sbK -tOk -gka -gka -gka -gka -gka -fDn -fDn -fDn -gka -ujK -gSd -lej -ujK -ujK -ujK -yhY -bvb -ftY +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +tkU +fPc bln bln bln +bln +bln +bln +bln +muK +mQb +bln +bln +hty +bln +mQb +bln +uer +mQb +bln +bln +bln +lJO +eXa +sHO +hjI +lJO +eUf +lJO +nKW +dak +byv +sOY +lJO +bpm +xQs +rqi +iRo +lvW +uTI +cuc +mVE +ich +nAH +nAH +mVE +xFs +bwn +ktW +tKI +tKI +tKI +tKI +tKI +tKI +nwT +goI +nwT +nwT +fZK +wRM +iox +tKI +bCQ +tKI +tKI +qRv +vfr wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(125,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC +utC +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR aBR +aBR +utC +utC +tkU +hAM +lej +ujK +vTh +ujK +ujK +obe bln +tmR +mQb +obe +ujK +lej +vTh +qQk +ujK +hAM +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -lBD bln bln bln bln -mvl -mvl -mvl -mvl -mvl -kkl -nUg -qOP -ykw -nOQ -cqx -sQB -mfH -pVL -pVL -pVL -sDl -sDl -tOq -tOq -skl -wDI -jOQ -skl -eFW -rlV -ygB -jMx -gJC -akD -qIU -uUM -uja -jHG -jcF -vVw -jcF -qSh -hsB -uja -ltY -iuv -utR -pAZ -fsm -efv -bcN -yan -fVf -epC -lpM -vPF -uEm -uEm -uEm -uEm -cYm -uEm -eqU -log -sIt -sIt -sIt -log -kpA -hGh -raf -raf -mhQ -dnq -iuv -pDi -cvS -cGA -cGA -pNq -lBS -aTp -lvB -kRP -wpp -rzj -mRG -bIU -hOX -xXz -rAF -nvW -nSc -qvQ -fpJ -qvQ -bID -ejQ -bID -ejQ -bID -pqc -djU -ggK -xXK -pus -qCB -qwF -qwF -qwF -qwF -qwF -aPD -cht -eiI -bum -wWM -hVf -pcI -ehP -uDi -aPD -tfk -sEB -qVo -chb bln -lSu bln bln +"} +(58,1,3) = {" bln bln bln -chb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(126,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +tkU +fPc +bln +uei +tmR +uei +bln +uei +tmR +uei +mQb +uei +tmR +uei +bln +mQb +bln +bln +bln +lSu +mQb +bln +lJO +uBX +hjI +hjI +lJO +eUf +lJO +jvj +hKu +aaI +lJO +lJO +oCO +oCO +oCO +oCO +gyH +uTI +cuc +mVE +mVE +mVE +mVE +mVE +xFs +pLn +dpl +tKI +wKu +tXs +ljK +aRe +tKI +hbt +cTD +akK +tKI +tKI +cyA +tKI +tKI +kPq +tKI +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR aBR aBR aBR aBR aBR +aBR +utC +utC +utC +vap bln +ntK bln bln bln bln -lBD -tCR -lGK -jRP -bLd -wbG -kkl -dhU -xQG -olY -hQi -rRM -mFQ -lbk bln -sDl -sDl -sDl -sDl -tOq -bLq -bLq -bLq -jOQ -skl -dxh -xri -ttI -cmL -lLf -asa -kCu -uKR -uja -lsF -pBs -eYF -sNj -fKR -hsB -uja -ise -iuv -utR -pAZ +tmR +mQb bln -lBD -pAZ -hZf -rYE -xUg -lpM -rdf -tpN -nKT -gjQ -ipU -cpr -iwd -jEg -dGU -wdg -bVv -wdg -ukR -pwf -oUL -qKz -qKz -mhQ -okb -iuv -kgc -bOj -cHl -ipA -fsF -mQG -caZ -tvJ -kRP -pzC -jAO -pYg -pYg -eoD -lQE -aPk -vxV -jkS -pzi -pou -sNu -uAK -wSo -wSo -vZt -sUB -rXe -hHN -bJD -ydN -rsW -tQb -xKd -fJL -mDX -mDX -qwF -aPD -eiJ -pyM -pQv -bnp -ggG -bll -gEr -mzz -lzy -sEB -sEB -sEB -xhA bln bln -uer +bln +bln +lSu +fPc +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln bln -chb -uer bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(127,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(59,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +fri +utC +bvb +tMa +uei +tmR +uei +mQb +uei +tmR +uei +bln +uei +tmR +uei +bln +bln +lSu +bln +bln +bln +bln +bln +lJO +lJO +lJO +lJO +lJO +erk +lJO +lJO +lJO +lJO +lJO +mCT +blA +mCT +sGq +oCO +tdp +uTI +kXD +nKk +nKk +sre +nKk +nKk +aWN +pLn +qFs +tKI +mqa +xqj +vsT +gXr +tKI +gec +ihc +sJI +tKI +hsQ +bCQ +eVp +eVp +bCQ +tKI +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR aBR aBR aBR aBR aBR aBR +aBR +aBR +aBR +aBR +utC +utC +utC +fPc +mQb +xxB +xxB +xxB +xxB +xxB bln +sEB bln -uer +xxB +xxB +xxB +xxB +xxB +lSu +fPc +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -tCR -gWX -gWX -bEf -iME -tsH -qhP -xQG -ykw -pDB -wNt -pXk -lbk -sDl -sDl -skl -skl -skl -skl -nTK -tnP -cIK -jOQ -skl -ddr -ccp -ygB -vrD -qbw -tfO -urd -xTU -uja -aty -pBs -uja -uja -uja -hsB -uja -wJk -iuv -ezK -jII -pAZ -pAZ -jII -nbZ -jIO -wIm -lpM -lpM -lpM -lpM -lpM -lpM -lpM -lpM -lpM -log -sIt -sIt -sIt -log -mhQ -pOH -mhQ -mhQ -mhQ -rLl -jtE -ggr -cvS -cvS -bRH -caZ -hgK -caZ -rqN -btg -pGo -uoE -uoE -vRW -cvN -sVL -jlV -hHN -hHN -iRw -vuf -anI -uop -tHj -hHN -wAB -jkW -laV -hHN -cDz -tBL -hpI +bln +bln +bln +bln +bln +bln +"} +(60,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +tkU +utC +utC +ebW +mQb +uei +tmR +uei +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +lSu +lSu +mQb +ntK +bln +uer +bln +mZm +hEI +qhO +eUf +rgs +eUf +anl +lil +anl +pLZ +lJO +aPM +aPM +aPM +qTm +oCO +oCO +tmL +arG +cIa +dJY +npq +ecU +gkZ +tlO +udA +tKI +tKI +kJO +kjo +kJO +tKI +tKI +stP +vwi +oLo +tKI +iUW +bCQ +tKI +tKI +tKI +tKI +dTI +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +utC +utC +utC +bvb +uer +tmR +tmR +tmR +tmR +tmR +tmR sEB -bea -afp -eWQ -bEX -qwF -aPD -daM -pyM -kxY -ccz -xCs -lVm -aPD -mzz -aPD -bDl -ooL -qVo -chb +tmR +tmR +tmR +tmR +tmR +tmR +bln +bvb +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(61,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +fPc +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +uei +tmR +uei bln lSu bln -mQb -bln bln bln -chb bln bln -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(128,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +miY +hEI +flD +eUf +hjI +hjt +kkv +hjI +hjI +anl +icY +esv +lCb +ddZ +eUA +scr +oCO +oCO +oCO +oCO +sll +eyf +sll +tKI +tKI +tKI +tKI +hZo +wBb +xvk +wBb +uZC +tKI +tKI +tKI +tKI +tKI +jez +bCQ +tKI +fwx +utC +utC +tra +utC +utC +utC +tra +utC +utC +utC +tra +utC +utC +utC +aBR +aBR +aBR +aBR +aBR aBR aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +utC +tkU +utC +fPc bln +xxB +xxB +xxB +xxB +xxB bln +sEB bln -lBD +xxB +xxB +xxB +xxB +xxB bln -tCR -nKR -aaw -nsO -eWB -kkl -rEP -xQG -ykw -jpE -gnL -lbk -lbk -sDl -sDl -skl -vaW -deY -skl -gDz -xlH -kbN -nzn -skl -ygB -ygB -ygB -puN -pcJ -pjw -maB -fpa -uja -oiz -pBs -uja -kDz -mBm -twU -uja -uPT -poL -vBh -wRk -wRk -wRk -wRk -wRk -cRu -mfW -vKZ -mfW -uxm -eta -brp -mfW -mfW -ccs -amN -hHu -tZZ -mfW -mfW -oyY -aVw -gxq -aVw -vBh -vBh -vBh -uuq -vlf -hcO -cvS -iGa -caZ -vpR -caZ -sqN -kRP -fwO -fwO -njb -ugR -tTY -hHN -jlV -hHN -pkQ -cEw -cEw -cEw -cEw -cEw -pvx -fwq -hHN -lRR -bpR -skx -gkY -mIk -wMe -gqB -hHV -mDX -mDX -qwF -aPD -noM -tjk -ydc -nyA -duh -iaY -duh -duh -duh -mQb +fPc +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -lbc -bvb -jHb bln bln -mQb bln bln bln -chb -mQb bln -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(129,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(62,1,3) = {" bln bln bln bln -fuZ -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +hAM +kdS +kdS +obe +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +bln +bln +eGr +wxN +wxN +wxN +biY +lJO +lJO +lJO +dYj +hjI +lJO +lJO +lJO +lJO +lJO +lJO +nCr +eUi +eBB +tNd +nor +sst +xIL +jxI +hjv +pXh +rOb +gpp +tKI +dat +kDv +tKI +jEE +wBb +fgo +aSI +nEq +tKI +ybY +gvp +nSr +tKI +xDw +bCQ +tKI +fwx +utC +utC +utC +utC +fwx +utC +utC +fwx +fwx +utC +utC +utC +utC +utC aBR aBR aBR aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +aBR +utC +utC +utC +uap bln bln bln bln +mQb +mQb bln -tCR -dcx -ihb -bnM -iRM -kkl -xiq -gUs -ykw -lbk -lbk -lbk -bln -sDl +sEB bln -bUx -pnU -fhz -skl -jVb -tnP -kki -jOQ -skl -dnk -olf -ygB -ybE -eKJ -ulk -ugZ -uja -uja -uja -kqP -uja -uja -uja -hsB -uja -ehq -kOq -iuv -vrX -iuv -iuv -iuv -iuv -iuv -vrX -uJN -iuv -xNF -ylU -wUi -iuv -iuv -iuv -iuv -iuv -iuv -iuv -iuv -uJN -iuv -iuv -iuv -iuv -iuv -iuv -flx -dnq -aab -cvS -sDU -fgs -hnd -pNq -gDp -kRP -bBW -bBW -bBW -bBW -tug -bBW -jlV -aap -dUv -cEw -rLs -xUV -rLs -cEw -cmJ -rwC -tyb -nrA -flH -lxu -wQF -qxo -eVC -qwF -qwF -qwF -qwF -qwF -aPD -aPD -mcc -aPD -nyA -xie -dFo -jZU -duh bln -ntK bln -lbc -chb bln -lSu bln -mQb bln bln +fPc +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -chb bln bln -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(130,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD -lBD bln -tkU bln -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -aBR bln bln -lBD +"} +(63,1,3) = {" bln -ykw -mvl -kkl -kkl -kkl -kkl -kkl -eyb -rTX -ykw bln bln bln bln bln bln -bUx -tOq -ous -skl -skl -skl -skl -ykA -skl -lQr -lkj -iov -seH -lvY -mmA -whk -uja -aJi -aJi -eCT -uja -oUO -msG -xWG -uja -kyL -hNU -kyL -kyL -rwZ -oTu -ucu -adv -oTu -oTu -srw -kfr -dKW -ylU -lDo -dnq -iuu -dnq -ebH -dnq -apb -dnq -bep -srw -dnq -dnq -ivo -ikC -xdW -dnq -dnq -dnq -tmr -cvS -sxu -kwX -pNq -dvq -gDp -rxa -qgm -kdc -mFt -kdc -vBv -kjy -grI -ruI -ubF -vwj -wwu -kwm -wwu -ekh -eVI -gmJ -npJ -xGI -mNF -baQ -cYC -rsW -tQb -xKd -jeh -kcG -kcG -qwF -wYJ -xfc -mzz -oHp -nyA -ybq -lhO -fFi -duh bln -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fPc bln -lbc -chb bln -lSu bln bln -uer bln +tmR +mQb bln -bvb -tMa bln +tmR bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(131,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln +tmR bln -lBD -vbG -tkU -tkU -tkU -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +vsI +eGr +eGr +eGr +hNJ +sxF +kjw +biY +hTJ +gks +qDI +eUf +jPV +lJO +pVQ +bln +efI +efI +lJO +mLd +hBG +pEs +aFH +jRI +nza +nza +nza +cNS +doW +awz +nmx +izI +pdd +lMg +wSk +pdd +oLC +bVn +cHs +fLS +fLS +yel +edN +jLf +tlm +jLf +fsj +tKI +dTI +utC +fwx +fwx +fwx +fwx +fwx +fwx +utC +utC +utC +utC +utC +utC +utC +utC aBR aBR aBR @@ -249921,256 +232705,256 @@ aBR aBR aBR aBR -ykw -ftA -unC -cLB -arT -eyb -rdw -xIk -bYF -ykw -bUx -bUx -bUx +aBR +aBR +aBR +aBR +utC +utC +utC +utC +utC +fwx +dzZ bln +xxB +xxB +xxB +xxB +xxB bln -fsm -bUx -buR -kVe -fnS -skl -hir -kAT -jOQ -skl -pOo -piC -ygB -noJ -aos -uWo -iUs -ozk -nsu -fdV -kux -uja -uja -uja -hsB -uja -mdZ -ros -bnm -mdZ -exw -hmb -hmb -exw -hmb -hmb -exw -tLF -lFb -qRE -lFb -azw -azw -mao -azw -azw -vTc -vTc -vTc -vTc -vTc -cvS -cvS -cvS -cvS -cvS -cvS -cvS -cvS -cvS -abU -kRP -uiI -qzF -gDp -kRP -kRJ -gcV -jug -lwi -jco -sTe -jvS -iSl -gdv -yiv -tbh -jTT -tbh -yiv -vtv -hHN -hHN -nrA -hQu -cDz -snW -hpI sEB -bea -frD -tln -lMh -qwF -wYJ -wYJ -qMU -wYJ -nyA -aJX -alb -nTL -cHf -qHg -umg -mQb -lbc -chb -mQb +bln +xxB +xxB +xxB +xxB +xxB +bln +fPc +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -mQb bln -chn bln -uer bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(132,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(64,1,3) = {" bln -uer bln -enX -tkU -tkU -tkU -xXk -hHG -hHG -hHG -wNO +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +yfW +tMa +cnx +tmR +tmR +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +tmR +izw +pVN +kJe +pVN +nQH +vos +smr +rgs +eUf +eUf +eUf +hjI +lJO +efI +bln +mQb +kXI +lJO +sAR +sAR +sAR +lCn +kPy +dQI +pPT +pPT +hjv +vTP +lsi +kUm +tKI +kii +cEG +tKI +afz +mTc +tKI +tKI +tKI +tKI +tKI +tKI +tKI +tKI +tKI +dBJ +teN +utC +fwx +fwx +fwx +fwx +fwx +utC +utC +fwx +fwx +utC +utC +utC +utC +utC +utC aBR aBR aBR @@ -250178,1806 +232962,1896 @@ aBR aBR aBR aBR -ykw -wBc -kYI -vyh -ufm -eyb -wug -uLF -nSH -hqi -dKA -deY -bUx -bUx -bUx -bUx -bUx -oBV -aXq -fnS -skl -bVx -idP -irn -skl -gmW -gmW -gmW -ltV -lAW -ksl -ltV -uja -tXk -tXk -tUn -uja -jlP -dHg -twU -uja -dka -fKV -jLK -tJY -phr -eik -cby -otW -jLc -lvb -xWk -sTH -lso -dEV -bai -azw -jqE -kZb -cJk -azw -xxi -fqW -sfd -nCb -kWL -cvS -pjF -nhw -cvS -aMh -kNA -mOo -jPh -ljD -azf -kRP -kRP -kRP -gDp -boQ -lgW -drh -nGG -fER -nSD -uID -vBC -goE -ubF -mxj -fcN -lxU -fcN -fcN -nBG -uub -kYi -rBQ -ssh -skx -kqS -mIk -wMe -gqB -yaT -kcG -kcG -qwF -wYJ -sEB -hQQ +aBR +aBR +aBR +aBR +utC +utC +utC +vOy +utC +utC +bvb +tMa +tmR +tmR +tmR +tmR +tmR +tmR sEB -nyA -njm -njm -njm -duh -mZf -ipM +tmR +tmR +tmR +tmR +tmR +tmR +bln +bvb +qRv +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -lbc -chb -mQb bln bln -lSu bln -mQb bln -chb -mQb -ozo bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(133,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(65,1,3) = {" bln -qzn -vbG -tkU -tkU -tkU -tkU -xXk -hHG -hHG -hHG -wNO -tkU -tkU +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -aBR -aBR -aBR -aBR -aBR -aBR -aBR -ykw -xIp -kYI -kYI -bOg -hFC -xyS -fhu -bLI -ykw -skl -ugA -deY -skl -kQE -rab -skl -skl -skl -hDV -skl -byP -ugA -hNp -tFI -eHb -xsW -bdp -nmH -tiI -hLW -bVI -uja -uja -uja -uja -uja -uja -uja -uja -uja -sJC -aSM -fjN -xhV -mPl -ybb -fJS -hFR -rxJ -lGN -xul -sTH -lso -dEV -bai -azw -rEp -fTC -blU -azw -bbO -hhT -vnN -pQp -wpZ -cvS -ril -eHe -uhH -mnC -cvS -caZ -caZ -uIM -cGA -yby -vnY -kRP -sqN -kRP -rKv -tyS -whf -sjk -uht -ehR -gnw -hHN -pGf -igx -dFC -dFC -jBR -fnA -hHN -lRR -uYH -shj -qnO -lxu -ijK -qxo -eVC -qwF -qwF -qwF -qwF -qwF -wYJ -sEB +vap +bln +mQb +bln +bln +bln +tmR +bln +bln +bln +tmR +bln +bln +mQb +tmR +mQb sEB +eGr +eGr +eGr +pVN +bvd +eAh +biY +bhQ +hjI +hjI +eUf +nst +lJO +lJO +lNj +qDI +lJO +lJO +lJc +ftE +xSM +oLm +rbE +qYO +lYj +nrM +oCO +kxs +lsi +fyq +qnj +qnj +qnj +qnj +qnj +qnj +tOw +xan +tOw +iZW +tOw +pLw +tOw +orq +tKI +dBJ +teN +utC +fwx +fwx +utC +utC +fwx +fwx +fwx +fwx +fwx +utC +tra +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +tkU +fPc +bln +xxB +xxB +xxB +xxB +xxB +bln sEB -kUu +bln +xxB +xxB +xxB +xxB +xxB +bln +fPc +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(66,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fYT +kdS +kdS +hPv +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +bln +bln +eGr +wxN +biY +biY +biY +hjI +hjI +qDI +eUf +hjI +dIx +kEq +ndz +hdh +fHq +lJO +lJO +lJO +lJO +fYS +tgd +fYS +fYS +fYS +fYS +wpO +lsi +gOm +qnj +omg +hzL +kRc +lNV +paZ +tOw +iKX +tOw +nZY +tOw +hce +tOw +wbY +tKI +dBJ +teN +utC +utC +fwx +fwx +fwx +fwx +fwx +fwx +fwx +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +tkU +tkU +fPc bln bln bln bln bln -oxR bln -lbc -chb +bln +sEB mQb bln -lSu +bln +bln +mQb +bln +bln +ebW +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln bln bln -chb bln -uer -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(134,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(67,1,3) = {" bln -liV -vbG -tkU -tkU -tkU -tkU -xXk -hHG -hHG -hHG -tkU -tkU -tkU -tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -ykw -lHu -tIf -tIf -blT -ntq -cWG -ekW -vRN -fEA -uHF -wjj -wjj -qdK -eqq -wxU -eqq -eqq -eqq -eqq -xuL -eqq -lrl -qvh -skl -eFG -ffZ -vfW -vfW -mZK -lvk -gzI -gIN -kKL -mBr -kKL -pyE -suo -qZg -rxY -ryn -eDs -vTm -sxt -shh -bHJ -xgy -xgy -uYE -rxJ -lGN -ozU -fuc -lso -dEV -kHI -azw -feU -fTC -qEj -azw -rUQ -orE -aTE -hMH -yiK -cvS -dDC -gXm -cvS -cvS -cvS -ohp -ohp -ohp -ohp -gGf -pNq -kRP -udL -kRP -bIa -jug -aSe -kFH -aen -hIA -rBQ -fQc -fQc -noY -ruw -fQc -fQc -fQc -mvG -shj -uGy -hHN -cqO -cfC -fsQ -cnq -nqb -aUS -mTm -sMg -sMg -qwF -aPD -nQr -sEB -sEB -nyA -htd -uer bln -mQb bln -nFO +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +fPc mQb -lbc -chb +uei +tmR +uei +mQb +uei +tmR +uei bln +uei +tmR +uei bln lSu bln bln +miY +hEI +dYC +hjI +hjI +hjI +lJO +eUf +eUf +eUf +eUf +eUf +eUf +eUf +eUf +cKD +gks +lJO +wSf +tak +bPr +byA +bVS +vQt +gpp +lsi +gpp +qnj +ddQ +gAB +ykG +ykG +wpQ +tOw +sVn +wlt +kEM +bLn +kEM +vkW +gak +tKI +dBJ +tKI +nMj +utC +fwx +fwx +utC +utC +utC +fwx +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +tkU +utC +fPc +bln +xxB +xxB +xxB +xxB +xxB +bln +sEB +bln +xxB +xxB +xxB +xxB +xxB +bln +chn +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln -chb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(135,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(68,1,3) = {" bln -lBD -vbG -tkU -tkU -tkU -tkU bln -hHG -hHG -hHG -tkU -tkU +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC tkU +fri +utC +oHg +mQb +uei +tmR +uei +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +lSu +bln +bln +miY +hEI +kbd +hjI +lJO +lJO +lJO +fzJ +qDI +qDI +qDI +lJO +lJO +lJO +bWl +lFq +dix +lJO +veN +ekn +dTD +eMH +dTD +ljT +pBk +lzO +tJu +qnj +hul +ykG +gwp +hCa +pig +wpc +xBn +jjO +xQf +hmZ +xQf +vQO +hlv +tKI +dBJ +tKI +utC +utC +utC +fwx +utC +fwx +bfP +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +uGo +utC tkU tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -ykw -kON -rax -wWU -esS -evw -aML -iLv -hSJ -ykw -ygL -jTw -ugA -eym -ugA -aBK -fhz -ugA -fhz -vjg -byP -mOf -vHJ -mOf -skl -opt -eOl -qFE -cGB -cGB -gsI -tLL -vlE -kKL -kKL -kKL -qUI -lik -tWj -rxY -jCK -jdV -bZm -uQc -mYR -mpU -ryJ -xgy -faW -dHf -rWI -cOy -sTH -lso -dEV -bai -azw -hnV -fTC -nej -azw -azw -azw -azw -mGs -vTc -cvS -kSn -vEN -cvS -ltE -pkN -ohp -ohp -ohp -ohp -pNq -dXU -kRP -gDp -kRP -qjb -tbb -fqA -dFp -nJI -hoV -oyX -bWy -khe -oSX -oyX -bWy -cHm -xfB -oyX -bWy -jHQ -xfB -gBx -qNF -sEX -hpI -sEB -bea -kfa -qCn -tCB -qwF -sEB -sEB -sEB +utC +bvb +bln +tmR +tmR +tmR +tmR +tmR +tmR sEB -fdb +tmR +tmR +tmR +tmR +tmR +tmR bln +bvb +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -mQb bln bln -nFO bln -lbc -chb bln -mQb bln bln bln +"} +(69,1,3) = {" bln bln -bvb -jHb -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(136,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD -lBD -vbG -tkU -tkU -tkU -tkU bln -hHG -hHG -hHG -tkU -tkU -tkU +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC tkU tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -ykw -uFf -pwo -uFf -ykw -uFf -nOb -uFf -ykw -ykw -rFP -rFP -rFP -skl -skl -wYS -tYF -skl -ugA -goY -skl -cFr -cQx -cFr -skl -fRq -vfW -tBw -nUj -mpH -aAe -tCp -spy -kKL -jZy -aqV -lgx -xay -lko -rxY -ntE -rhG -mdZ -mdZ -mdZ -exw -exw -exw -dRB -exw -exw -exw -tLF -bDB -dEV -dYU -azw -xbB -eyc -qPt -goa -biR -dmI -tdE -veU -pkf -kRP -kRP -rWH -kRP -pao -cGA -ohp -ohp -ohp -ohp -ghz -ktB -kRP -gDp -kRP -qGC -uEJ -uxd -nzy -tKW -hIA -iXq -hLS -ifY -oZL -rxf -sEF -nom -hHN -meT -xGM -gHl -flH -afR -ncJ -kqq -cnq -nqb -qQq -uxx -sMg -sMg -qwF -sEB -sEB -hDG -sEB -fdb -mQb +utC +yfW +tMa +uei +tmR +uei +bln +uei +tmR +uei +bln +uei +tmR +uei +bln +lSu +lJO +hEI +lJO +lJO +lJO +adq +lJO +lZU +fIx +hRt +kWr +okU +hRt +mro +kUJ +lJO +eUf +gDS +wTX +lJO +ose +iMT +wIR +uAl +wQh +vQt +gpp +bAB +gpp +qnj +aOx +ykG +ykG +rCj +xDh +tOw +tOw +tOw +tOw +tKI +tKI +tKI +tKI +tKI +jss +tKI +lQi +vbG +maT +nNZ +oSK +maT +vEG +rEr +maT +kDs +utC +tra +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +cWX +utC +tkU +fwx +utC +fPc bln -mQb +xxB +xxB +xxB +xxB +xxB bln +sEB bln -oxR +xxB +xxB +xxB +xxB +xxB +bln +fPc +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -lbc -chb bln -mQb -uer bln -lSu bln bln -ebW -mQb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(137,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD -lBD -vbG -tkU -tkU -tkU -tkU +(70,1,3) = {" bln -hHG -hHG -hHG -tkU -tkU -tkU -tkU +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fri tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -uFf -bJE -uFf +fwx +wOq bln -uFf -bJE -uFf +uei +tmR +uei bln -lBD +uei +tmR +uei +bln +uei +tmR +uei +bln +bln +lJO +khW +iSn +ghN +lJO +hjI +qDI +pWb +okU +rSe +npx +rSe +hRt +lJO +lJO +lJO +eHT +lJO +lJO +lJO +dAc +iMT +fjD +gOx +nbT +fYS +rdn +bAB +aaW +qnj +mxu +awx +koH +ubH +wml +bvg +bJa +btG +ehp +tKI +plg +huj +qjO +tKI +sHK +tKI +maT +maT +maT +xmk +bde +kXr +aRx +kjd +maT +vJV +xeg +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +cWX +utC +utC +utC +fwx +pMM +bln +bln +mQb +mQb bln bln -lBD bln -skl -dow -skl -skl -giO -hFw -skl -hED -jlk -pSF -skl -eXf -vfW -qfG -iay -dCF -aAe -fbM -kVa -kKL -nWG -kKL -kKL -bYC -isC -rxY -fzK -iIm -fzK -jRA -wXb -bOZ -gpM -jZj -luP -dWI -lEO -lRj -msE -lso -kjK -bai -mIt -xni -hBd -aMP -dQo -oQD -hHI -tdE -fBR -fKi -tHr -rRA -soK -kRP -nMN -kRP -kRP -kwX -lBS -kRP -kRP -kRP -kRP -gDp -kRP -wvV -qyI -buo -tEZ -oFW -qIC -eMr -cnq -nVe -xMh -eMr -cnq -nVe -cnq -eMr -cnq -rBo -jYH -kfs -kfs -oAl -kfs -sEB -qwF -qwF -qwF -qwF -qwF -sEB -sEB -sEB sEB -fdb bln bln bln bln bln -nFO bln -lbc -bvb -jHb +bln +fPc +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln -lSu -lSu bln -uap bln -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(138,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(71,1,3) = {" bln bln -vbG -tkU -tkU -tkU -tkU bln -hHG -hHG -hHG -tkU -tkU -tkU -tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -uFf -pMg -uFf bln -uFf -rXX -uFf bln bln -mQb -ntK -mQb bln -skl -eZW -deY -skl -vhF -jPv -rhv -dEL -vhF -vsx -skl -hYL -vfW -sul -eGM -eGM -soI -tLL -erd -kKL -mfP -qgH -kKL -vJJ -awu -uzu -tbL -cEe -fzK -sZB -jRA -toT -spz -jHe -mPr -gOa -jKs -gDq -lso -lCi -dEV -bai -mIt -cJw -dip -bHO -azw -fVK -rGw -azw -ePT -tZm -pBA -aQZ -uNq -dTW -vND -uzJ -kRP -esC -eUI -kRP -qyR -qyR -kRP -gDp -cvS -sEB -sEB -pPy -sEB -vUr -sEB -ygd -sEB -vUr -fLP -mkG -swu -rwB -swu -mkG -swu -wfm -nST -lOI -pGQ -wgG -uQy -swu -swu -swu -dvZ -dvZ -dvZ -dvZ -dvZ -dvZ -dvZ -heE bln -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +fwx +utC +utC +vap bln -mQb bln -nFO -mQb -lbc -chb bln bln -mQb bln bln bln bln -chn -uer bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(139,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -vbG -tkU -tkU -tkU -tkU -fuZ -hHG -hHG -hHG -wNO -tkU -tkU +bln +lJO +gDZ +gDZ +uPS +cnz +ndz +qDI +jgD +hRt +vxi +hWd +ppq +hRt +mro +cyI +lJO +eUf +qhO +lJO +waZ +sng +iMT +nQu +gOx +vYa +fYS +hNz +bAB +gdY +ljE +vKq +vKq +vKq +eTC +neq +muy +muy +gRp +kjh +tKI +plg +jdW +mmn +ggn +dBJ +tKI +cYo +tEL +maT +nNZ +jME +kXr +hTk +rEr +maT +lQi +iOh +iOh +vJv +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +cWX +utC +fwx +utC tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +fPc +mQb +lSu +lSu +uer +nAx bln +sEB +tmR +sEB +mQb +cIf +gSd +ahG +ujK +ujK +obe +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -251986,257 +234860,512 @@ bln bln bln bln +"} +(72,1,3) = {" +bln bln bln bln bln -stJ -skl -sNL -skl -skl -jOK -deY -rhv -eLN -iDe -dyA -skl -gaC -vfW -vfW -qEB -vfW -lvk -crv -acN -mch -mzX -qBi -kKL -kKL -tjG -rxY -uWS -hjl -xBj -ddw -hjz -wqo -spz -eYS -arZ -eME -hSq -jLt -ieJ -vwO -hHg -jyp -azw -uMx -uTk -sJA -sHc -oGs -sEz -jFZ -uoV -gnb -pZB -whh -pQL -nCV -lGh -txo -kRP -kRP -kRP -kRP -wCI -qyR -kRP -gDp -cvS -sEB -qwF -koO -bea -xDG -qwF -jgn -bea -xDG -qwF -jgn -bea -xDG -qwF -jgn -bea -xDG -qwF -gtg -cEw -bCT -kfs -kfs -kfs -qVo bln bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +obe +kdS +kdS +eRE +xAs +kdS +kdS +eRE +wvw +kdS +qQk +eRE +kdS +hBf +kdS +lJO +gLZ +cXp +xiW +lJO +hjI +qDI +xQB +hRt +rSe +hWd +ckQ +xJD +lJO +lJO +lJO +eUf +lNi +lJO +nFF +ddh +iMT +rXr +iVb +xWU +vQt +gpp +bAB +fWN +tpG +awx +jsB +uQu +psp +neq +muy +muy +gRp +geq +tKI +bsO +jyo +pXR +tKI +dBJ +tKI +grr +kLZ +jPc +xKj +hyY +xDu +huI +gbv +maT +kXr +maT +maT +kXr +dTI +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +cWX +utC +fwx +utC +tkU +fPc +bln mQb bln -mQb +lSu bln bln -yfW -jHb -mQb +jlJ +jWl +jlJ +aMZ +vap +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -uer bln -cwn bln -lbc -chb bln -uer -mQb bln -mQb bln bln -chb bln +"} +(73,1,3) = {" bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(140,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -lBD -jpx -tkU -tkU -tkU -vbG -hHG -hHG -hHG -wNO -tkU -tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +fwx +utC +utC +utC +utC +tkU +fPc +utC +utC +utC +utC +fwx +utC +utC +utC +utC +utC +lJO +hEI +lJO +lJO +lJO +uPS +lJO +ndz +hRt +jhf +uyH +nGC +mOx +tCu +cHB +lJO +qzs +jnV +lJO +tdY +gHS +iMT +hqx +myE +reJ +wrA +djr +lzO +mNy +qnj +etY +awx +bjQ +awx +sgT +dmk +sua +frd +qyL +tKI +tKI +tKI +tKI +tKI +wyr +tKI +kMh +ajw +ajw +wbW +ajw +kVl +czv +cCW +wyB +mSP +wyB +tEj +maT +utC +utC +utC +gsK +iOh +iOh +nBE +utC +utC +utC +utC +utC +utC +utC +xYt +atB +utC +utC +utC +tkU +pRj +pRj +pRj +pRj +pRj +mNY +bln +jlJ +hTq +jlJ bln +chn +utC +fri +tkU +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -252245,252 +235374,512 @@ bln bln bln bln +"} +(74,1,3) = {" bln bln bln -oUb -ooL -skl -cwT -deY -deY -skl -ygS -oGr -pDA -skl -ePq -uRo -uRo -uRo -nCu -cZt -cZt -vnw -kKL -lli -uar -gAt -kKL -jcs -fzK -mbm -dTa -sav -ymf -nuD -pQD -lsA -xmD -awe -lsA -lEO -atS -lmQ -lBB -dEV -bai -azw -pdm -vYH -etv -azw -dnI -vHo -oIJ -nRd -lwQ -tHr -tHr -bxU -art -tHr -tHr -tHr -xDX -qkR -pBA -xfb -dpB -kRP -gDp -cvS -sEB -qwF -cOi -oLK -kgg -qwF -pcr -bXl -fcQ -qwF -rWp -kXq -qab -qwF -xeM -vtj -rQN -qwF -gtg -hpI -qAT -kfs -dtc -kfs -qVo -mQb bln bln bln bln -mQb bln -chb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +fwx +fwx +utC +utC +fPc +utC +utC +fri +utC +tkU +utC +tUm +vfr +fwx +utC +utC +utC +lJO +cIq +lJO +hjt +lJO +csf +xht +wlr +qHj +gQD +lJO +lCV +lJO +lJO +eUf +iPR +lJO +ejo +cSe +xhk +skj +kkK +lNP +vQt +gpp +bAB +gpp +qnj +hjJ +ykG +aUi +kXB +ihk +ssv +omH +hJG +oYa +tKI +dzl +bCQ +jKP +fLS +jeK +cse +ajw +bff +otd +otd +ajw +odw +ajw +huI +huI +huI +uqg +pUi +maT +utC +utC +utC +qjQ +aOd +axg +qjQ +utC +utC +pRj +pRj +pRj +ptf +pRj +pRj +uqG +iOh +iOh +hHG +utC +pRj +emx +kpn +awt +wAW +mNY +nxm +jlJ +rbb +jlJ +jlJ +obe +utC +tkU +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -shH -mjY -qVo -bza bln bln bln +"} +(75,1,3) = {" bln bln bln bln -chb -mQb -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(141,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -lBD -vbG -tkU +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC tkU +utC +vOy +utC +utC +fwx tkU -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +uap +utC wNO +dHF +utC +utC +utC +utC +utC +utC +fwx +utC +utC +lJO +lJO +lJO +xbr +lJO +unq +mZn +uSd +lnr +tIh +lJO +ovt +bZV +hjI +eUf +uPS +lJO +lJO +lJO +enI +lJO +lJO +lJO +lJO +kxs +bAB +fSv +qnj +gtG +ykG +dVb +pMX +qVg +wsV +uKO +uKO +juq +tKI +stL +thE +hbY +tKI +tKI +tKI +kUF +ajw +ajw +otd +otd +otd +otd +otd +otd +uqn +kLZ +jcJ +kXr +utC +utC +utC +aOd +iAu +rLo +qjQ +utC +utC +pRj +kBV +pRj +dkn +vmr +pRj +uqG +ptf +kzZ +ptf +utC +pRj +rej +iaT +daS +swS +mNY +mNY +smj +smj +iCX +glh bln +tkU +tkU +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -252499,6 +235888,255 @@ bln bln bln bln +"} +(76,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +tkU +utC +tUm +utC +fwx +fwx +tkU +utC +ebW +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +dHF +utC +utC +utC +lJO +dGe +lJO +lJO +lJO +rCx +iNE +iBg +lJO +ovt +cAJ +kNi +ygk +ygk +fqv +fqv +rkP +fza +rkP +asC +ygk +jKJ +hMg +cke +kTC +qnj +dei +wpC +vZg +gta +ihk +qjp +uKO +uKO +juq +tKI +xqX +kIy +wBb +tKI +ifX +ajw +ajw +ajw +mmi +aUA +mmi +ajw +ajw +ajw +ajw +ajw +ajw +ajw +maT +utC +qjQ +qjQ +qjQ +qjQ +jDl +qjQ +xXk +xXk +pRj +qOl +qPw +csE +hRw +pRj +eDJ +ptf +daS +ptf +utC +pRj +mVN +hUI +mRU +qAI +snw +mNY +qDS +ooU +ipE +glh +mQb +fri +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -252507,246 +236145,255 @@ bln bln bln bln -skl -cwH -deY -ugA -skl -skl -skl -gmW -gmW -dGO -dGO -kBc -dGO -dGO -kBc -dGO -dGO -gmW -gmW -lgw -lJn -kKL -kAQ -jJA -jJA -sRw -vNU -vNU -tvt -peP -spz -qOG -dnE -gpr -izC -hku -lmQ -epw -dEV -hjA -azw -pxV -oQD -vDh -azw -aXg -bGq -cTV -bOp -lwQ -qfi -sEK -eHg -ahL -wVw -xyy -whU -bYK -vmZ -pBA -drH -tNz -kRP -gDp -cvS -sEB -qwF -kdY -qAQ -qAQ -qwF -uIg -eZc -uIg -qwF -bzW -eWj -bzW -qwF -aOX -aRj -aOX -qwF -uUH -vuu -xvj -rCW -ygl -fJe -sEB -oot -oot -oot -oot -oot -oot -oot -sjh -oot -oot -oot -oot -oot -pcb -jrI -iXg -oaQ -oaQ -oaQ -qHg -uAL -uAL -uAL -rzO -bvb -tMa -sMy -mQb -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(142,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(77,1,3) = {" bln -uer -lBD bln -jpx +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +fri +utC +utC +fwx +fwx +utC +fri +utC +fPc +utC +fwx +utC +utC tkU +vfr +utC +utC +utC tkU -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC wNO +utC +hEI +hjI +hEI +sEB +lJO +hEI +hEI +hEI +lJO +lJO +dDV +oaR +lJO +lJO +lJO +lJO +lJO +lJO +lJO +lJO +lJO +lJO +gZc +aJA +gpp +qnj +nct +ykG +tQS +oWN +pji +apq +eoY +poK +smn +cUd +sIM +yjn +wBb +tKI +wAf +ajw +kXs +ajw +mmi +wiz +mmi +oJk +jjk +jjk +jjk +sOm +uEI +ajw +maT +maT +qjQ +pvY +esc +qjQ +axg +qjQ +utC +utC +ptf +hZQ +cZN +ybu +qrr +pRj +ycS +pRj +lDr +pRj +ptf +pRj +kqK +dnM +swS +mXN +gDv +mNY +qIf +fFx +czR +glh +mQb +tkU +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -252755,255 +236402,512 @@ bln bln bln bln +"} +(78,1,3) = {" bln bln bln bln bln -fsm bln -uer bln -skl -skl -qFA -qFA -skl -fsm -tlH -gmW -knl -knl -knl -knl -rzB -knl -knl -knl -knl -knl -gmW -aJa -gJD -kKL -jOC -uWy -reN -byJ -mNP -foI -tvt -peP -spz -pau -dnE -uTq -izC -qiv -saF -lBB -kjK -gdc -azw -mwF -sbc -qYV -azw -gIY -dDR -mcW -sFG -lwQ -kmG -cyo -lup -lup -aCA -jDn -nbC -qZv -rDJ -pBA -qfE -vuR -kRP -gDp -cvS +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +hMQ +tkU +utC +utC +utC +hMQ +utC +fPc +utC +utC +vfr +utC +fri +utC +utC +utC +vfr +utC +utC +utC +fri +utC +hEI +ndz +hEI sEB -qwF -qAQ -uxK -qAQ -qwF -uIg -mjg -uIg -qwF -bzW -iTY -bzW -qwF -aOX -tsl -aOX -qwF sEB -hpI -loV -kfs -kfs -kfs -qVo bln +fsm bln +bln +hEI +uPS +oaR +oSy +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +jOt +rWZ +auc +rWZ +sAS +sAS +sAS +sAS +tKI +tKI +tKI +tKI +tKI +tKI +tKI +kcE +pdf +aSI +tKI +ooR +ajw +ajw +ajw +mmi +wiz +mmi +sln +wam +wam +wam +wam +mWD +ajw +pYT +ajw +tAS +hoD +hoD +vDO +lgH +qjQ +utC +utC +ptf +qOl +sUS +ybu +vUW +pRj +mKA +yiR +daS +iJh +wRu +pRj +pRj +kuR +kCC +lDh +pRj +mNY +mNY +pyI +mNY +glh mQb -mQb +fri +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -chb bln -mQb bln bln bln bln -mQb -mQb +"} +(79,1,3) = {" bln bln bln -hMM -mHR -sEB -tmR -sEB -rrh bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(143,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +tGr +tGr +tGr +umh +jZo +jZo +jZo +jZo +umh +tGr +xAs +jbe +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +hEI +hjI +hEI +sEB +sEB +lSu bln +tLi lBD +hEI +hjI +wPr +oSy +pLg +ybQ +ybQ +ybQ +ybQ +ybQ +ybQ +vsF +jOt +ozw +eRw +gpp +gJz +nQv +nDY +tzP +tKI +wuA +nAr +nAr +nAr +nAr +nAr +nAr +nAr +wNR +tKI +jnp +ajw +ajw +ajw +mmi +wiz +mmi +vmn +wam +wam +wam +wam +gOI +oMk +kXr +maT +qjQ +eGw +ewI +pPl +xCL +qjQ +utC +utC +ptf +csE +vPi +ybu +xmQ +pRj +cnd +hth +wEW +hth +hjH +pRj +vgw +rlj +bKZ +aPV +gFH +apj +cqL +xHe +ptf bln bln -bSz -bSz -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -253011,258 +236915,523 @@ bln bln bln bln -bMz bln +"} +(80,1,3) = {" bln bln bln bln bln bln -stJ bln -qtD -skl -wMY -lWG -skl -oFc -tlH -dGO -knl -knl -aBf -knl -knl -knl -knl -knl -knl -knl -dGO -jMu -duT -kKL -tdU -fXw -abZ -qfz -mNP -vNU -tvt -pQD -lsA -nwn -fSs -lsA -lEO -ksc -saF -lBB -dEV -bai -hgh -xgG -fVo -etW -css -hgh -pLt -mcW -fPb -bEL -efK -juw -nji -tkf -ikz -vyW -tHr -pBA -pBA -tHr -jbC -jbC -kRP -gDp -cvS -rsh -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -qwF -sEB -hpI -loV -kfs -sEB +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +tGr +miY +lSu +lSu sEB -qVo +tGr +tGr +tGr +sDl +sDl +sDl +sDl +utC +utC +utC +utC +utC +utC +utC +hEI +hEI +lJO +lJO +hjI +lJO +lJO +lJO bln mQb -mQb bln bln -mQb +hEI +hjI +wPr +oSy +sDl +ybQ +gGZ +lye +ebL +edn +ybQ +sCK +jOt +ozw +aJA +oRM +oVG +pRL +gfF +hqm +tKI +wBb +tKI +tKI +tKI +tKI +tKI +tKI +tKI +tKI +tKI +leW +vlN +qPJ +vlN +ajw +wiz +ajw +nNu +wam +wam +wam +wam +wxT +ajw +maT bln -yfW -jHb +qjQ +qyT +qcE +aFz +hoD +qjQ +utC +utC +ptf +qOl +ace +ybu +thW +pRj +ntO +dnM +nzp +wEW +hjH +eMT +iaT +bFY +aZq +ukA +hUI +apj +daS +xHe +ptf bln -mQb bln -mQb -mQb +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -mQb bln bln -tJK -sEB -tmR -sEB -fAW -ajx -ajx -ajx -kKU -kKU -mfD -mfD -mfD -mfD -mfD bln bln bln -rbm +"} +(81,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +tGr +tGr +bln +gZt +nMR +tGr +tGr +tGr +jNZ +bln +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +hEI +qNE +eAb +prE +hjI +tTL +ezq +lJO +hEI +hEI +hEI +hEI +lJO +hjI +wPr +oSy +sDl +ybQ +oPI +khR +khR +eRh +ybQ +jOt +jOt +ozw +aJA +xSL +gJz +eUx +imO +kGF +tKI +wBb +tKI +xua +llR +fOs +dsf +xjF +xem +dwY +ikO +bji +ajw +ajw +vlN +ajw +wiz +ajw +qUS +irD +irD +irD +pzX +gdN +ugi +maT +bln +qjQ +jAq +qxb +nrm +iQr +qjQ +xXk +xXk +pRj +vSE +mqI +qOl +ujj +pRj +dOH +hjH +qTS +dNC +iRJ +pRj +wls +qxY +tKV +cjL +gfC +pRj +daS +mxg +pRj +pRj +pRj +qpc +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln -wNO -wNO bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -gEd bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(144,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -lBD -bln -xZq -bln -bln -qRv -hHG -hHG -hHG -wNO -wNO -wNO -pUa -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln +(82,1,3) = {" bln bln bln @@ -253271,1655 +237440,1274 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +tGr +tGr bln bln bln bln +tGr +tGr +fsm +sEB bln bln +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +hEI +dZc +cZD +apd +tPV +hjI +hjI +cnz +hjI +hjI +hjI +hjI +hjI +hjI +wPr +oSy +sDl +ybQ +olQ +bnz +jxq +sOz +vGI +pPD +lEE +idO +aJA +waV +tKI +tKI +tKI +tKI +tKI +blY +tKI +wrP +alT +taf +kGQ +bAa +xal +wLO +lfG +oSS +erN +xwp +baf +wiz +wPh +iaF +iaF +iaF +iaF +ajw +ajw +bdW +pBE +pBE +uYc +pBE +pBE +ojk +bVJ +dSO +qjQ +utC +utC +pRj +jzk +kYF +jOJ +qzM +pRj +qFC +uIx +osI +osI +xbq +pRj +nDy +hUI +qwX +nVR +iWZ +bse +xHe +oBZ +lPE +daS +nNr +bzq +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -bxS -lWG -lWG -bxS -tlH -tlH -dGO -knl -knl -knl -knl -knl -knl -aBf -knl -knl -knl -dGO -uar -lby -kKL -rAY -fYJ -qMF -jpg -mNP -qpm -tvt -peP -spz -tsu -uGe -fDf -mbw -rDN -qbG -qbG -onP -jyp -hgh -kbS -xxg -ehU -uau -hgh -kBL -xPT -cxA -bij -vkD -cey -lux -eHZ -lux -fUL -qyO -evp -evp -owr -eWT -hpp -kRP -gDp -cvS -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -hpI -loV -wvI -wvI -wvI -wvI -wvI -pwF -wvI -wvI -wvI -pwF -wvI -nyZ -kKU -kKU -kKU -kKU -ajx -ajx -mgv bln bln -mQb -mQb bln -jqx -jEK -tmR -jEK -ktX -mQb -uer bln -mZf -mfD -mfD -xow -gOg -aFi -mfD -ptY -ptY -ptY -ptY bln bln +"} +(83,1,3) = {" bln bln -ptY -ptY -ptY -ptY -ptY -ptY -ptY -ptY -iHp -iHp -iHp -iHp -iHp -iHp -iHp -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(145,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD bln bln bln -lBD bln bln bln -wDS -wDS +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +tGr +tGr bln -pUa -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln +oEB bln +tGr +tGr bln +lSu +ntK bln bln bln +fsm bln +sDl +sDl +sDl +sDl +sDl +hEI +eeF +nWf +prE +gDS +aXY +iPR +lJO +hEI +hEI +hEI +hEI +lJO +hjI +wPr +oSy +sDl +ybQ +oPI +xWN +xWN +pib +ybQ +jOt +jOt +ozw +aJA +gpp +bpK +pdf +pdf +pdf +pdf +wBb +tKI +aiQ +alT +dcs +kin +dsU +alT +lbg +ikO +ikd +jhy +ppo +lxb +eWV +kXr +xaF +rUy +smx +qqJ +gjP +ajw +ajw +uYc +pgq +szU +eVn +pBE +ePB +hxE +xtr +qjQ +utC +utC +pRj +csE +kSD +csE +uwd +pRj +poO +hjH +daS +pXv +kEC +pRj +bxV +uKP +iaT +hUI +lLm +mLa +qSY +daS +pRj +igG +pRj +bzq +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln bln -tlH -tlH -bxS -lWG -lWG -bxS -tlH -tlH -dGO -knl -knl -knl -knl -knl -knl -knl -knl -knl -knl -dGO -uar -sVW -kKL -dBN -kOx -hye -byJ -mNP -aoO -tvt -peP -spz -sAt -bSp -jWm -tay -rRt -lso -mRy -dEV -eKI -hgh -hmE -mnF -tjv -xYS -fCM -qQx -mcW -cxA -bZI -nMu -wDe -hxs -uEr -nzs -iuD -qAf -gHq -ygF -wGE -rpM -vRo -cvS -oaX -cvS -cvS -cvS -lvG -lvG -lvG -cvS -cvS -lvG -cvS -tYZ -kRP -wOn -wOn -wOn -wOn -wOn -wOn -wOn -wOn -wOn -pzn -wvI -bBM -mIE -ldr -hBE -kJK -iZr -sHs -jXr -aLJ -puf -dyg -haC -haC -haC -fOU bln bln +"} +(84,1,3) = {" bln bln bln -uer -mQb bln -sdr -dZX -xcZ -dZX -swF -xEn -mQb -mQb bln -mfD -khy -xpP -ghY -ccw -cQL -pbs -uvu -bPc -ptY -ptY -ptY -ptY -ptY -ptY -dLL -vyt -vyt -vyt -ctl -ctl -ptY -iHp -iHp -iHp -iHp -iHp -iHp -iHp -iHp bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(146,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD -lBD bln bln -lBD +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +tGr +tGr +tGr +tGr +tGr bln -lBD +pZY bln -vOy -vOy bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +fsm +mZf bln +tGr +tGr bln +miY bln bln -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln -tlH -tlH -tlH -aDM -aEj -lWG -bxS -tlH -tlH -gmW -xPW -knl -knl -knl -knl -knl -knl -knl -knl -hNx -gmW -uKY -gAt -kKL -asN -bUy -bUy -gBJ -vNU -vNU -tvt -ulR -qjW -qmh -iuL -tii -lEO -fPI -ghb -mqq -vSa -fuY -oXb -pKb -eTM -vkG -teZ -lUb -vWm -pbW -sco -iBo -lzM -wbw -ddu -dgl -evp -rEG -iEA -olI -oyB -mcp -rpM -uyO -cvS -gDp -gDp -gDp -gDp -gDp -gDp -gDp -gDp -gDp -gDp -cvS -muX -kRP -fYY -qwo -sOd -eUK -ign -ebr -iJK -ebr -bzE -dYI -wvI -wTB -xke -ldr -vhT -iLf -icF -gRI -lwd -mka -wvI -rnp -wvI +sDl +sDl +sDl +sDl +sDl +sDl +hEI +hEI +lJO +lJO +hEI +lJO +lJO +lJO bln +lBD bln bln +hEI +hjI +xJJ +oSy +sDl +ybQ +egF +jYV +jDW +hPf +ybQ +eaG +jOt +ozw +ons +eNE +tKI +tKI +tKI +tKI +tKI +wBb +bcx +qiK +rrB +lit +qiP +fgc +obQ +ndk +rbC +kXr +hrJ +ttT +sQa +hrJ +kXr +kXr +kXr +kXr +kXr +kXr +haG +eMa +nRt +lPK +jFJ +lLE +pBE +qjQ +rVe +qjQ +qjQ +utC +utC +pRj +wVr +drs +pRj +pRj +pRj +pRj +pRj +pRj +wpY +pRj +pRj +ptf +pRj +pRj +pRj +pRj +pRj +wFg +pRj +pRj +pRj +pRj +eHC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln bln -lSu bln -sdr -dZX -gpB -ote -swF -swF -swF -swF -swF -mfD -flW -xpP -ghY -jMc -xiU -uVp -sTx -vyt -vyt -vyt -vyt -vyt -vyt -vyt -vyt -ptY -ptY -ptY -ptY -ptY -ptY -iHp -iHp -bgE -iHp -iHp -iHp -iHp -iHp -iHp bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(147,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln +(85,1,3) = {" bln bln bln bln -lBD -lBD -vOy -vOy bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +tGr bln -tlH -tlH -tlH -aDM -aEj -aEj -aDM -tlH -tlH -dGO -knl -knl -knl -knl -aBf -knl -knl -aBf -knl -knl -dGO -rVE -oqY -kKL -kKL -kKL -ndv -uXd -iiE -oIj -quS -jNo -hvQ -gUv -tCk -fYz -izC -izC -tLF -fqR -qEM -lso -ioE -mJM -jOz -dEg -hmx -hgh -eei -niu -pZm -bEL -vqX -lgk -qoi -pii -nji -ikz -evp -hRH -dXi -mmh -ikz -hTx -cvS -kRP -kRP -kRP -kRP -kRP -kRP -kRP -vpR -fIK -uep -cvS -lUU -kRP -pSk -pOy -pOy -njA -sKW -hGs -vXv -hGs -gOY -ylM -wvI -jWt -cXV -nDq -etB -swx -ldr -ldr -rSW -aHt -wvI -fVE -wvI -mQb +ntK bln -uer bln bln -mQb bln bln +tGr +tGr bln lSu -dZX -tis -dZX -tWy -dZX -swF -swF -qFu -gzz -uCg -mfD -mfD -skX -ojW -ife -rKK -pbs -pbs -pbs -pbs -pbs -diu -pbs -pbs -pbs -pbs -ptY -iHp -iHp -iHp -iJO -cxl -oVz -iJO -mYh -oVz -cxl -iJO -iHp -iHp -iHp +fsm bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(148,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl bln bln bln -lBD -lBD bln bln -vOy -vOy +mQb +tLi bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +hEI +hjI +wPr +oSy +pLg +ybQ +ybQ +ybQ +ybQ +ybQ +ybQ +vsF +jOt +ozw +ons +gpp +lGz +pMv +bso +dBB +tKI +wBb +tKI +tKI +tKI +tKI +tKI +tKI +tKI +tKI +tKI +kaw +vkF +rTt +sOJ +cnB +bvr +mAN +vra +lZQ +jtV +kXr +hKV +eMa +pBE +mpe +byn +wBy +pBE +qdC +jBf +dhY +qjQ +xXk +xXk +pRj +daS +tut +qai +qoK +pXv +sgh +pXv +pXv +pXv +ptf bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln -tlH bln -aDM -aEj -aEj -aDM -tlH -tlH -dGO -knl -knl -knl -knl -knl -knl -knl -knl -knl -knl -dGO -uar -lli -nkE -eQO -kKL -mzf -blM -fzK -cax -fFe -gcP -gcP -gcP -kJr -tpO -gpS -izC -xHr -lso -vwO -lso -ioE -mJM -obG -dEf -mFl -xja -iAO -niu -pZm -lwQ -qsQ -kQM -rVq -nji -cey -lux -lux -lux -lux -lux -lgk -tHv -mPv -cIU -mlR -rWW -atb -gvX -uOg -kRP -pAN -iLE -uep -vsZ -hnd -kRP -wCN -don -gJs -gJs -vZD -ebr -iJK -ebr -bzE -pMq -wvI -bHu -cAu -xwc -raA -vRC -nSw -qUu -imJ -fvR -kiE -fTB -pwF -mQb -mQb +ptf +xHe +ptf +utC +fri +fri +tkU +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln -uer bln bln bln bln -dZX -ijT -fgU -cAL -czi -swF -xws -eRH -sMp -orK -nSF -pnR -pnR -pnR -kQz -pnR -hHb -oyW -oyW -jtm -hzH -oyW -bqt -jtm -oyW -oyW -iHp -lLl -ozb -ujs -iJO -ogF -ogF -tFd -lRy -fyc -mYh -mYh -iHp -iHp -iHp -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(149,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD +(86,1,3) = {" bln bln -lBD bln -lBD bln bln -dTI -dTI bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr bln bln bln bln -qtD -kKL -cMr -aEj -kKL -oFc -tlH -dGO -knl -knl -knl -knl -knl -knl -knl -knl -knl -knl -dGO -bZW -lRs -tml -kKL -kKL -uFE -xqk -cpY -cpY -hhO -tLI -uoY -xqU -tLI -fNZ -fKZ -cpY -tLF -nOj -vwO -gnT -hgh -ohb -mTS -obu -mjI -fCM -dIL -hDq -tXc -lwQ -gkX -oeW -aTZ -fle -pyu -oul -wRG -rsR -svq -oio -kQM -upO -tQc -vSY -ubq -lfL -xLW -iPz -kyY -kRP -kRP -kRP -ybO -hlp -cGA -kRP -npD -npD -npD -npD -gGj -mue -sGH -bPt -fij -oDh -jaO -jLQ -wkW -txE -rfS -drJ -drJ -mRr -wvI -fiu -wvI -msn -wvI -wvI bln bln +jNZ bln +tGr +tGr bln +xiO +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +lSu +qVo +lSu +lSu bln bln -ntK -mQb -mQb -dZX -vGw -fgU -hPe -vMA -oLJ -rYq -yhw -nFk -fQu -aiY -pnR -xfg -uza -iAk -aRD -hHb -pza -pza -pza -pza -pza -sML -sML -sML -pza -iHp -lNc -euc -ujs -mYh -ogF -hfy -uBi -uBi -lqz -dBQ -eAx -iHp -iHp -iHp -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(150,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD -lBD -uer -lBD +fsm bln +stJ bln bln -dHF -hHG -hHG -hHG -pUa -wNO -wNO -pUa -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +hEI +hjI +oaR +oSy +sDl +sDl +sDl +sDl +sDl +sDl +sDl +sDl +jOt +caH +ons +oRM +oRM +uLX +rmA +qGW +tKI +lGd +wxy +nAr +wxy +axz +dzl +tKI +dMv +pdf +tKI +iUM +ssc +cXl +wRx +sdW +kXA +kXA +oDt +kRU +lMd +kXr +hLY +ceo +pBE +fNc +gSf +cYK +pBE +cZa +hxE +xUS +aOd +utC +utC +ptf +daS +jSe +xcW +sxY +tFs +pRj +ptf +ptf +ptf +pRj bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -fsm bln -kKL -kKL -wsr -wsr -kKL -tlH -tlH -gmW -knl -knl -knl -knl -knl -knl -knl -knl -knl -knl -gmW -uar -gUa -uNN -kKL -rBz -sSX -pns -cpY -vzH -uuO -uuO -uuO -uuO -uuO -uuO -guA -cpY -lkr -lso -vwO -fME -nKa -dqO -icA -joa -dqO -nKa -qYx -qWe -agK -lwQ -lwQ -bEL -weI -syv -bEL -lwQ -lwQ -bEL -lwQ -lwQ -bEL -lwQ -qQp -gGI -isP -ePi -rdG -vQP -rdG -jzY -xlh -hKY -uep -uep -uep -eRx -gNT -vng -lme -tiZ -uuI -noR -wDg -rqD -wDg -edw -wvI -ksb -xyT -jvR -fFC -nnn -iIs -iDQ -msN -drK -lyH -isu -lmy -wvI +bln +ptf +xHe +ptf +utC +utC +tkU +tkU +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln @@ -254927,400 +238715,171 @@ bln bln bln bln -uer -mQb -dZX -lIW -fgU -lIW -glS -iDp -doG -orK -bro -voY -rlS -frq -rlS -cfe -mXi -mzZ -mRI -bLz -bLz -rfh -bLz -mEg -bLz -jUW -bLz -mGg -mCw -ryf -ryf -fyr -lNC -mlp -lEg -cvh -uBi -eYH -jIZ -oFx -iHp -iHp -iHp -gNg -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(151,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -lBD -lBD -lBD -lBD +(87,1,3) = {" bln bln -uer -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +miY bln -efv bln -kKL -uUp -lli -sQS -kKL -kKL -kKL -gmW -gmW -gmW -gmW -kBc -dGO -dGO -kBc -gmW -gmW -gmW -gmW -oOw -aOW -dXx -rOw -ctS -qjJ -nPc -cpY -mmw -oKX -fkk -fkk -fkk -fkk -dkZ -dlH -aBP -ofl -lso -vwO -ePP -nKa -dGq -wKe -vHf -cZd -nKa -lIP -cJX -krS -aOU -mbB -rDa -mrB -jQD -slc -wZu -xza -qjF -pPO -qOj -iyK -uzr -qQp -qQp -wjD -rZm -sOO -lRD -gbP -jxv -wPX -cvS -cvS -cvS -cvS -cvS -sZF -wIS -wRr -npD -xfM -uFM -lmA -oqc -oAD -xKX -wvI -oTT -sCm -xFf -kdC -kRw -fUW -jeR -pMN -mgD -oKL -elT -kDc -pKY -tZa +oEB +mZf +bln +lSu bln +tGr +tGr bln bln +sDl +sDl +sDl +sDl +sDl +tGr +tGr +tGr +tGr +lSu bln +rzO bln bln bln +mZf lSu -dZX -dZX -dZX -dZX -dZX -iDp -swF -osm -iqu -fcu -vQz -pnR -xCk -uxG -iAk -mWw -hHb -pza -uNE -uNE -uNE -pza -pza -pza -pza -pza -iHp -cFM -mEx -ujs -mYh -ruZ -kfP -uBi -uBi -uBi -deg -mYh -iHp -iHp -iHp -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(152,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln +lSu +ntK bln -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +lJO +lJO +lJO +lJO +kcZ +biY +biY +sDl +sDl +sDl +hDU +hDU +hDU +hDU +hDU +gRs +ons +gpp +tmw +pMv +bcT +iTy +tKI +afz +rvS +xli +kfe +aCU +jJX +tKI +tKI +tKI +tKI +qQo +ibm +nEo +wNT +aYm +xqy +cXl +uxl +oRy +aHC +kXr +ghl +ceo +pBE +uYc +uYc +pBE +pBE +iVA +hxE +aCh +aOd +utC +utC +ptf +wSU +jSe +pRj +pRj +tFs +ptf bln -lSu bln bln bln @@ -255330,508 +238889,348 @@ bln bln bln bln -stJ +ptf +xHe +ptf +utC +utC +utC +utC +utC +vOy +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(88,1,3) = {" +bln +bln bln -gsK -kKU -kKL -cvF -sQS -lli -kKL -tRq -iyY -tlH -uMW -tlH -dGO -iyg -hHq -hfd -syC -gmW -cvH -kbL -kKL -soE -neE -kKL -kKL -cvn -btK -aUt -vnA -ooG -oUp -syI -xbn -hJo -vaL -gtw -wAJ -aBP -xVo -lso -qEM -pJC -nKa -jWO -cDT -rLL -cAI -cMN -met -idm -krS -ljB -xtc -wxH -voj -sDT -fzv -laD -xPv -mGO -tAx -qOj -grT -lEo -shy -qQp -bVp -jnS -fog -lkH -upd -xdl -eDc -hRA -cKF -sIJ -llD -fDI -sZF -sZF -wDK -npD -cbC -nZH -xbC -dPj -npD -npD -npD -npD -npD -npD -mdI -npD -npD -npD -wvI -fTH -wvI -wvI -wvI -wvI -vep -wvI -mQb bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr lSu +nMR bln +rzO bln +pby +rwt +bln +tGr +tGr +tGr +lSu +sDl +sDl +sDl +bln +tGr +tGr +tGr +tGr +tGr +jNZ bln -mQb -mQb -mwo -swF -eDh -vAF -swF -vAn -pnR -pnR -pnR -tWp -pnR -hHb -oyW -oyW -jtm -oyW -rsL -uvX -jtm -oyW -oyW -iHp -eoE -iST -ujs -iJO -ruZ -ruZ -jag -oEl -qEa -qEa -mYh -iHp -iHp -iHp -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(153,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -hAM -kdS -kdS -eRE -qQk -cvJ -kdS -eRE -kdS -kdS -kdS -dop -kdS -kdS -kdS -kKL -enY -kKL -kKL -eaQ -aFp -aiu -ijd -iyY -tlH -tlH -tlH -dGO -brm -uRo -hfd -jDX -gmW -bkR -pAX -kKL -hfg -hQW -kKL -soR -yfg -odF -lia -dgR -haJ -tYt -nRW -gtw -aoM -niO -gtw -wAJ -aBP -kNf -lso -cbs -nGA -nKa -nTV -jPl -jGJ -kXM -nKa -uze -eYn -wjL -niU -iWP -xIW -lrc -uYB -lCC -lCC -iKl -iKl -xyc -sPJ -bkV -ree -lOV -qQp -tQc -jbx -tQc -tQc -tQc -tQc -qQp -hRA -dBb -rkL -cga -api -sZF -tKH -wRr -npD -cmw -nZH -msT -npD -npD -ouW -aQj -alq -dFA -sZF -gTi -emT -wzv -oCE -gcT -gcT lSu bln bln bln bln -mQb -mQb +mZf +bln +xfZ +bln +bln +lJO +hQc +lgO +kke +sTj +hos +biY +sDl +sDl +sDl +hDU +dAQ +fVU +iYe +hDU +gpp +aJA +gpp +fUr +pMv +eAQ +pHy +tKI +tKI +tKI +tKI +tKI +vgR +tKI +tKI +gLN +rCC +gLN +rCC +eVl +rCC +dXh +cHb +cHb +mOA +cHb +psW +psW +oIH +ceo +ceo +yeh +hxE +hxE +vQj +fvx +hxE +hxE +xFb +aOd +utC +utC +ptf +jYS +gBe +jSe +oxB +jQC +ptf +bln bln bln bln bln +jNZ +nME +bln +bln +bln +ptf +xHe +ptf +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln bln bln bln -mQb -mQb -swF -jsq -ben -iol -oiy -oiy -eMK -lsU -apn -qhd -pbs -pbs -pbs -pbs -pbs -ilJ -pbs -pbs -pbs -pbs -ptY -iHp -iHp -iHp -iJO -iMp -oVz -iJO -mYh -oVz -iMp -iJO -iHp -iHp -iHp bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(154,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb +(89,1,3) = {" bln bln bln @@ -255840,891 +239239,760 @@ bln bln bln bln -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +miY bln bln bln bln bln -kKL -fOq -lli -kKL -tAN -tDy -kKL -ftk -iyY -tlH -tlH -tlH -dGO -vxW -uRo -hfd -rsy -gmW -oiU -xQU -kKL -kKL -kuJ -kKL -cqb -aYu -gYT -lia -njj -qEn -tFe -eay -eay -gtw -gtw -aHZ -ehL -aBP -ofl -lso -qEM -xwz -nKa -nKa -nKa -nKa -nKa -nKa -sWl -gOb -gOb -aSo -aSo -gLn -sZD -lnC -klc -lDM -dVS -bAj -lDM -klc -rWR -rqd -snG -mJj -laD -uml -laD -laD -laD -xLK -pDL -hRA -ist -rkL -uFz -tFV -sZF -ecW -fed -npD -bPY -rwe -wGO -npD -umD -pgc -dws -dhR -iye -sZF -xkr -gTi -cip -oCE -lSu -mQb -mQb -lSu +bln +tGr +tGr +tGr +tGr +mZf bln bln bln bln +tGr +tGr +tGr +tGr +bln +mZf bln +qVo bln +xfZ bln -uer -mQb -mQb bln -mQb +lSu uer -mQb bln +lJO +hEI +lJO +pKS +iSX +lJO +bOX +hos +biY +hDU +hDU +hDU +hDU +lyy +aJm +iFj +hDU +abL +ons +aLV +bXm +bXm +bXm +bXm +gst +gVP +mPh +ciI +aRX +bhV +nXQ +bLW +jJe +rCC +aMd +rCC +jIg +wEh +unO +hkU +hwF +ljl +kXA +rLu +nRq +maT +ajw +eMa +aOd +xZX +hxE +iVA +hoD +hoD +abz +qjQ +qjQ +xXk +xXk +pRj +pRj +uWW +kNZ +pRj +jQC +ptf bln bln -swF -hWi -xkZ -ggR -oiy -wRJ -hsh -cZv -lPc -vdu -wSw -fPZ -itl -tQM -itl -itl -qCU -vyt -vyt -vyt -ptY -ptY -ptY -ptY -ptY -ptY -iHp -iHp -nBo -iHp -iHp -iHp -iHp -iHp -iHp bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(155,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb -mQb -uei -tmR -uei bln -uei -tmR -uei +jNZ +xbV +qVo bln -uei -tmR -uei bln bln -kKL -enY -kKL -kKL -eRf -lfU -kKL -kKL -kKL -mMb -mMb -mMb -kKL -kKL -iyY -vFT -kKL -kKL -kKL -rCf -uOm -kKL -rsf -kKL -kKL -tSF -kKL -kKL -cpY -twn -nBt -jJQ -rlE -mBL -vjA -uDv -aFh -cpY -pxp -lso -brj -mbk -vBG -dkg -tLp -eLn -hKr -lQG -oxU -pxX -bCf -wor -wor -mfX -sZD -vgx -lDM -dxO -omo -jdm -xWT -klc -uiF -pJX -qxu -lPr -vcY -mmR -mOM -dMp -dMp -kVS -lqG -grD -xZW -lGs -rfo -vzs -sZF -sKf -naF -npD -ebr -iJK -ebr -npD -olM -xUW -sKf -tbQ -sKf -sZF -ddA -sZF -sZF -sZF +ptf +xHe +ptf +utC +utC +utC +tkU +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -quy -uer bln -mQb -mQb bln bln bln bln bln -hPv -ujK -ujK -hBf -eRE -ujK -ujK -ujK -iNl -ujK -swF -swF -swF -swF -oiy -uZD -hsh -kCV -bkr -qOy -pbs -nZN -qMH -ptY -ptY -ptY -ptY -ptY -ptY -dLL -vyt -vyt -vyt -ctl -ctl -ptY -iHp -iHp -iHp -iHp -iHp -iHp -iHp -iHp bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(156,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -sAd -tMa -uei -tmR -uei +(90,1,3) = {" bln -uei -tmR -uei bln -uei -tmR -uei bln bln -mMb -nJK -puz -kSc -kSc -lRZ -lRZ -tYS -lRZ -vjq -lRZ -lRZ -vjq -pbS -lRZ -lRZ -iLn -niE -bMF -pJi -ovz -kKL -sQS -sna -kKL -nFt -kKL -kKL -kKL -kKL -kKL -kKL -pcM -kKL -kKL -kKL -kKL -kKL -kKL -glz -kjN -hAl -vBG -rMS -pKw -xcu -jQd -jQd -wmN -rZR -bCf -aKa -wor -qxG -vFW -noW -nOh -bNH -bNH -rIc -gpR -klc -ooy -gsT -eDH -iYs -xFo -rvA -dVc -nfD -sUT -bIQ -gib -hRA -npo -woa -uQj -htH -sZF -akd -mlo -npD -tMS -iJK -cpl -npD -fWL -qHt -iiB -dFA -nhO -sZF -awO -vjZ -mQb bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +fsm +eUO +bln +bln +bln +fsm +bln +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +csm +hjI +nbj +vfm +exL +hEI +qGU +biY +biY +mSY +mQh +xKb +djF +xMW +apI +tOi +kkO +fNK +aJA +hIj +bXm +gpZ +vov +cAo +gst +uao +plN +rTO +rTO +fsS +aqQ +gst +dKe +lek +jak +nfd +jIg +wEh +uuP +aGF +uuP +gam +qQo +lmv +uuP +tue +nZh +lNG +tue +qjQ +jBf +nvx +lis +aud +lis +qjQ +utC +utC +utC +utC +pRj +ili +pRj +pRj +jQC +ptf +bln +bln +bln +bln +fkF +cPp +rwt +bln +bln +bln +ptf +xHe +ptf +utC +tUm +utC +tkU +fri +tkU +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(91,1,3) = {" +bln +bln bln bln -mQb -mQb -mQb bln bln bln -yfW -nTX bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +bln +mZf lSu +sEB bln bln +gHA +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr +tGr bln -uer -mQb +ntK bln +rwt bln -mQb -mQb +rwt bln -oiy -oiy -kHU -vAU -alK -oiy -ptY -ptY -ptY -ptY bln bln bln +mZf +lSu bln -ptY -ptY -ptY -ptY -ptY -ptY -ptY -ptY -iHp -iHp -iHp -iHp -iHp -iHp -iHp -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(157,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb +lJO +foT +lJO +tyl +kvE +hEI +qGU +biY +rcP +jXN +vVj +dRD +jFf +uOj +bgF +vPM +esI +cVz +ons +xSL +lnc +qRq +pNK +aTT +gst +sTn +fXu +uOM +vzw +rTO +pRX +gst +byl +rgl +wVF +iBF +guS +wEh +vlL +qxQ +eBe +hnC +cah +aSh +ycQ +nZh +lIy +tBR +qwd +pRj +mAc +pRj +pRj +pRj +pRj +pRj +utC +tkU +utC +utC +pRj +axr +mUh +pRj +jQC +ptf bln -uei -tmR -uei bln -uei -tmR -uei -mQb -uei -tmR -uei bln bln -kKL -kKL -aeS -plI -whe -chc -dDz -kKL -sQS -sQS -lli -sQS -lli -kKL -kRV -ssM -lli -eRf -kKL -kKL -kKL -kKL -lli -sQS -lli -uwE -tnu -eUU -sdf -vmO -eYm -kKL -tvZ -kKL -kVv -wgo -lcs -eGg -kKL -rjP -vwO -pxn -vBG -ulL -kGm -rZZ -opc -qPI -gXk -cgs -bCf -wor -wor -kjP -amE -vgx -lDM -oXq -gUg -amv -sxs -klc -aSo -aSo -vuh -aSo -aSo -aSo -mmB -aSo -aSo -tMO -pEq -tMO -tMO -tMO -tMO -tMO -sZF -nfF -mlo -npD -wPE -iJK -pyY -npD -lYT -waF -jmY -ptp -iye -sZF -eZu -vjZ -mQb bln -mQb +lbc bln bln bln bln -iAf -iAf -iAf -iAf -iAf +ptf +xHe +ptf +utC +utC +utC +tkU +utC +utC +utC +pRj +pRj +ptf +ptf +ptf +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -fPc bln bln bln @@ -256732,6 +240000,8 @@ bln bln bln bln +"} +(92,1,3) = {" bln bln bln @@ -256739,1779 +240009,856 @@ bln bln bln bln -oiy -oiy -oiy -oiy -oiy bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +rzO +nMR bln bln -oxi bln -wNO -wNO bln bln +nMR +mSQ +tGr +tGr +lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO +ntK bln -pGW bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(158,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb +xAs bln -uei -tmR -uei bln -uei -tmR -uei -mQb -uei -tmR -uei bln -lBD bln -kKL -kKL -kKL -mMb -kKL -kKL -kKL -fsJ -ekj -nLY -lli -gAt -kKL -lIC -lRZ -pQa -rOv -fuf -lli -kDO -wsk -hVR -lli -obt -xWM -dku -kKL -nqn -lHA -ddi -kKL -tvZ -kKL -pdB -oBD -lqM -aYk -kKL -vpx -qEM -bbM -vBG -vBG -vBG -eNH -vBG -oiX -myn -cgs -bCf -aWc -nbW -oyy -amE -wyj -klc -tLe -ufN -vCz -ufN -iZx -dDw -qHz -ekE -fzo -fGY -qaU -jtH -qpb -mFE -iZR -nuN -tMO -hpB -jDc -tMO -nMb -sZF -oGN -wRr -npD -ebr -hcG -nZH -npD -vtr -giv -aQj -dFA -oMs -sZF -eZu -vjZ bln +jNZ +lSu +jNZ +lSu bln -mQb -mQb +rzO +lSu bln bln +lJO +lJO +lJO +lJO +lJO +lJO +lXn +biY +dXv +lck +ocu +vwQ +wMc +ygv +toW +kyi +aNq +jsF +ons +ons +lxc +wvK +aKs +tgH +gst +iXM +vWW +vWW +vWW +tnO +kPL +gst +iSA +vHK +kDj +dBZ +dOw +cMI +qmi +kUx +umR +hnC +nKr +qmi +cex +nZh +mdS +thK +dnT +pRj +kCn +baB +pRj +xSI +tXb +pRj +utC +utC +fri +tkU +pRj +axr +sma +pRj +wMU +ptf bln -iAf -lTC -qpR -kLr -iAf -iAf -iAf bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(159,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -hAM -kdS -kdS -nyZ bln -uei -tmR -uei bln -uei -tmR -uei +tIC +bln +bln +bln +bln +pRj +xHe +pRj +pRj +ptf +ptf +pRj +ptf +ptf +pRj +pRj +enR +yju +eoL +ptf +utC +utC +tkU +utC +utC +utC +utC +utC +tkU +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(93,1,3) = {" bln -uei -tmR -uei bln -fsm -lBD bln bln bln bln -acE -bxe -bxe -bxe -mHB -kKL -ycO -kKL -kKL -aIE -lRZ -rmP -lli -pKX -sQS -qdq -sQS -qdq -lli -qdq -sQS -unu -hxa -kXW -saC -xWr -kKL -tvZ -cDw -lli -lli -lli -nfE -kKL -cwO -vwO -lso -siu -vBG -rkK -oeM -vBG -rjt -wLY -aBi -vBG -oEF -bZb -ubk -ndJ -rHz -fdY -vjN -wXh -xCQ -ufN -sVm -dDw -srb -dUr -wuv -vds -nmC -cEo -kQJ -mFE -pjN -bsi -cmy -nAN -kCo -ezf -cnb -sZF -uTV -fed -npD -npD -nvh -npD -npD -sZF -fzO -sZF -sZF -sZF -sZF -eZu -vjZ bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +lSu bln bln +lSu bln bln bln -iAf -dTq -qRk -weR -lQO -hJD -iAf -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(160,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +jSf +sEB +lSu +sEB bln -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb +mZf +lSu +mZf +xAs bln +fsm bln +uer bln bln bln -tmR bln -mQb bln -tmR bln bln bln -tmR bln bln +lJO +oXf +xSx +fdF +lJO +vqS +oIB +biY +vVj +jXN +rcP +viV +gbd +uOj +pdW +jfR +aNq +jsF +ons +gpp +lnc +kFu +sJr +vBu +gst +sbY +xAy +xAy +tge +ozH +bZg +gst +hYG +jYG +dOw +dOw +yhe +rCC +vPh +vQQ +vQQ +sve +qmi +cXc +fhw +nZh +lzt +cQh +pyc +pRj +kCn +daS +bKp +bPz +axr +pRj +utC +tkU +tkU +utC +pRj +daS +tZM +pRj +wMU +ptf bln bln bln -vsI -acE -acE -acE -kXQ -gWV -oBQ -mHB -gUY -iLn -lli -kKL -kKL -lRZ -pEc -sQS -wfE -opU -ykd -sQS -wfE -qch -gyd -tTK -aXc -eUU -iCo -kiX -enH -kKL -tvZ -kKL -lne -rrg -atI -fpA -kKL -rtf -qEM -lso -bGT -vBG -wvW -moG -vBG -rWg -oMR -cNL -vBG -eTY -xrb -qhN -amE -lei -klc -pgY -hXU -oRu -ccR -uKj -dDw -cyr -qgu -tYA -vds -uhG -liz -pjP -mFE -nEc -klk -hsn -hyd -sSj -tMO -jYy -sZF -jPi -fed -nGv -hQK -eZu -pGG -sZF -dlS -pZZ -xpT -hEZ -sZF -lGH -eZu -sZF -sZF -vjZ -sZF -lSu bln -xOk -vYq -iAf -tUh -iNQ -cmX -iAf -iAf -iAf bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(161,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -sAd -ftY -cnx -tmR -tmR -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -tmR -tmR -tmR -tmR -tmR -rUR -kxv -fIs -kxv -jju -qNZ -lFG -qRo -gxh -gxh -gxh -kKL -gAt -pEc -gAt -sQS -hFm -kKL -kKL -mMb -mMb -kKL -xds -kKL -kKL -kKL -kKL -kKL -kKL -tvZ -kKL -kKL -kKL -kKL -kKL -kKL -lso -vwO -mqq -ivB -vBG -dxq -jAG -sZF -sZF -gXY -sZF -sZF -sxw -ayI -jdA -mSM -ozN -sZF -sZF -sZF -sZF -sZF -sZF -sZF -fLQ -mjH -qLy -vds -iCj -nqd -eUN -mFE -fil -pWY -rQI -phj -oqT -tMO -vIe -sZF -gWh -wRr -lMa -frz -dhv -pZZ -hLX -pZZ -pZZ -sKf -eGK -sZF -cXR -aTc -xpT -bdx -sKf -cmq -lSu bln -lSu -vYq -fWS -weR -jdJ -xVO -jAQ -mQb +pRj +pRj +pRj +pRj +poc +xzH +hrS +faF +pXv +mBO +pXv +xYO +pXv +rnh +pXv +xDe +nkO +ptf +utC +utC +fri +tkU +tkU +utC +utC +utC +utC +fri +utC +utC +tkU +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(162,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb -mQb bln bln bln bln -tmR bln +"} +(94,1,3) = {" bln bln -tmR bln bln bln -tmR bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +bln +jNZ +oEB +jNZ +bln +ntK +bln +bln +xPF bln bln -sEB -acE -acE -acE -lQf -swt -xTp -pDQ -xBL -wJM -wJM -qRo -kKL -dnL -pEc -kKL -pVl -kKL -kKL -xUd -tlH -tlH -kKL -rEM -kKL -tlH -tlH bln -kKL -dYS -aXc -amW -qmq -kWV -asg -kKL -kdF -qGV -hUx -xVv -sZF -sZF -sZF -sZF -sZF -ayd -wEV -sKf -sZF -sZF -sZF -sZF -lpC -sZF -sZF -pwV -pwV -sKf -hEZ -sKf -sZF -sZF -sZF -sZF -sZF -sZF -sZF -sZF -sZF -sZF -sZF -sZF -wNp -sZF -sZF -sZF -sZF -hEZ -mlo -lCc -lRK -xKx -bHc -sZF -sZF -sZF -sZF -sZF -sZF -sVA -sZF -sZF -sZF -vjZ -sZF lSu bln -xOk -vYq -iAf -qPY -tUh -xVO -jAQ -mQb bln +lBD +xAs bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(163,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -fYT -kdS -kdS -wSp bln -uei -tmR -uei -mQb -uei -tmR -uei +xfZ +bln +bln +bln +bln +bln +fsm +bln +bln +bln +dvY +lJO +nLE +erl +oDH +fVm +ndz +oIB +biY +biY +gNC +iLi +oJT +wwO +gad +gAk +tMI +hDU +vAY +ons +eNE +bXm +mWs +lSg +mTh +gst +gst +sto +lpj +gst +gst +npP +bLW +xjP +qcI +gxO +dKK +xmN +rCC +iiy +grN +qmi +kGx +rqJ +rMr +bgK +nZh +iOS +mYs +fxn +pRj +mgo +daS +pRj +iaT +twF +pRj +utC +utC +utC +utC +pRj +pRj +pRj +pRj +wMU +pRj +pRj +pRj +pRj +ptf +ptf +ptf +ptf +pRj +bLA +eQz +blO +xHe +pRj +glX +nSl +kNZ +pRj +lDF +wSU +ovy +pRj +qYR +qvk +tXb +ptf +utC +utC +utC +utC +tkU +utC +fwx +utC +tkU +tkU +utC +utC +tkU +tkU +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -uei -tmR -uei bln -lBD bln -lBD bln bln bln -acE -bxe -bxe -mHB -mHB -pVl -kKL -bqe -gxh -kKL -hOu -pEc -hJx -lli -fAF -kKL -kKL -mMb -mMb -kKL -xds -kKL -mMb -mMb -mMb -kKL -vYv -lli -lli -kKL -gkP -hFg -kKL -xcy -rvZ -hUx -cie -aLX -vng -gNT -gNT -gNT -gNT -gNT -gNT -gNT -kYc -edd -xwM -daR -mQg -lRW -qDm -hkt -hkt -hkt -hkt -pvo -ptR -hkt -sWs -sWs -sWs -sWs -sWs -sWs -sWs -sWs -sXK -xTQ -sWs -rzV -sWs -sWs -rzV -xTQ -vwN -rzV -rzV -rzV -vtO -sWs -sWs -sWs -sWs -skI -osn -nzN -ktf -sZF bln -mQb -mQb +"} +(95,1,3) = {" bln bln bln -iAf -iAf -jAQ -iAf -iAf bln -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(164,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb bln -uei -tmR -uei bln -uei -tmR -uei +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +mZf +vwC +pby bln -uei -tmR -uei bln +tGr +tGr bln +jSf lBD -uer +bln +bln +rzO +bln bln fsm +xAs bln bln bln bln -kKL -cvF -lli -kKL -mwu -qRo -kKL -kKL -lwI -kKL -jhS -tOX -kKL -hVz -uUp -khs -kKL -xds -dYS -amW -amW -amW -amW -rkh -igX -igX -kKL -mVS -kKL -kKL -kKL -fyZ -hUx -cie -sZF -eFS -sZF -sZF -sZF -sZF -sZF -eZi -sKf -mFj -npD -eMn -avF -mZH -sZF -kAC -hil -sKf -sKf -wUA -wUA -wUA -wUA -sKf -sKf -sKf -ktf -tEe -sKf -sKf -lVS -oLn -jgL -gCu -elE -xJv -bge -sKf -jgL -sKf -jgL -xpT -sKf -ktf -mFj -sKf -jgL -sKf -sKf -jgL -wRr -wEV -sZF -mQb bln bln bln @@ -258520,916 +240867,1197 @@ bln bln bln bln -fPc -mQb bln -mQb +bln +lJO +lJO +lJO +lJO +lJO +thD +oIB +hjI +biY +biY +biY +biY +biY +biY +biY +biY +biY +ede +iKj +bPp +bXm +lnc +lnc +lnc +gst +sAC +eBd +eBd +wJR +uri +tKZ +gst +rCC +rCC +wEh +kgX +wEh +rCC +sOn +aBh +eaE +wkN +aBh +sOn +sOn +tue +tue +tue +tue +pRj +kCn +daS +pRj +pRj +pRj +pRj +bON +bON +bON +bON +pRj +wwE +kkD +daS +dWZ +qtM +obj +obj +obj +obj +obj +obj +obj +obj +obj +obj +iOM +suR +pRj +pRj +ick +ivm +pRj +pRj +mNY +mNY +mNY +mNY +mNY +mNY +mNY +jHS +xhM +wDS +rbV +gMp +gMp +rbV +gMp +gMp +rbV +gMp +jHS +utC +fri +tkU +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(165,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -chb -mQb -uei -tmR -uei -mQb -uei -tmR -uei bln -uei -tmR -uei bln bln bln bln -mQb bln +"} +(96,1,3) = {" bln bln -ntK bln -kKL -oCv -gGF -kKL -qqB -gxh -kKL -weF -pEc -kKL -moF -eyv -kKL -pQa -wWo -wWo -oPO -jPq -xWM -kKL -kKL -kKL -kKL -kKL -kKL -kKL -kKL -meZ -aJG -sQE -hwE -hwE -cMe -cie -uvt -tlP -jfb -vzX -gAz -cyX -sZF -npD -npD -npD -npD -npD -hTu -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -gDE -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -npD -sZF -sZF -pHR -wEV -vjZ bln bln -uer bln -mQb bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +tGr +tGr +tGr +tGr +tGr +tGr bln bln -yfW -mQb -uer +lSu +tGr +tGr +tGr +tGr +mSQ bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(166,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +rwt +lBD +ntK +bln +tCj +xAs +xAs +xAs +xAs +xAs +xAs +xAs +xAs +xAs +hIv +wPN +wPN +lJO +lJO +lJO +otM +hDc +wGG +psR +vHA +cJH +sCE +cGe +gYG +iLK +iLK +iLK +det +iLK +vBi +lJO +dnq +iuv +xgm +dnq +dnq +dnq +dnq +tPH +dnq +dnq +fTx +bep +dnq +gOy +dnq +srw +yld +pTB +pTB +pTB +mWU +pTB +pTB +dnq +dyN +rGl +hJE +vYA +hzV +rGl +vTo +oVu +mye +ptd +ptd +obj +obj +obj +tXE +obj +obj +obj +obj +tXE +obj +uNW +obj +uoB +mNY +mNY +mNY +mNY +mNY +mNY +mNY +mNY +mNY +mNY +mNY +pRj +sCw +eQz +rAO +taX +wOB +beO +kbs +cXo +gBv +tjH +aUK +gGs +bbU +aUj +aUj +nce +tkU +tkU +utC +fwx +utC +tkU +tkU +utC +utC +reh +fCR +gMp +gMp +uqA +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -sAd -tMa -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln bln bln -mQb bln -mQb bln +"} +(97,1,3) = {" bln bln bln -kKL -sRI -lli -kKL -hJx -qFW -kKL -hOu -pEc -hJx -mzM -hUi -kKL -eqP -unu -kKL -kKL -kKL -kKL -kKL -cIP -dtb -ndO -jSC -bdS -dtb -hUD -nNi -rvZ -lso -lso -rCu -cYE -hZT -idi -cZU -kBl -kBl -hOY -dbx -uvt -awK -ppQ -mrA -mtI -dAh -mYp -owC -tsr -moL -mGu -wHc -aEA -dng -dAB -rHi -rHi -rHi -rHi -rHi -rHi -qLY -pnA -qFp -fvk -bfN -ily -qeQ -ily -rSz -ily -ily -ily -ily -ily -rSz -ily -hnN -ily -ily -ily -lqU bln -vjZ -pHR -wEV -vjZ bln -mQb bln bln -mQb -mQb bln -mQb -uer -fPc +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +tGr +tGr +tGr +tGr +tGr +bDu +bDu +bDu +bDu +bDu +bDu +bDu +xAs +xAs bln bln +lSu bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(167,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +lSu +cuq +itE +lSu +cuq +itE +lSu +cuq +itE +rzG +sDl +sDl +sDl +hEI +sop +wZm +fFb +jwL +lJO +lJO +lJO +lJO +htJ +apX +hjI +hdh +mFy +fjF +hjt +ndz +vOG +anb +sSe +bzQ +aTI +bmv +bmv +bmv +bmv +pwM +bmv +bmv +cKq +cKq +cKq +qsy +iwz +dLQ +iwz +xwC +jwt +gOy +iwz +iwz +iwz +iwz +rQn +iwz +iwz +iwz +uag +iwz +nQO +nua +pRj +pRj +kFR +daS +tZb +rLc +axr +utU +teF +axr +utU +daS +daS +tZb +daS +fhW +mNY +csT +csT +csT +xaI +fiY +wkl +csT +csT +csT +mNY +gob +hwn +cAe +mXa +dpx +mXa +mXa +qCl +mNY +aUj +vWy +kLc +oFY +sIN +xmK +uaG +cSx +uOE +cSx +vyU +pXY +pXY +pXY +vyU +uOE +utC +fuZ +utC +tUm +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -uap bln -uei -tmR -uei bln -uei -tmR -uei bln -uei -tmR -uei bln -stJ bln bln bln +"} +(98,1,3) = {" bln bln -uer bln bln -kKL -rSq -raH -kKL -gxT -gxh -kKL -kKL -pEc -kKL -kKL -kKL -kKL -kIl -cqN -kKL -eIk -xry -xeH -yeF -prg -bwK -prg -xtp -prg -qMm -hUD -sOH -hUx -igt -rek -hUx -rNQ -hZT -idi -aID -gky -vvP -mxD -cgZ -uvt -jeB -pra -jog -mtI -lUf -keZ -owC -pXt -qOH -jIP -wHc -sgL -pTU -itt -rHi -rHi -rHi -rHi -rHi -rHi -qLY -baF -fvk -fvk -bfN -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -lqU -tmR -vjZ -pHR -wEV -vjZ bln bln -mQb bln bln -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +tGr +tGr +tGr +tGr +bDu +vKk +hwR +igB +wRs +xlC +bDu +dvl +cuq +jRS +jRS +dlt +jRS +jRS +itE +llT +sgW +akQ +lSu +sgW +akQ +lSu +sgW +akQ +rzG +sDl +sDl +sDl +hEI +nFG +sjp +rqk +ure +lJO +gAs +bZx +biY +biY +ogy +biY +biY +biY +biY +biY +biY +biY +biY +tFw +fPP +dnq +xzh +xzh +xzh +xzh +xzh +dnq +mgj +bzc +xIS +mgj +mgj +mgj +srw +jOy +ljp +gHe +sni +bep +qrJ +uLC +xzh +aNE +qcu +bDR +wXW +cYj +bep +ylU +lAB +uvC +pRj +dHu +daS +daS +nOY +axr +daS +bPz +daS +axr +axr +daS +axr +axr +fhW +mNY +anz +mDf +nLb +kNp +vbn +vFs +mMk +qAV +fyw +mNY +kCn +kCn +kCn +kCn +kCn +kCn +kCn +ioQ +jMn +pZG +toq +uDE +xFB +rkc +gxR +uaG +iLY +iLY +iLY +bxa +pXY +pXY +pXY +pXY +fcP +utC +fuZ +utC +tkU +utC +liV +jHb +vOy +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln -mQb bln -fPc -mQb -mQb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(168,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(99,1,3) = {" bln -chb +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +tGr +tGr +tGr +bDu +jgG +mAe +jJM +mAe +dfz +dnX +bln +abb +tDg +tDg +ooL +tDg +tDg +oFI +oEB +sgW +akQ +lSu +sgW +akQ +lSu +sgW +akQ +rzG +sDl +sDl +sDl +lJO +lJO +lJO +lJO +lJO +lJO +bZx +bZx +bWn +seL +nUr +ibk +xwr +xgg +xId +whQ +kka +fmm +bWn +fTR +eJe +iIF +jII +pAZ +pAZ +jII +inJ +dnq +wGa +dxK +dxK +iOF +opm +opm +dxK +gfb +gfb +gfb +pYB +gfb +gfb +vtg +rcE +rcE +rcE +hVc +jII +jII +rLl +ylU +dnq +uaY +pRj +jQC +daS +axr +fXq +daS +daS +tbi +daS +daS +axr +axr +axr +axr +fhW +mNY +krU +qjq +cEM +aQR +csT +aQR +eTi +rfR +aGB +mNY +kCn +mNY +mNY +mNY +mNY +mNY +mNY +mNY +mNY +nav +gfo +nNs +rDO +rkc +qWM +lha +kAK +iLY +iLY +lqE +pXY +pXY +pXY +pXY +uOE +utC +fuZ +utC +fri +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(100,1,3) = {" bln bln bln @@ -259438,783 +242066,769 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +tGr +tGr +bDu +nGU +mAe +jJM +mAe +dfz +feJ +feJ +awd +awd +awd +feJ +feJ +kyy +kyy +cJi +abb +oFI +oEB +abb +oFI +oEB +abb +oFI +rzG +sDl +sDl +sDl +pfe +bZx +bZx +bZx +bZx +mgs +kQi +oWk +bWn +sBu +nUr +sFS +mhb +mhb +mhb +qwi +bIc +bIc +tgn +ikB +eJe +utR +pAZ +ucn +tLi +pAZ +tVd +uLC +jCT +dxK +xax +oyp +phf +sEl +qRs +jST +wUX +odN +iZq +dpH +gfb +mYG +iIA +fGQ +iIA +cvg +qQb +jII +okb +ylU +dnq +dyB +pRj +jQC +pXv +jUV +sGz +miL +pZS +axr +qCa +aph +oIy +aAM +nON +nON +iQb +mNY +juS +aQR +aQR +aQR +fxR +aQR +csT +csT +csT +mNY +kCn +mNY +dUn +thC +cpH +kbJ +kbJ +kbJ +yaL +hNM +epY +vWe +kIt +kMY +omT +lha +iLY +iLY +iLY +bxa +pXY +pXY +pXY +pXY +xLS +utC +fuZ +utC +fwx +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -hty bln bln bln -lSu -lSu bln bln +"} +(101,1,3) = {" bln bln -kKL -kKL -kKL -kKL -kKL -xcp -gxh -ldn -aXp -iOc -uDW -xlN -uNX -dUL -gMZ -iOc -cqh -tsh -gEq -aDo -caY -prg -bwK -prg -cDH -prg -qMm -hUD -pyJ -lPh -hUD -hUD -ebb -cYE -hZT -idi -aID -ddk -ddk -dry -edq -uvt -uus -pra -ctY -mtI -uxj -eNK -owC -xGA -jTZ -xGA -wHc -xKk -emK -uvU -rHi -rHi -rHi -rHi -rHi -rHi -qLY -oCA -fvk -fvk -rMY -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -tgx -qLY -xSE -sZF -rzL -gea -sZF -mQb bln -mQb bln bln bln bln -mQb bln -pMM +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +lbc +bDu +jgG +mAe +jJM +mAe +stt +qVB +eeD +aSH +lyG +rUb +vrb +feJ +cRg +pBN +brx +kyy +kyy +kyy +kyy +iDq bln bln bln +rzG +tlE +tlE +tlE +pfe +bZx +bZx +bZx +bZx +gYm +krQ +skZ +bWn +nch +xMX +xIz +bIc +bIc +bIc +wdI +yaE +yaE +mvw +aTH +eJe +utR +pAZ +wtj +lBD +bcN +qzy +adP +adP +dxK +wzk +wzk +wzk +wzk +pgw +iYb +iYb +msb +hll +iYb +gfb +cpm +cpm +cpm +egY +wwn +jfc +cpm +pzb +cRF +dnq +pRj +pRj +dOa +pRj +pRj +pRj +pRj +hSm +qLA +jui +pRj +pyR +fWC +lmB +lGw +daS +mNY +ctI +hLZ +qNv +csT +csT +aQR +eso +rop +wTA +mNY +kCn +mNY +dUn +hpd +ahK +kbJ +kbJ +wkw +yaL +saO +eVV +rat +dNG +sth +aUj +aUj +rNZ +iLY +iLY +lqE +pXY +pXY +pXY +vyU +uOE +utC +fuZ +utC +tkU +utC +fuZ +utC +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(169,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -fYT -kdS -kdS -eRE -kdS -kdS -kdS -eRE -kdS -kdS -xFn -eRE -kdS -kdS -kdS -eRE -kdS -gSd -lej -eRE -kdS -lVr -kKL -hTB -sRI -jwF -kKL -lli -gJX -paT -lli -lli -vbZ -jpo -izp -nae -pCi -kKL -kKL -ikm -gXp -qCA -vvL -blV -sEi -sEi -fQz -oBI -sEi -mMD -nVr -wFO -bzA -hUD -eaT -byK -sDd -bRd -fqQ -wIg -qfh -kRE -cLo -uvt -bVq -oed -fAG -mtI -uRL -xmf -owC -tVn -tYe -xIF -wHc -aiH -pTU -faJ -akx -tHK -dfe -dfe -dfe -ehO -lDX -cpg -cpg -cpg -huN -hfc -hfc -hfc -ocD -diL -qVz -luD -tfl -dXI -pTT -eLm -jVs -hfc -hfc -jCE -adY -tmR -sZF -pHR -wEV -sZF -mQb -uer -mQb -mQb -ntK bln bln -mQb bln -yfW -nwD bln -mQb bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(170,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -ozo -bln -wNO -wNO -wNO -bln +(102,1,3) = {" bln -lSu bln bln bln bln -kKL -cjO -eCq -xCo -nZU -tDy -rpD -kKL -kKL -kKL -kKL -kKL -kKL -kKL -gkP -kKL -ilq -eSn -bJQ -qCA -vvL -prg -oBI -sEi -sEi -fQz -lBo -sEi -pDS -sEi -vfo -hUD -lso -cYE -fkw -ult -bsG -wGF -wGF -wGF -mtI -mtI -lKk -tUX -tMe -mtI -nqP -vzo -rzz -gEn -pBV -dsl -wHc -ccW -nhf -mfV -xpA -uHc -cpg -gRA -cpg -cdl -pMF -pMF -pMF -pMF -kZa -mQW -mQW -mQW -eqV -dbr -aFJ -xJj -xJj -klW -iVT -ogl -eyR -goe -diL -vTJ -apT -sEB -vjZ -laf -wEV -vjZ -mQb bln bln -mQb -uer bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +lbc +bDu +cFb +mAe +jgs +mAe +uVP +aWk +diC +bJj +lyG +teq +bXy +feJ +xWb +jDM +brx +rai +amn +hzG +wZD +iDq bln -mQb -mQb -fPc bln bln +rzG +sDl +sDl +sDl +pfe +bZx +bZx +bZx +bZx +gYm +krQ +gYp +bWn +iUO +egL +ssF +pSu +fgQ +pSu +pSu +tlo +kZC +tgn +igQ +euZ +utR +pAZ mQb -uer -bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bNy +qWZ +oVR +apo +oVR +dxK +xVq +lnk +pNs +pNs +oyb +mqD +iYb +dkb +kmi +iYb +xaA +ovx +gMq +pec +fJl +xMR +wqn +cpm +dnq +ylU +pua +pRj +xWm +jQC +ukS +kFR +xWm +pRj +pRj +pRj +pRj +pRj +tRa +fhW +rCZ +uow +daS +mNY +gFI +bdR +xaI +xaI +csT +kNp +xaI +dBh +xYI +mNY +oXX +mNY +hpd +hpd +hpd +wkw +wkw +wkw +yaL +cTs +nJp +ycB +ycB +qtj +qtj +aUj +iLY +iLY +iLY +bxa +pXY +pXY +pXY +pXY +fcP +fwx +fuZ +utC +fri +tkU +liV +qRv +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln "} -(171,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(103,1,3) = {" bln bln bln @@ -260222,3188 +242836,2312 @@ bln bln bln bln -kKL -xpE -gGF -wMT -kKL -lli -iin -kKL -xCF -kKL -ptQ -rSl -nqn -kKL -gkP -kKL -tgv -huB -ogd -hff -blV -prg -qok -caY -qok -prg -qpP -nmN -pDS -sEi -cLJ -iQQ -lso -cYE -gAZ -ult -wjz -tXh -shG -shG -otK -iIe -pKJ -rIU -tLM -mtI -nRX -sfY -owC -bYS -qyn -nZf -wHc -wDW -vJY -gJT -jbU -jbU -jbU -jbU -bkQ -drr -qhL -qhL -qhL -qhL -tCx -wPd -wPd -wPd -wPd -wPd -fTq -wab -wOO -wPd -wPd -wPd -wPd -wPd -ega -bcE -qLY -sEB -vjZ -dAP -wEV -vjZ +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +lbc +bDu +qdF +cno +oSC +ovV +hkY +feJ +pyG +pdK +lyG +apS +uCs +gbJ +pTN +aPN +hEG +eRO +eRO +fDc +eGA +iDq +jSt +mfH +wPN +xAs +jbe +sDl +sDl +bHI +bZx +bZx +bZx +bZx +gYm +krQ +thI +bWn +tsz +xMX +hSl +ueS +ueS +ueS +wTw +yaE +rAZ +qOD +keS +eJe +kKX +pAZ +stJ +fsm +qWZ +lvA +gKU +aoW +dxK +fbw +hue +hBZ +eYT +vdi +oMP +iYb +txI +xvZ +iYb +sbi +jWP +ool +jRC +cgC +jaq +vvT +cpm +dnq +ylU +dnq +pRj +pRj +pRj +pRj +jnm +pRj +pRj +gTf +sPI +uFh +vym +vym +sdd +vym +pRj +oKv +mNY +csT +csT +xaI +pnn +jek +kYq +xaI +csT +csT +mNY +kCn +mNY +yaL +rqF +rqF +yaL +yaL +yaL +yaL +pmi +bTF +nHe +jDP +wTg +bRj +gyR +fhX +kAK +iLY +lqE +pXY +pXY +pXY +pXY +uOE +utC +reh +jKQ +utC +tkU +vDi +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -uer -mQb bln -mQb bln bln -mQb -fPc bln bln -mQb -mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(172,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(104,1,3) = {" bln -uer bln -stJ bln bln bln -kKL -rqH -lRs -hBv -kKL -lli -wJM -kKL -tml -kKL -kLb -qpd -obl -kKL -gkP -kKL -sTA -ivH -lVF -pup -iZn -prg -prg -prg -prg -prg -prg -bwl -pDS -sEi -bwl -hUD -uff -cYE -gAZ -ult -hpC -rIU -rIU -tJI -irA -uzi -pdy -fiS -agJ -mtI -vtA -muP -owC -owC -owC -owC -wHc -mYq -nyH -lFW -jzH -mde -gSN -jbU -wnX -drr -hvm -pvB -ehd -ehd -ehd -ehd -bbB -bbB -bbB -vDu -lva -lva -iXu -drr -pvB -ehd -orv -aCb -aCb -vfq -apT -sEB -vjZ -pHR -wEV -vjZ bln -uer bln -mQb -mQb -mQb +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +lbc +bDu +hGH +qkL +cLD +qkL +hGH +feJ +iuS +lyG +xgc +lyG +lyG +ihx +wZj +jAk +cMA +wkr +wcL +ven +iFg +kyy +kTz +lbk +sDl +sDl +sDl +sDl +sDl +bHI +bZx +bZx +bZx +bZx +gYm +krQ +dky +bWn +ylz +xMX +lPJ +nVB +nVB +nVB +bpn +uPE +cQA +qIB +xhw +eJe +pXn +pAZ +jDB +qWZ +qWZ +qWZ +wrk +qWZ +dxK +cct +hue +xit +wfK +fHK +qpS +iYb +iYb +iYb +iYb +kFW +ybI +nnR +tuz +eRZ +qpZ +rAA +cpm +ooV +bwD +qdI +pRj +fHv +phk +isK +kXL +xnG +pRj +swO +pHr +qxn +tFK +vAH +smg +dlR +pRj +daS +mNY +kYq +kYq +kYq +kYq +aVI +kYq +kYq +kYq +kYq +mNY +kCn +mNY +akL +tvF +tvF +bsX +gTK +ruO +fKe +rGu +aQW +pVK +wRd +gGt +uJR +rIX +iLY +lqE +fcP +cSx +vyU +vyU +vyU +vyU +fcP +utC +wyi +tkU +fwx +utC +txT +aTf +tkU +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -yfW bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(173,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(105,1,3) = {" +bln bln bln bln bln bln -uer bln -kKL -kKL -kKL -kKL -kKL -lli -cvF -kKL -lWf -kKL -kVx -lNI -eTP -fVD -gMZ -kKL -hUD -bla -sil -hUD -hUD -pGT -qok -iZn -xzd -prg -prg -qwB -pDS -wVl -wND -iQQ -rvZ -cYE -aPl -ult -vuq -tfM -rIU -jFR -qYw -fPA -cOC -pVV -aEG -mtI -nRX -eNK -aHT -dfw -stQ -pKB -jbU -ozA -gqT -iJC -wfR -oQx -vpW -jbU -lec -fmU -qhL -wve -hfc -hfc -hfc -hfc -hfc -hfc -hfc -hWt -ocJ -mBs -ccQ -aCb -wAY -hfc -hfc -hfc -hfc -hfc -adY -eAw -sZF -pHR -wEV -sZF bln -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +lbc +nbp +lIt +hdn +ijj +nbw +lRF +feJ +mgZ +tDL +lyG +lok +nGK +feJ +mex +aKq +iDq +jUn +eRO +gIF +pNz +kyy +vvc +lbk +sDl +sDl +sDl +sDl +sDl +bHI +bZx +bZx +bZx +bZx +gYm +gMK +huT +bWn +ukJ +xMX +vvu +joh +mdM +wBa +fSP +iMw +rRd +bWn +piB +eJe +utR +pAZ +kIL +qWZ +vij +bMZ +paK +aVH +xKJ +dhj +kiL +tOF +tOF +ktU +wzk +wzk +sKz +jle +jfc +vYm +qBt +xMQ +jRC +nvs +hPz +shc +cpm +dVF +ylU +bep +pRj +uuy +mIc +juM +frc +xnG +pRj +kta +kta +vym +vym +pUx +bFf +gAJ +pRj +daS +mNY +kiR +rHQ +wFX +rBV +kJV +cOa +omG +tvW +scx +mNY +kCn +mNY +gmR +tMD +rMG +neF +twt +mwm +btC +wRd +fDn +hcg +fDn +gka +gka +gka +aZH +gka +fDn +aZH +fDn +fDn +gka +uMs +tkU +utC +bSz +tkU +utC +utC +utC +fuZ +utC +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln bln bln +"} +(106,1,3) = {" bln bln bln -fPc -mQb bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(174,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -mQb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln +aBR +aBR +nbp +nbp +hjX +omk +omk +jeF +ctE +feJ +feJ +cqW +wHe +aPW +hsN +feJ +uGr +uGr +iDq +qlw +cFZ +mEB +iDq +iDq +ciG +mfH +jbe +sDl +sDl +sDl +sDl +bHI +bZx +bZx +bZx +bZx +gYm +lwO +vTg +bWn +tgn +bEz +tgn +bWn +tgn +bWn +bWn +tgn +bWn +bWn +fzy +eJe +utR +pAZ +dYP +qWZ +xCv +vWL +nci +tPC +xkI +gnM +aHW +clP +clP +clP +clP +clP +clP +clP +rwn +eWc +nDA +vvi +xpJ +vYs +suL +gCn +qIx +dZQ +aNs +atv +pRj +pRj +pRj +pRj +pRj +kmR +pRj +cCP +kta +fcR +uFh +bts +pwi +oVt +pRj +swS +mNY +giQ +ppD +vmU +pnn +pVv +pPR +kWw +qca +aMs +mNY +kCn +mNY +lEA +uJn +ijZ +bXo +twt +ctM +wRd +fDn +fDn +aMb +yjV +wWa +yjV +nOG +haf +rnt +vWr +bgZ +yjV +xHf +gka +gka +gka +gka +gka +gka +gka +gka +aao +liV +qRv +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -lBD bln -mMb -lIC -aQe -tml -lli -lli -lli -vwJ -lli -kKL -kKL -kKL -kKL -kKL -vXb -kKL -kCg -gjc -bLQ -vaE -hUD -hUD -hUD -hUD -hUD -srk -dal -ssq -sEi -sEi -naP -hUD -tRo -iQa -tRo -ult -ult -wBk -rIU -jrZ -gqm -xCl -rRk -jwn -agJ -mtI -kzG -jdQ -aHT -xyz -idj -eoO -jbU -vLj -bHa -oMT -gaT -bZc -qlO -jbU -hzb -hdH -qhL -dkK -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -vVP -qLY -xSE -sZF -pHR -wEV -sZF -mQb -mQb bln -uer bln -vzD -vzD -vzD -gQw -gQw -oMa bln -uer bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(175,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln +(107,1,3) = {" bln bln -uer bln bln bln -kKL -qaR -lli -lli -sRI -laY -kKL -kKL -lli -tMY -hVo -hJx -lIC -lli -unu -kKL -nMT -poy -poy -nRV -hUD -ygf -dsZ -pIw -hUD -ktz -prg -six -lQz -sEi -kgm -iQQ -lso -rNQ -lso -pkg -yar -mdl -rIU -rCX -lWc -xCl -utr -lCz -agJ -jDm -nRX -vzo -vTN -pHa -fca -vsk -jbU -pEE -cAG -nbq -iNY -kiQ -xGK -jbU -lhu -hdH -urJ -ppp -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -ily -jBh -tmR -vjZ -wRr -wEV -vjZ bln -uer -mQb bln bln -vzD -oIR -vzD -jCl -kir -qVo -lSu +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR bln bln +aBR +nbp +mhx +jeF +egm +axd +wGW +tJN +ikI +feJ +feJ +gPn +fLs +feJ +feJ +uGr +uGr +iDq +jBr +lAL +ejc +iDq +nrG +hTw +lbk +sDl +sDl +sDl +sDl +sDl +psN +psN +psN +psN +psN +wqx +cJd +gYp +bWn +bTJ +cGt +wRI +qdE +meG +bWn +ntK +mQb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(176,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +jII +ooV +wTL +eff +qWZ +qWZ +qWZ +svR +xRw +nYv +qVp +xKJ +dvA +lCI +age +olG +bEC +uEy +iLm +dxK +dxK +cpm +cpm +cpm +cpm +cpm +cpm +cpm +cpm +cpm +dJd +iuv +dnq +nlv +uMN +nsM +fZf +qpU +cEr +iXT +aHV +kta +gDm +oKY +kCI +iXk +dNX +pRj +daS +mNY +dSf +vfS +jGh +jNg +vHa +alv +vHa +mbt +hQj +mNY +kCn +mNY +bpd +uJn +kYL +gLu +dth +bTF +wRd +gka +igw +lAu +vWr +vWr +vWr +vWr +vrI +vWr +vWr +neR +vWr +uLH +xNC +gka +miS +nrH +oNX +lhC +maY +gka +utC +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -lBD bln bln bln -kKL -kKL -kKL -kKL -cTz -kKL -kKL -kKL -faf -lli -wsO -bcC -bcC -bcC -eFO -unu -kKL -tUO -poy -poy -vvJ -hUD -sYe -xUH -dYt -nyl -prg -tyv -qvF -cHh -cHh -osd -hUD -dFO -cYE -lso -hDb -exm -nIl -nVC -abM -xCl -dqw -xCl -dkr -agJ -asZ -mrh -sfY -nJX -ujP -htO -sqn -jbU -gEy -dUe -ank -baX -fUM -wlW -jbU -kHN -kra -qhL -ppp -ily -ily -ily -oqM -xJG -ily -ily -ily -ily -ily -xJG -ily -ily -ily -vGy -ily -ily -ily -jBh bln -vjZ -wRr -sKf -vjZ bln -mQb -mQb -mQb bln -vzD -vzD -vzD -kir -vzD -rwt -mQb +"} +(108,1,3) = {" +bln +bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(177,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln lBD bln -kKL -pGJ -fDl -jwF -pLv -tjN -hbI -vah -tDy -oXm -bcC -lli -hJx -weF -fMc -aME -kKL -kIr -poy -poy -tav -hUD -uZu -rGd -whC -hUD -qnm -pSy -hUD -uum -uum -hUD -hUD -lso -cYE -lso -hDb -yar -gqK -nxU -gjg -dxg -ivG -aYi -dkr -cHQ -jDm -via -eNK -nJX -ubc -nta -ooe -jbU -anP -cRK -uMK -rep -oMT -ppz -jbU -uQR -iZQ -llw -aus -lKq -lKq -lKq -lKq -lKq -qLY -qLY -jhQ -qLY -jhQ -qLY -qLY -bgx -bgx -bgx -bgx -bgx -bgx -bgx -vzD -sZF -wRr -bBw -vjZ +aBR +nbp +xKY +omk +sMY +wMV +qqM +wMi +xaJ +arA +jwx +kfy +aZo +jwx +wfp +cZm +hLf +okx +mLu +lAL +npn +iUo +cOp +hTw +gIL +esK +esK +esK +esK +esK +tPW +iPT +ppl +kes +hzY +jpd +lwO +gYp +bWn +glP +nzB +nzB +nzB +sdX +tgn +itN +nuX +yfF +pAZ +dnq +kgD +utR +uEQ +lET +grA +fwQ +nOH +gxU +gZq +ybv +ybv +ybv +ybv +ybv +ybv +dxK +dxK +dxK +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +pAZ +dnq +iuv +dnq +nlv +uMN +uMN +msP +hPQ +cEr +aQO +fFv +kta +bbo +vja +wle +bbo +bOk +pRj +daS +mNY +adg +wlz +tnp +pnn +aZx +uro +dKh +uGl +qea +mNY +roQ +mNY +lEA +uJn +cSE +tCe +twt +eCt +wRd +fDn +rOA +eEO +nMx +azg +azg +fKO +azg +azg +pJy +vEy +ban +wdL +dso +nnl +raT +raT +brY +lhC +lhC +gka +fwx +fuZ +fri +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -vzD -ydh -dFG -uZc -gQw -mQb bln -lSu bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(178,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(109,1,3) = {" bln bln bln bln bln bln -iyY -kbn -rCf -vZa -vYz -sxO -ijb -kKL -iin -iin -bcC -wJM -hJx -nLY -lli -aME -kKL -ptS -poy -poy -hUe -hUD -hUD -hUD -hUD -hUD -hUD -hUD -hUD -blc -qpv -gEE -jbG -lso -cYE -lso -hDb -ult -ult -ult -ult -ult -mtI -lsa -iCz -mtI -mtI -cKk -eNK -nJX -nJX -nJX -nJX -jbU -pbQ -tvv -pbQ -pbQ -pbQ -pbQ -jbU -lKq -pMY -kLy -bGA -lKq -tYW -oYn -cfR -xMT -hjE -lqN -bkS -pJc -iBO -xfp -agd -bgx -buv -jhC -mWB -tKz -dmt -jCl -jCl -vzD -mVD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -uZc -cDk -sGZ -gQw -mQb -mQb -lSu bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(179,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln +uer bln +lBD +nbp +mhx +jeF +lkb +arb +mwh +xlx +oSm +jQB +eqI +eqI +eqI +eqI +eqI +piv +bkC +kyy +daq +lAL +vAt +kyy +dOY +psP +lbk +sDl +sDl +sDl +sDl +sDl +psN +cch +nTp +nTp +kxp +kQc +cxz +nnx +bWn +soN +npu +oMS +npu +jzE +bWn +nSo +jII +pAZ +pAZ +rLl +eJe +utR +tmQ +wUJ +ppK +wna +lCg +wEG +ybv +ybv +ibY +jRg +qCP +aAi +ybv +ybv +nBk +paM +paM +paM +paM +paM +paM +paM +paM +paM +paM +paM +dnq +vrX +nBl +kta +aHR +cPi +gCl +jpH +mkn +qnw +sEn +kta +khu +bbo +pbE +vja +iRc +pRj +daS +mNY +voK +voK +voK +voK +voK +voK +voK +lII +voK +mNY +kCn +mNY +ixG +aPf +dzJ +drd +twt +mEw +sSJ +fDn +rOA +eEO +hTm +cks +sGJ +cGf +qMN +iUJ +hHp +cGf +atN +fpD +jFV +szo +vBm +vBm +rQf +rQf +mUs +gka +utC +fuZ +utC +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -iyY -fQk -fQk -rCf -pwH -iwO -uYR -kKL -kKL -kKL -aMa -kKL -kKL -kKL -iVD -uZn -kKL -ptS -prg -prg -caY -iQQ -gEE -oNC -gEE -gEE -gEE -oNC -nmD -gEE -gEE -tva -wrX -hpm -cYE -lso -bBE -wLl -sxZ -oOo -xvy -wLl -tKD -oLg -eLr -eJm -mbK -jQS -eNK -aYJ -jpN -aYJ -aYJ -dwZ -eLr -eaa -via -aYJ -lAw -aYJ -rZw -wib -eLr -hAm -via -via -tPz -iRN -odR -leo -qFt -pTY -lcu -lcu -npT -lcu -xBa -bgx -wSd -jOj -jOj -iCE -eBz -eBz -eBz -eBz -fxV -rEU -rEU -rEU -egS -rEU -egS -rEU -nNM -gTq -gTq -fNa -gQw bln -mQb bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(180,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -iyY -cxp -eHj -gzY -knf -rCf -rCf -kKL -lOU -glI -buY -hkd -uXu -kKL -pzV -uZn -kKL -jbz -xpN -god -xse -iQQ -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -rpC -oXL -dEV -voH -thM -xfd -pJV -mZG -mZG -qEZ -urk -dFW -aYJ -aYJ -aYJ -aYJ -wUt -urK -mNt -nJT -urK -urK -urK -iRx -pJV -pJV -nMA -nMA -nMA -nMA -pJV -pJV -pJV -pJV -pJV -aYJ -cTR -leo -wOX -efk -jTr -kex -aIr -elk -mdE -xfK -qig -lpW -lpW -vzS -vzD -bFq -jCl -dGK -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -gQw -gQw -vzD -bln -lSu +(110,1,3) = {" bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(181,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +lBD bln -kKL -uqS -fQk -oXm -kKL -kKL -kKL -kKL -cDv -fUc -sPU -glI -mRY -kKL -kKL -mbG -kKL -hUD -hUD -hUD -hUD -hUD -cEz -gEE -gEE -gEE -gEE -gEE -gEE -gEE -chK -leM -gqj -emp -cYE -lso -qbp -wLl -qfA -uxA -pUn -wLl -eaS -fXr -dFj -dFj -uZB -oni -nxa -qwN -cLK -dFj -dFj -dFj -dFj -xnM -xnM -xnM -fLl -wMm -xnM -qDQ -dFj -dFj -dFj -dFj -xgI -jmh -avC -leo -qFt -bYu -qkH -wCV -rqa -bgx -bgx -bgx -kBi -vzD -vzD -lXi -vzD -vzD -fxT -jOj -wsN -trT -ejL -kig -cAK -szD -xYw -sNs -vzD bln bln +lBD +nbp +nbp +ezs +jeF +omk +jeF +nQf +pCE +arA +rYB +rgC +she +sYG +rgC +sGp +kNQ +iDq +kyy +bKN +kyy +iDq +rpT +ygM +mfH +sDl +sDl +sDl +sDl +sDl +psN +riB +dkY +wLc +hzY +bRn +fng +lBt +bWn +bWn +tgn +tgn +tgn +bWn +bWn +mae +pAZ +jhA +eZL +ljx +nxW +utR +tmQ +qXF +dMX +gER +nOH +xVc +ybv +xzT +cHO +aer +cHO +rOC +ybv +ybv +paM +paM +orG +gtP +grc +xvs +pgp +adf +tQg +mdc +rWc +paM +nTe +iuv +dnq +kta +ihh +ryh +rXY +wzY +mIH +bqi +aQO +kta +drw +bbo +gwx +erA +qll +pRj +dPT +pRj +pMu +gVD +kPu +ajF +qwe +uJH +iAc +roj +gXN +pRj +kCn +mNY +gTK +fNr +nzI +gTK +gTK +myX +sSJ +gka +oAs +fab +eDC +uIV +nXl +wuo +agm +fNN +gbh +wuo +sRL +oyz +mLV +fDn +rQf +vBm +viH +viH +rQf +gka +tkU +liV +jHb +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -lSu bln -lSu bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(182,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(111,1,3) = {" +bln bln bln bln bln -iyY -kHb -pDe -ijb -iSQ -qji -pyD -kKL -gCs -fUc -sBi -xYA -ldi -lUC -cZc -oLG -eQF -oxV -oxV -jbG -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -fTX -tru -bMY -emp -cYE -lso -hDb -bZQ -bZQ -bZQ -bZQ -bZQ -bZQ -wnT -wnT -oHK -oHK -xer -wKi -oHK -oHK -umv -cPt -nOa -hnP -nsZ -fki -iIJ -hYE -iIJ -dia -nsZ -nsZ -uoC -nsZ -uoC -nsZ -nsZ -nsZ -nsZ -hjE -xSg -fOl -cyL -jAI -bgx -hWI -xxv -dOK -vzD -puh -lXi -tgq -vzD -dFZ -jOj -axu -vzD -pPB -bRl -fwD -too -mHw -bRz -vzD bln bln -mQb bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln -mQb -uer -lSu bln bln +tGr bln +lbc +nbp +jOS +kKx +dlK +pbI +jIm +mgU +mgU +nea +mgU +mgU +mgU +mgU +vAm +hAO +jwx +kOk +nlp +dNt +mfH +uJX +nCi +mfH +sDl +sDl +sDl +sDl +sDl +psN +pTd +jLZ +jQU +psN +pfe +aeQ +mdX +pfe +oyd +vws +mjf +wEb +sIZ +pfe +pfe +jII +mxM +qLt +uom +pkW +kKX +tmQ +bvE +aRz +paK +nOH +mOL +ybv +oqz +lRx +oJP +bdK +dzi +ybv +ybv +kxT +mVi +dgQ +rTM +fwf +fwf +fwf +fwf +fwf +qHP +eYs +hcL +isx +iuv +dnq +kta +kta +kta +kYS +nlv +kmC +kta +kta +kta +vym +bCs +vym +vym +vym +vym +bbr +wou +bbr +cLN +vol +fmc +jtM +cLN +cLN +qbO +xtQ +hIH +kCn +mNY +hFJ +tMD +ehJ +fMt +twt +tXB +sSJ +gka +uXC +fab +fNv +wuo +wuo +nnw +spv +dwy +spv +wuo +cSH +kUz +mLV +fDn +lhC +lhC +lhC +lhC +lhC +gka +tkU +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(183,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln -iyY -nPt -fQk -rCf -kKL -qNu -hRG -kKL -lUC -lUC -mpl -nlR -lch -lUC -aQJ -tdR -ikW -gEE -iNG -jbG -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -fTX -wjS -bMY -yaG -cYE -lso -pHX -nDd -soz -faq -ofi -snI -bZQ -gSq -ojF -rQW -ftN -bxP -vvE -tJG -oHK -hJH -hJH -tPL -eOx -nsZ -nsZ -uoC -gzH -uoC -nsZ -nsZ -fFQ -igd -mzg -tIq -tIq -tZw -bdQ -nsZ -pnK -cSw -cmx -yeC -roT -bgx -nBN -clY -fdH -vzD -tKz -lXi -jPY -vzD -tgq -jOj -jOj -vzD -cef -iTP -uCo -lEz -kPw -dAx -gQw -mQb -mQb -uer -mQb +"} +(112,1,3) = {" bln bln bln @@ -263412,924 +245150,1026 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln +lBD +tGr +tGr +tGr +lbc +nbp +nbp +lQc +lQc +lQc +nbp +mgU +bvX +ccF +fad +azx +tDw +rhf +cAC +cEL +hwZ +vdf +xFm +riv +xHq +ccr +txU +jzC +qml +qml +qml +qml +qml +iiH +teP +teP +teP +qbk +gMK +fng +rHc +mxF +uog +vVY +uog +uog +nfU +bzI +uog +yaF +mny +dnq +wmK +rcj +utR +tmQ +eOw +rns +mkA +nOH +aAv +ybv +jjq +fHo +hMc +rOC +dhL +ybv +ybv +aqd +umu +umu +fyK +dPq +qqT +xdb +gVq +wnz +loT +fwf +hcL +isx +nlT +krv +hyc +fdy +fdy +pPh +cLN +xxz +fdy +pvg +nQW +vsz +fdy +oRb +wHX +nbi +qzu +cLN +cLN +cLN +cLN +fdy +eKb +nzq +cLN +cLN +qbO +kKH +pRj +eAj +sro +dgp +qkT +kzA +whW +twt +mEw +sSJ +oSR +glc +fab +ktw +bny +jQe +xBp +bYw +bYw +bYw +ucO +kcD +ugq +njT +fDn +cYq +lhC +lhC +phL +lhC +gka +utC +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(184,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln -iyY -jUY -dxs -xQU -kKL -fLb -oHh -kKL -bpQ -kcT -oih -dmL -lUC -lUC -dMH -ait -pYz -gEE -gEE -jbG -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -fTX -dyE -bMY -cxd -cYE -avb -okG -cin -eKl -pxL -lso -hDb -qWn -xZA -dVt -gHY -xZA -vaA -gXJ -wgU -oHK -nLo -hJH -tPL -oiZ -nsZ -izD -wbR -djG -uZm -aCY -tqs -sqt -sqt -sqt -sqt -sqt -aWg -xgK -nsZ -qxl -cSw -pwK -yeC -oNE -bgx -nBN -xPI -jZY -vzD -vzD -lXi -vzD -vzD -vzD -vzD -jOj -vzD -daT -ftS -too -lbf -esF -bRz -gQw -mQb bln +"} +(113,1,3) = {" bln bln bln -lSu -mQb bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +uer bln +tGr +tGr +tGr +lbc bln +lBD bln +npb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(185,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +lSu +hIO +rPP +eNl +vbF +mcH +xyx +eDM +xFm +tGB +nCh +fwh +ijU +bqG +lbk +fqH +sbN +lbk +oAh +oAh +oAh +oAh +oAh +vDb +lgz +hBr +mzP +vDb +vvh +vPC +pvm +dMi +cvC +kQc +iYG +kQc +kOV +kQc +kQc +iJN +gOy +gOy +fKF +qjg +utR +tmQ +lkI +lvl +aog +ktl +dEI +uab +bzC +jKK +mVp +mNJ +lVc +ybv +ybv +tIy +umu +umu +fyK +oIr +eEm +wzC +oIr +oIr +sZU +obc +bRM +jbj +gMM +jba +mKC +oQp +oQp +lCY +oQp +oQp +oQp +oQp +oQp +oQp +oQp +oQp +oQp +tdb +oQp +oQp +oQp +oQp +oQp +oQp +mxX +oQp +oQp +kPg +nyn +bYi +pRj +cpi +mNY +bTq +xUP +gRt +rpF +twt +fcg +eTx +fDn +jQz +tNx +tfR +iNa +tLW +seR +lgg +uey +esE +uLe +lGp +efV +iaV +fDn +efE +lhC +efE +kJU +lhC +gka +tMc +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -kKL -kKL -kKL -kKL -eOm -kKL -kKL -kKL -mly -pwd -glI -wvk -mRY -lUC -tXV -kvX -brL -cYY -qrQ -wrX -wrX -wrX -cEz -gEE -gEE -gEE -gEE -gEE -gEE -gEE -nlJ -rrp -urw -emp -bvI -lso -cUB -nYm -mNi -yeB -uuC -hDb -qWn -gav -ljF -ljF -ljF -sDg -gXJ -hhP -oHK -iZl -iZl -sVi -iZl -nsZ -fBJ -tkp -tur -bjL -sjl -fZy -fZy -fZy -fZy -fZy -gPC -wvz -srW -nsZ -qlG -cSw -ihu -hjp -hjE -bgx -bgx -bgx -bgx -bgx -uAJ -lXi -vzD bln -vzD -vHm -jOj -vzD -vzD -kqm -tZd -bRz -bRz -bVL -vzD bln -fsm bln bln -uer +"} +(114,1,3) = {" bln bln -lSu bln bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR bln +tGr +tGr +tGr +lbc bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(186,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln +npb bln bln +hIO +vyd +ePr +kGc +kWh +qVJ +mgU +kqc +kqc +kqc +jct +jaw +xwf +aPd +hQP +lWg +ncB +bgN +bgN +bgN +bgN +bgN +tVu +lvS +mbz +hha +dEk +nUJ +mES +csB +gtB +tny +dLo +ctj +aZG +wYZ +aKI +peq +obb +qJV +vBh +fiE +oBs +utR +tmQ +axf +kzD +nsj +lhv +sDV +ybv +xwm +vzT +wfc +oqz +rSN +ybv +ybv +aqd +umu +umu +fyK +dCR +lGG +apt +rcA +nrB +xWO +dHs +hcL +isx +fuM +vXh +hyc +rWn +mJa +rWn +mHa +vmk +rUY +rWn +rWn +cLN +mFU +cLN +rWn +rWn +rbs +eQX +rWn +rWn +gDV +tro +eKb +jRV +uOL +gQq +bwt +nZu +mNY +mNY +mNY +qnC +qnC +qnC +qnC +gyR +euq +wfn +ras +fkj +fab +iag +dfq +ein +xBp +imd +imd +imd +vuK +utA +qYQ +xUb +fDn +lhC +lhC +lhC +gsk +lhC +gka +fwx +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -nXb bln -lUC -pfP -apD -ugG -gIt -mnW -lUC -ccT -nyC -eUz -oTA -oTA -hIN -gvK -jbG -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -gEE -rpC -oXL -cYE -lso -eha -aJQ -aJQ -lso -lZi -qaE -mBQ -eag -ttw -wET -evk -xTw -vqN -pDk -aju -gPY -qWu -fbl -rlu -nsZ -mFb -aHX -aHX -aHX -xgF -awa -awa -awa -awa -awa -xUk -sqt -oAA -nsZ -geg -eVY -ihu -epH -rDZ -rDZ -ePu -rDZ -rDZ -bgx -tgq -lXi -gQw bln -gQw -jOj -kWi -qzT -vzD -vzD -gQw -gQw -gQw -vzD -vzD -lSu bln bln +"} +(115,1,3) = {" bln -lSu bln bln bln bln -lSu -lSu bln bln bln -ozo +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +bln +bln +tGr +tGr +lbc +bln +bln +bln +miY +oot +oot +hIO +jDt +wtg +diq +uet +ptr +mgU +fUj +kcc +tpX +oIC +jjt +bvY +jNp +jNp +jNp +jNp +sDl +sDl +sDl +sDl +sDl +skl +skl +skl +skl +skl +skl +skl +iLa +skl +skl +skl +skl +skl +skl +skl +skl +skl +pDt +tsk +wLX +eJz +utR +tmQ +dqR +rUo +paK +lhv +hwC +ybv +vOD +rOC +vzT +cHO +oYu +ybv +ybv +jkK +kaW +bHj +ery +dHs +dHs +dHs +dHs +dHs +qlQ +ncu +hcL +isx +iuv +ipa +xVK +xVK +xVK +xVK +cvS +vWh +cvS +xXf +xXf +skn +lHE +frE +obK +npB +gwK +jyR +jyR +gwK +bID +bID +hOc +cLw +hOc +djO +hOc +bID +qnC +vkz +aom +pcg +deD +unG +qnC +isX +eBI +oEt +gka +vKy +fab +fyQ +wuo +wuo +nnw +cDK +uvk +cDK +wuo +cSH +kUz +mLV +fDn +lhC +lhC +lhC +lhC +lhC +gka +utC +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(187,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(116,1,3) = {" bln bln bln @@ -264338,1287 +246178,1540 @@ bln bln bln bln -nXb +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln -lUC -lUC -lUC -lUC -lUC -lUC -lUC -wrX -pxi -wrX -tLQ -fBM -tLQ -fBM -jbG -gEE -cpq -gEE -gEE -iKQ -cpq -ueF -gEE -gEE -tva -wrX -bQh -dEV -cvr -cvr -equ -lso -uuC -ePR -kwK -qWn -jTm -moJ -oKy -moJ -moJ -qBj -hMB -wgO -fTT -bUa -wgL -bhm -nsZ -awa -awa -awa -awa -awa -awa -awa -awa -awa -awa -xUk -aSB -tHT -nsZ -vmK -oZn -sFj -rck -rDZ -rDZ -rDZ -rDZ -jkH -bgx -bFq -lXi -gQw bln -gQw -vrO -vzD -vzD -vzD +lBD +tGr +lbc +bln +bln +bln +npb +bln +bln +hIO +hIO +hIO +bUx +bUx +bUx +bUx +kpX +jmy +xMn +cAC +nRm +bRG +hfA +idv +ahA +cHY +sDl +sDl +sDl +sDl +sDl +tOq +jOQ +jOQ +jOQ +jOQ +jOQ +jOQ +jOQ +deY +deY +fhz +deY +gUr +deY +deY +deY +wAZ +tVd +uLC +xQg +fwm +utR +tmQ +pMy +cOP +gER +wLt +bIL +ybv +pPN +oqz +kOX +oqz +oXg +ybv +ybv +paM +paM +tcn +bMC +dUP +unH +uOo +bMt +oOt +mln +igb +paM +xns +iuv +qrb +xVK +pks +xVV +cKo +cvS +gDp +kRP +oWl +vRS +stD +xGp +eFd +qeh +eBV +gwK +gWt +tTV +jtA +bID +obo +miw +gCK +cMd +lHC +vzU +ahm +qnC +bjK +qGQ +sOE +wcx +fVy +qnC +nAw +uif +wRd +gka +gSr +fab +iag +loc +hNI +wuo +fRv +fNN +esE +wuo +hqE +iam +mLV +fDn +rQf +vBm +lVu +vBm +lfp +gka +utC +liV +hZu +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln -mQb bln bln -fYT -eRE -ujK -ujK -eRE -wOq -eRE -ujK -ujK -eRE -lej -lej -hAM bln bln bln +"} +(117,1,3) = {" bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(188,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln -ozo bln bln -sEB bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln bln -nXb -tlH -tlH -tlH -nXb -wrX -tuQ -oHH -tAA -efH -mJu -vWU -qPL -qPL -qPL -qPL -qPL -dFt -dFt -dFt -sqA -plQ -gEE -jbG -nzV -cYE -dfB -ymj -pFg -hXC -qad -kuV -cAi -qWn -dik -fOR -tFF -tia -qNn -uIQ -gNi -oHK -dUh -bUa -fbl -aDr -nsZ -awa -awa -awa -awa -awa -awa -awa -awa -awa -awa -xUk -sqt -duE -nsZ -xDa -abT -jJZ -tuy -rDZ -rDZ -mBk -rDZ -rDZ -bgx -rPe -lXi -vzD +lBD +tGr +lbc bln -vzD -vrO -vzD bln bln +lbc bln -mQb -uer bln +lBD bln +lSu +bUx +jOQ +bxQ +bUx +oty +vxc +aKt +tDk +jjt +lUw +iWS +vwt +gII +cHY +sDl +sDl +sDl +sDl +sDl +tOq +jOQ +skl +skl +skl +skl +skl +skl +skl +skl +skl +skl +skl +skl +skl +skl +skl +pAZ +pAZ +rLl +gOy +utR +tmQ +dtr +gKG +iBe +lhv +xpw +ybv +ybv +pos +cBU +twK +pyh +ybv +ybv +nBk +paM +paM +paM +paM +paM +paM +paM +paM +paM +paM +paM +dnq +iuv +yas +xVK +jbh +eUW +bmu +cvS +gDp +kRP +ruo +ruo +mzE +aZV +qvW +gwK +wTC +hvS +elj +iRr +omi +tKi +czl +ydg +dAm +szR +dcC +jGB +akz +sCA +guz +ojv +bAT +eri +pvE +qKQ +hqA +uif +wRd +fDn +rOA +fab +iag +pQo +hNI +wuo +kSM +aFn +ctk +wuo +cSH +kql +liI +szo +vBm +vBm +rQf +rQf +mUs +gka +tkU +fuZ +tkU +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -muK bln bln bln bln bln bln +"} +(118,1,3) = {" bln bln bln -chn -lSu bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(189,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +bln +bln +bln +mZf +oot +oot +ajx +qVo bln bln bln bln bln +bUx +xmO +ubE +bUx +iQj +aOS +rud +cAC +mWM +scu +pmr +qPp +ryG +cHY +sDl +sDl +sDl +sDl +sDl +tOq +jOQ +skl +lcB +rmn +ygB +svH +nCP +ygB +lcB +rmn +ygB +wIz +eFt +ygB bln +oJn +fsm +pAZ +dnq +nfk +utR +tmQ +qnV +qGd +cEv +lhv +iGH +bGm +ybv +ybv +ybv +ybv +ybv +ybv +lpM +vey +vey +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB sEB +pAZ +dnq +iuv +vXh +xVK +qbn +fiO +arg +cvS +gDp +kRP +sBK +qKx +aRR +tRZ +oyj +gwK +nEV +bry +vPc +fLq +hro +tKi +kCG +dxA +oht +rSC +ami +oPU +wHj +mBB +juH +ojv +lqi +mDw +tbH +qKQ +aTj +uif +wRd +fDn +rOA +fab +bjl +shB +shB +naU +cll +shB +yeD +nka +iCg +kql +oNO +bBJ +dCy +dCy +fyR +lhC +lhC +gka +tkU +fuZ +fri +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -nXb -tlH -tlH -tlH -nXb -wrX -oRm -wrX -oHH -oHH -oHH -oHH -qPL -qiL -erI -gGE -qPL -pdD -asv -dFt -vHI -vHI -dFt -dFt -fdj -lah -asU -qPL -elw -elw -elw -pqo -ftJ -mEJ -jTG -mEJ -ecw -mEJ -jTG -mEJ -mEJ -krY -srP -rou -lIk -srP -nsZ -awa -awa -awa -awa -awa -awa -awa -awa -awa -awa -xUk -sqt -iOv -nsZ -pee -hjE -wGc -wGc -wGc -wGc -bgx -bgx -bgx -bgx -vzD -lXi -vzD -vzD -vzD -vrO -vzD bln -mQb bln -mQb -mQb bln bln -sUN -tmR -sUN bln -sUN -tmR -sUN +"} +(119,1,3) = {" bln -sUN -tmR -sUN bln -sFJ -nwD bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(190,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +bln +uer +bln +lBD +bln +bln +bln +npb +bln +bln +bln +tGr +tGr +bUx +xmO +deY +bUx +kdT +bLt +syN +cAC +mWM +bRG +kpj +fGq +eig +jNp +jbe +sDl +sDl +sDl +sDl +skl +jOQ +skl +nYn +hui +ygB +qbF +oqg +ygB +vZz +bnt +ygB +vZz +rVV +ygB +vXU +drZ +yfF +jII +eff +kxA +eff +qWZ +qWZ +qWZ +aCP +wKI +iFs +qVp +lpM +aJE +hho +cNK +lKw +lpM +lpM +lpM +lpM +lpM +lpM +lpM +lpM +mhQ +mhQ +mhQ +mhQ +mhQ +mhQ +rhw +iuv +ozW +xVK +vXX +cNm +vPk +cvS +gDp +kRP +lyq +xBN +bfU +aSu +dBK +gwK +jyR +sok +gwK +jyR +bID +bID +fvA +vCK +rSC +rSC +rSC +tGH +kVM +sCA +rSP +uKM +uaz +vqf +dCW +ixZ +rGu +eZO +wRd +gka +lzJ +snO +pIm +vWr +vWr +vWr +xfn +vWr +vWr +kQt +vWr +nsv +tpk +gka +oWQ +dcO +alx +pMC +qWJ +gka +utC +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -nXb bln bln bln -sEB -tlH -tlH -tlH -nXb -tlH -tlH -tlH -vsI -sEB -sEB -sEB -tpd -oOD -lDH -gVx -tpd -qWO -pCI -gVt -pCI -pCI -vsM -avc -nfB -cMJ -eBg -kCs -omh -peV -elw -oOc -nvY -qpu -vZV -gGx -jxc -aFt -vZV -aCO -mEJ -kCz -vJS -bUa -ubY -qHn -nsZ -awa -awa -awa -awa -awa -wQY -nmz -nmz -fJm -fJm -fkX -vQp -opB -nsZ -mHd -hjE -rDZ -rDZ -rDZ -rDZ -bgx -cJC -gqv -dty -vzD -lXi -iQT -jCl -jCl -vpg -gQw +"} +(120,1,3) = {" bln -uer bln bln -mQb -ntK bln -sUN -tmR -sUN bln -sUN -tmR -sUN bln -sUN -tmR -sUN -hty -uap +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +bln +bln +bln +tGr +tGr +bln +bln +npb +bln +tGr +tGr +tGr +tGr +bUx +hJe +xmO +bUx +kzw +kzw +kzw +cAC +xAQ +iMg +jNp +jNp +jNp +jNp +pVL +sDl +sDl +sDl +sDl +skl +uFS +skl +nOl +oCF +ygB +dcq +peb +ygB +mJO +oCF +ygB +bSW +oCF +ygB +lBD +jII +jII +jII +aVr +xwC +utR +pAZ +bln +qWZ +bGc +vmj +aqB +pVq +rkI +oRk +mvc +mvc +rAW +gYz +mVw +kKG +jda +lpM +rEo +euf +jzn +mhQ +kDa +erZ +wVu +fZg +mhQ +pzb +iuv +prh +qFX +lke +laM +lIQ +cvS +gDp +kRP +uzf +pcs +bfU +ecs +jLl +dfQ +vbO +fKI +vEw +bAR +gnj +uwj +axY +eeT +bDz +rSC +inE +oPU +xpc +qnC +qnC +sCA +sCA +qnC +qnC +qnC +tzH +uif +wRd +fDn +fDn +bfL +dXn +mmk +qZQ +ead +xwE +ner +ner +xwE +ner +asy +sEU +gka +gka +gka +gka +gka +gka +gka +aao +liV +qRv +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(191,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(121,1,3) = {" bln bln bln bln -nXb bln bln bln -sEB -tlH -tlH -tlH -nXb -tlH -tlH -tlH -tlH -tlH -tlH -sEB -tpd -jtG -myJ -myJ -ugO -wLS -myJ -eUL -hdw -vpd -bSH -xBU -iVU -iFX -qRr -vAd -omh -wDr -elw -hpY -dJZ -wnK -fzQ -pUy -eSJ -pUy -dNw -spg -sca -xiC -ciS -bUa -jPx -jxb -dqI -oEE -bEJ -mXe -bEJ -qbb -miK -xRv -xRv -xRv -xRv -goy -hWD -oiI -nsZ -uCJ -hjE -rDZ -rDZ -rDZ -rDZ -bgx -qUY -mUE -juQ -vzD -geJ -vrO -vrO -vrO -vrO -gQw -mQb -ntK -mQb bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln -mQb bln -sUN -tmR -sUN -mQb -sUN -tmR -sUN +tGr +tGr +lBD +bln +mlS +bln +xAs +nXb +nXb +nXb +ykw +eyb +gck +ykw +sLj +vhL +law +eqI +ewM +wAT +kdy +taj +vsL +vpn +lRc +sDl +sDl +sDl +sDl +skl +jOQ +skl +ygB +gQI +ygB +ygB +ugX +ygB +ygB +nJH +ygB +ygB +rsV +ygB +fEZ +ygB +tSb +aab +dcI +sNI +bUH +pAZ +hLw +qWZ +ydk +tGF +iUT +tnk +lpM +rCD +uEm +nfL +mvc +uQT +uDa +cPV +mvc +lzb +anu +jly +fXb +mhQ +oYN +jUD +nZb +lRf +mhQ +dnq +iuv +iFm +xVK +xRo +owv +qXU +uwO +rSx +kRP +kRP +uFV +cAR +kNk +tmA +bNE +hht +xKU +xnE +tvd +egV +xAn +syU +vYJ +fGn +iSL +vzU +pZn +bBd +xSv +gyR +lLD +xZl +qaF +pna +gyR +cod +uif +jKe +wRd +fDn +oSR +bDX +gka +gka +gka +kvj +lhC +lhC +hte +gYg +kQQ +hRE +haC +haC +haC +haC +haC +haC +hso +fwx +fuZ +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -sUN -tmR -sUN bln -dzZ bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(192,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(122,1,3) = {" bln bln bln @@ -265627,1292 +247720,1540 @@ bln bln bln bln -nXb -tlH -tlH -tlH -nXb -oFc -tlH -tlH -tlH -tlH -tlH +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +lBD +tGr +tGr +tGr +bln +bln +bln +bln +bln +bln sEB -qPL -qPL -qPL -qPL -qPL -liM -myJ -nMw -gjW -bAY -nmm -jdK -gEV -iRz -ePm -sBV -omh -wuC -elw -vav -mlO -cCu -crn -tgB -kKv -fhb -vAP -bsN -sca -gpj -oQn -iBl -pLr -mKO -sPq -xLq -xLq -aoo -vIg -jED -qEV -cRq -qVZ -ybf -ybf -vaa -xLq -xLq -nsZ -pdO -sFA -rDZ -vyx -uaT -oTd -bgx -jCl -rEU -jCl -vzD -geJ -iQT -bIt -jPY -pxQ -vzD +ykw +nEs +wOc +lEj +cKv +nsL +eyb +hAQ +ksC +loy +psY +lmM +oyL +kbm +lRc +sDl +sDl +sDl +sDl +skl +jOQ +yab +npa +rMN +oyv +alO +rMN +agp +alO +rMN +alO +alO +qCI +fhg +alO +fEe +hYD +hYD +waU +xwC +kKX +pAZ +luG +qWZ +qWZ +qWZ +qKn +qWZ +lpM +ejT +iEV +iEV +cPV +hCV +jeC +jeC +mvc +lpM +oGQ +wKw +mZT +mhQ +hUV +aks +nLH +xex +mhQ +cBk +kdA +xFj +xVK +xcS +tyK +eMf +cvS +gDp +iMA +qNl +fkO +tjY +aMr +cwj +keP +cRO +guU +ayq +sdp +bID +iKh +rOU +qXt +jEo +fEL +boX +vjQ +lCD +pNO +nFc +uSo +uSo +uSo +ndC +etO +cqo +oqC +eZP +eZP +gKl +tlh +tCW +oGy +fDn +lhC +hte +hte +hte +bEa +dCy +dMK +gka +nce +utC +utC +utC +utC +utC +fwx +exC +sds +tUm +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -mQb bln bln -uer bln -sUN -tmR -sUN -mQb -sUN -tmR -sUN bln -sUN -tmR -sUN bln -chb bln +"} +(123,1,3) = {" bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(193,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -pUa -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR bln bln +tGr +tGr bln +lSu +xiI +mBh +oot +oot +kei +pDC +clq +qgO +qgO +bqx +xQG +ykw +mfH +cIY +mfH +mfH +lHL +fAH +aAl +lRc +sDl +sDl +sDl +sDl +skl +jOQ +skl +fZV +iPm +iPm +jKN +qxp +jqr +drt +eGy +iPm +iPm +iPm +iPm +iPm +pcx +hay +cfr +dct +iuv +utR +pAZ +wtj +eJK +qWZ +kGe +lWd +dOF +lpM +djh +sgZ +sgZ +pZN +kwu +uKS +uPB +xLF +lpM +dbm +vey +vey +mhQ +raN +rJv +hPT +tJR +mhQ +dnq +iuv +opu +xVK +gov +cvS +cvS +cvS +gDp +qEm +kRP +fiT +kQf +hDh +vnt +keP +qTa +ctr +avk +gxP +bID +phw +uCK +gJN +ckX +iub +inn +wyN +vfU +pdV +gyR +vHT +uGT +qWy +pna +gyR +jmD +xrg +dxn +aPD +aPD +rHx +fKf +pst +bWQ +xRZ +jer +xJT +eCp +eCp +uYO +rOe +gka +utC +tkU +tkU +fwx +fwx +tkU +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -nXb -tlH -tlH -tlH -tlH -tlH -tlH -tlH -tlH -tlH -tlH -sEB -qPL -cyU -sgB -hjh -qPL -lbm -myJ -gEV -rAC -bAY -oTa -jdK -gEV -tcD -ePm -jXL -omh -dbw -elw -elw -elw -elw -elw -ouX -ero -itj -vAP -jBc -mEJ -oXJ -fbl -eIC -trK -qEz -nsZ -vyz -xLq -kvR -qVZ -kgo -sCx -iHc -qVZ -nQj -auK -vaa -xLq -xLq -nsZ -ufb -dDm -rDZ -rDZ -rDZ -rDZ -bgx -vzb -rEU -egS -mII -pTW -vzD -bgx -bgx -bgx -bgx -mJq bln bln bln bln bln bln -sUN -tmR -sUN bln -sUN -tmR -sUN +"} +(124,1,3) = {" bln -sUN -tmR -sUN bln -rdJ -ujK -lej -hAM bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(194,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -dHF -hHG -hHG -hHG -pUa -wNO -wNO -pUa -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +bln +bln +bln +lBD +bln bln bln bln -nXb bln -tlH -tlH -tlH -tlH -tlH -tlH -tlH -tlH -tlH -sEB -qPL -nbK -vXy -ixv -qPL -gHD -myJ -wKv -mry -ocY -oTa -jdK -eFh -aVn -oLz -fwS -snj -lix -cRy -cRy -cRy -qCF -elw -lfF -iNn -jKl -caC -sTv -mEJ -nSC -gVe -whP -mOc -gYt -nsZ -oOb -ezJ -iba -gas -rjK -nlP -xTV -rGY -nzA -auK -vaa -xLq -xLq -nsZ -rDZ -rDZ -rDZ -swa -rDZ -rDZ -bgx -vzD -vzD -vzD -vzD -geJ -sMo -bgx -rkH -qbh -oGm -mJq -mJq -mJq sEB +ykw +dtz +lEj +fCW +nUg +dKP +ykw +tSi +kfc +dcX +mfH +nmq +kqG +pVL +pVL +jbe +sDl +sDl +skl +skl +ykA +skl +ygB +ygB +ygB +nmo +qIU +qIU +lDq +wVD +uja +uja +uja +iyJ +uja +uja +uja +uja +uHN +vrX +utR +pAZ +eAu +hFr +qWZ +oVR +lfo +oVR +lpM +oii +auU +auU +fgq +heX +heX +heX +viQ +lpM +lIp +axB +lrD +mhQ +ixu +hGh +frN +frN +mhQ +pzb +iuv +rsa +cvS +ewi +cvS +svV +kwX +gDp +egp +kRP +keP +pJQ +pJQ +pJQ +keP +vei +bTx +nvW +xxs +bID +bID +bID +bID +nnp +res +eLM +bID +bID +bID +gyR +gyR +gyR +gyR +gyR +gyR +gyR +gyR +gyR +aPD +lQe +umz +sbK +tOk +gka +gka +gka +gka +gka +fDn +fDn +fDn +gka +gMp +bNd +xhM +gMp +gMp +gMp +yhY +liV +qmN +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -tmR bln bln bln -tmR bln -mQb +"} +(125,1,3) = {" bln -tmR bln bln -fsm -mQb bln -vap bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(195,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -wDS -wDS +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR bln bln +lBD bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln +mvl +mvl +mvl +mvl +mvl +kkl +nUg +qOP +ykw +nOQ +cqx +sQB +mfH +pVL +pVL +pVL +sDl +sDl +tOq +tOq +skl +wDI +jOQ +skl +eFW +rlV +ygB +jMx +gJC +akD +qIU +uUM +uja +jHG +jcF +vVw +jcF +qSh +hsB +uja +ltY +iuv +utR +pAZ +fsm +efv +bcN +yan +fVf +epC +lpM +vPF +uEm +uEm +uEm +uEm +cYm +uEm +eqU +log +sIt +sIt +sIt +log +kpA +hGh +raf +raf +mhQ +dnq +iuv +pDi +cvS +cGA +cGA +pNq +lBS +aTp +lvB +kRP +wpp +rzj +mRG +bIU +hOX +xXz +rAF +nvW +nSc +qvQ +fpJ +qvQ +bID +ejQ +bID +ejQ +bID +pqc +djU +ggK +xXK +pus +qCB +qwF +qwF +qwF +qwF +qwF +aPD +cht +eiI +bum +wWM +hVf +pcI +ehP +uDi +aPD +tfk +kDs +bzq +fuZ +utC +fwx +utC +utC +utC +utC +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -nXb bln bln bln -tlH -tlH -tlH -tlH -tlH -tlH -tlH -sEB -tpd -wwI -vXy -oGG -tpd -vXy -myJ -gEV -rAC -bAY -oTa -jdK -gEV -gjW -vXy -cpT -omh -kJc -ozE -fTW -dxm -sHM -elw -cIb -hAT -xyE -hDp -hDp -elw -omh -omh -omh -omh -eHV -elw -nsZ -nsZ -qaz -nsZ -nsZ -bgx -bgx -bgx -bgx -bgx -rVA -bgx -bgx -bgx -bgx -bgx -bgx -bgx -bgx -bgx -bgx -fxT -jCl -axu -jCl -geJ -ici -anv -qUr -vbX -xCz -qYP -xCz -hzB -tmR -tmR -tmR -tmR -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -sEB -tmR -tmR -cnx bln -sFJ -tMa bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(196,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(126,1,3) = {" bln bln -vOy -vOy bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR bln bln bln bln bln +lBD +tCR +lGK +jRP +bLd +wbG +kkl +dhU +xQG +olY +hQi +rRM +mFQ +lbk bln +sDl +sDl +sDl +sDl +tOq +bLq +bLq +bLq +jOQ +skl +dxh +xri +ttI +cmL +lLf +asa +kCu +uKR +uja +lsF +pBs +eYF +sNj +fKR +hsB +uja +ise +iuv +utR +pAZ bln +lBD +pAZ +hZf +rYE +xUg +lpM +rdf +tpN +nKT +gjQ +ipU +cpr +iwd +jEg +dGU +wdg +bVv +wdg +ukR +pwf +oUL +qKz +qKz +mhQ +okb +iuv +kgc +bOj +cHl +ipA +fsF +mQG +caZ +tvJ +kRP +pzC +jAO +pYg +pYg +eoD +lQE +aPk +vxV +jkS +pzi +pou +sNu +uAK +wSo +wSo +vZt +sUB +rXe +hHN +bJD +ydN +rsW +tQb +xKd +fJL +mDX +mDX +qwF +aPD +eiJ +pyM +pQv +bnp +ggG +bll +gEr +mzz +lzy +kDs +kDs +kDs +xhA +utC +utC +fri +utC +utC +utC +utC +fuZ +fri +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -tlH -tlH -tlH -tlH -tlH -tlH -sEB -tpd -mbn -qLF -vCD -wyo -myJ -myJ -gEV -gjW -bAY -mhT -jdK -nMw -gjW -vXy -pnj -omh -omh -omh -dbw -omh -sHM -elw -jqw -axN -qvE -nhI -hDp -elw -qrP -rpV -fTW -bwM -voW -lEv -clV -wmG -jLW -nkh -tLT -wvv -vqL -lEP -oEj -xmR -oEj -ohU -oEj -myO -oEj -oEj -oEj -oEj -xmR -oEj -oEj -myO -oEj -xmR -oEj -dww -ygm -bgx -qUQ -xQh -xCz -mJq -mJq -mJq -vsI bln bln bln bln -tmR bln bln bln -tmR +"} +(127,1,3) = {" bln bln bln -tmR bln bln -mQb bln bln -vap bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +aBR bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(197,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln +uer bln -dTI -dTI bln +tCR +gWX +gWX +bEf +iME +tsH +qhP +xQG +ykw +pDB +wNt +pXk +lbk +sDl +sDl +skl +skl +skl +skl +nTK +tnP +cIK +jOQ +skl +ddr +ccp +ygB +vrD +qbw +tfO +urd +xTU +uja +aty +pBs +uja +uja +uja +hsB +uja +wJk +iuv +ezK +jII +pAZ +pAZ +jII +nbZ +jIO +wIm +lpM +lpM +lpM +lpM +lpM +lpM +lpM +lpM +lpM +log +sIt +sIt +sIt +log +mhQ +pOH +mhQ +mhQ +mhQ +rLl +jtE +ggr +cvS +cvS +bRH +caZ +hgK +caZ +rqN +btg +pGo +uoE +uoE +vRW +cvN +sVL +jlV +hHN +hHN +iRw +vuf +anI +uop +tHj +hHN +wAB +jkW +laV +hHN +cDz +tBL +hpI +kDs +bea +afp +eWQ +bEX +qwF +aPD +daM +pyM +kxY +ccz +xCs +lVm +aPD +mzz +aPD +bDl +vbG +bzq +fuZ +utC +fwx +utC +tkU +utC +utC +utC +fuZ +utC +utC +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln bln +"} +(128,1,3) = {" bln bln bln @@ -266921,251 +249262,255 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR bln bln -miY -tpd -wwI -tPY -ljo -tpd -vXy -vXy -urx -cuP -eFn -ldV -uFH -hpr -vXy -vXy -orV -jZM -sEB -omh -icV -omh -sHM -elw -bCd -elw -elw -elw -elw -elw -lxR -icE -idt -nCd -bXD -elw -puY -opN -faG -tKO -hyV -bgx -tHw -tVx -ltP -jCl -uZc -jCl -jCl -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -fUh -vzD -vzD -vzD -vzD -bgx -nIx -nIx -nIx -mJq bln +lBD bln +tCR +nKR +aaw +nsO +eWB +kkl +rEP +xQG +ykw +jpE +gnL +lbk +lbk +sDl +sDl +skl +vaW +deY +skl +gDz +xlH +kbN +nzn +skl +ygB +ygB +ygB +puN +pcJ +pjw +maB +fpa +uja +oiz +pBs +uja +kDz +mBm +twU +uja +uPT +poL +vBh +wRk +wRk +wRk +wRk +wRk +cRu +mfW +vKZ +mfW +uxm +eta +brp +mfW +mfW +ccs +amN +hHu +tZZ +mfW +mfW +oyY +aVw +gxq +aVw +vBh +vBh +vBh +uuq +vlf +hcO +cvS +iGa +caZ +vpR +caZ +sqN +kRP +fwO +fwO +njb +ugR +tTY +hHN +jlV +hHN +pkQ +cEw +cEw +cEw +cEw +cEw +pvx +fwq +hHN +lRR +bpR +skx +gkY +mIk +wMe +gqB +hHV +mDX +mDX +qwF +aPD +noM +tjk +ydc +nyA +duh +iaY +duh +duh +duh +tkU +utC +enX +liV +jHb +utC +utC +tkU +utC +utC +utC +fuZ +tkU +utC +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -mQb bln -sUN -tmR -sUN bln -sUN -tmR -sUN bln -sUN -tmR -sUN bln -cIf -lej -ujK -fYT bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(198,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -uer -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(129,1,3) = {" bln bln bln @@ -267174,1034 +249519,1540 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR bln bln bln bln bln +tCR +dcx +ihb +bnM +iRM +kkl +xiq +gUs +ykw +lbk +lbk +lbk bln -miY -tpd -hOt -ejn -bFs -tpd -uvv -ejn -ejn -jOD -tGx -ejn -uvv -ejn -uvv -ejn -udw -jZM -sEB -omh -jrX -omh -sED -gjM -upv -gjM -gjM -gjM -gjM -tIW -gjM -aUl -lmx -mHq -pSz -elw -pIu -mEU -enq -nkH -qQa -bgx -gti -wpn -mGA -xWo -axu -bFq -jCl -uZc -jCl -jtn -jCl -iqC -ibw -iQT -qob -rZa -rEU -vzD -sDr -twZ -vzD +sDl bln +bUx +pnU +fhz +skl +jVb +tnP +kki +jOQ +skl +dnk +olf +ygB +ybE +eKJ +ulk +ugZ +uja +uja +uja +kqP +uja +uja +uja +hsB +uja +ehq +kOq +iuv +vrX +iuv +iuv +iuv +iuv +iuv +vrX +uJN +iuv +xNF +ylU +wUi +iuv +iuv +iuv +iuv +iuv +iuv +iuv +iuv +uJN +iuv +iuv +iuv +iuv +iuv +iuv +flx +dnq +aab +cvS +sDU +fgs +hnd +pNq +gDp +kRP +bBW +bBW +bBW +bBW +tug +bBW +jlV +aap +dUv +cEw +rLs +xUV +rLs +cEw +cmJ +rwC +tyb +nrA +flH +lxu +wQF +qxo +eVC +qwF +qwF +qwF +qwF +qwF +aPD +aPD +mcc +aPD +nyA +xie +dFo +jZU +duh +utC +tUm +utC +enX +fuZ +utC +fwx +utC +tkU +utC +utC +utC +fuZ +utC +utC +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -chb -mQb -uer -mQb bln -nEa -mQb -sUN -tmR -sUN bln -sUN -tmR -sUN bln -sUN -tmR -sUN bln -chn -lSu bln +"} +(130,1,3) = {" bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(199,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -pUa -wNO -qzn -vbG -hHG -hHG -hHG -pUa -wNO -wNO -pUa -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -pWu -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR bln bln +lBD bln -lSu -lSu +ykw +mvl +kkl +kkl +kkl +kkl +kkl +eyb +rTX +ykw bln -miY -tpd -tpd -tpd -qKq -qPL -fPX -dFt -jZM -dFt -jZM -dFt -nJo -dFt -quK -dFt -jZM -jZM -sEB -omh -xKo -omh -omh -omh -omh -omh -cNe -dbw -rpV -jYc -fTW -cJs -fTW -tlf -pSz -elw -mWf -mWf -mWf -hyV -trm -bgx -gti -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -vzD -jCl -tKN -qZh -vzD -twZ -bMb -rEU -vXd -uZc -mwQ -vzD bln bln bln bln -pMM bln -mQb +bUx +tOq +ous +skl +skl +skl +skl +ykA +skl +lQr +lkj +iov +seH +lvY +mmA +whk +uja +aJi +aJi +eCT +uja +oUO +msG +xWG +uja +kyL +hNU +kyL +kyL +rwZ +oTu +ucu +adv +oTu +oTu +srw +kfr +dKW +ylU +lDo +dnq +iuu +dnq +ebH +dnq +apb +dnq +bep +srw +dnq +dnq +ivo +ikC +xdW +dnq +dnq +dnq +tmr +cvS +sxu +kwX +pNq +dvq +gDp +rxa +qgm +kdc +mFt +kdc +vBv +kjy +grI +ruI +ubF +vwj +wwu +kwm +wwu +ekh +eVI +gmJ +npJ +xGI +mNF +baQ +cYC +rsW +tQb +xKd +jeh +kcG +kcG +qwF +wYJ +xfc +mzz +oHp +nyA +ybq +lhO +fFi +duh +utC +tkU +utC +enX +fuZ +utC +fwx +utC +utC +fri +utC +utC +liV +qRv +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -uer -mQb -sUN -tmR -sUN -mQb -sUN -tmR -sUN bln -sUN -tmR -sUN bln -ebW bln bln -lSu bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(200,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -liV -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(131,1,3) = {" +bln +bln bln bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +aBR +aBR +ykw +ftA +unC +cLB +arT +eyb +rdw +xIk +bYF +ykw +bUx +bUx +bUx bln bln +fsm +bUx +buR +kVe +fnS +skl +hir +kAT +jOQ +skl +pOo +piC +ygB +noJ +aos +uWo +iUs +ozk +nsu +fdV +kux +uja +uja +uja +hsB +uja +mdZ +ros +bnm +mdZ +exw +hmb +hmb +exw +hmb +hmb +exw +tLF +lFb +qRE +lFb +azw +azw +mao +azw +azw +vTc +vTc +vTc +vTc +vTc +cvS +cvS +cvS +cvS +cvS +cvS +cvS +cvS +cvS +abU +kRP +uiI +qzF +gDp +kRP +kRJ +gcV +jug +lwi +jco +sTe +jvS +iSl +gdv +yiv +tbh +jTT +tbh +yiv +vtv +hHN +hHN +nrA +hQu +cDz +snW +hpI +kDs +bea +frD +tln +lMh +qwF +wYJ +wYJ +qMU +wYJ +nyA +aJX +alb +nTL +cHf +qHg +umg +tkU +enX +fuZ +tkU +utC +utC +utC +utC +tkU +utC +mtW +utC +fri +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -hMM -ooL -ooL -jZM -xVG -jZM -xVG -jZM -ooL -ooL -ooL -jZM -xVG -jZM -xVG -jZM -ooL -ooL -ooL -ooL -ooL -ooL -ooL -ooL -ooL -omh -buU -omh -skW -omh -omh -omh -skW -omh -pSz -omh -ooL -ooL -ooL -hyV -trm -bgx -gti -vzD bln bln bln bln bln +"} +(132,1,3) = {" bln -vzD -bFq -jCl -nuj -jCl -mEz -uZc -uZc -syT -vzD -jCl -ibj -vzD bln bln bln bln -chb bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +aBR +aBR +ykw +wBc +kYI +vyh +ufm +eyb +wug +uLF +nSH +hqi +dKA +deY +bUx +bUx +bUx +bUx +bUx +oBV +aXq +fnS +skl +bVx +idP +irn +skl +gmW +gmW +gmW +ltV +lAW +ksl +ltV +uja +tXk +tXk +tUn +uja +jlP +dHg +twU +uja +dka +fKV +jLK +tJY +phr +eik +cby +otW +jLc +lvb +xWk +sTH +lso +dEV +bai +azw +jqE +kZb +cJk +azw +xxi +fqW +sfd +nCb +kWL +cvS +pjF +nhw +cvS +aMh +kNA +mOo +jPh +ljD +azf +kRP +kRP +kRP +gDp +boQ +lgW +drh +nGG +fER +nSD +uID +vBC +goE +ubF +mxj +fcN +lxU +fcN +fcN +nBG +uub +kYi +rBQ +ssh +skx +kqS +mIk +wMe +gqB +yaT +kcG +kcG +qwF +wYJ +kDs +hQQ +kDs +nyA +njm +njm +njm +duh +lQi +ipM +utC +enX +fuZ +tkU +utC +utC +fwx +utC +tkU +utC +fuZ +tkU +vOy +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -mQb bln -sUN -tmR -sUN bln -sUN -tmR -sUN -mQb -sUN -tmR -sUN bln -chb bln bln -lSu bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(201,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -bln -lSu -bln -bln +(133,1,3) = {" bln bln -jZM -xVG -jZM -xVG -jZM bln bln bln -jZM -xVG -jZM -xVG -jZM bln bln -lSu bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +aBR +aBR +aBR +aBR +aBR +aBR +aBR +ykw +xIp +kYI +kYI +bOg +hFC +xyS +fhu +bLI +ykw +skl +ugA +deY +skl +kQE +rab +skl +skl +skl +hDV +skl +byP +ugA +hNp +tFI +eHb +xsW +bdp +nmH +tiI +hLW +bVI +uja +uja +uja +uja +uja +uja +uja +uja +uja +sJC +aSM +fjN +xhV +mPl +ybb +fJS +hFR +rxJ +lGN +xul +sTH +lso +dEV +bai +azw +rEp +fTC +blU +azw +bbO +hhT +vnN +pQp +wpZ +cvS +ril +eHe +uhH +mnC +cvS +caZ +caZ +uIM +cGA +yby +vnY +kRP +sqN +kRP +rKv +tyS +whf +sjk +uht +ehR +gnw +hHN +pGf +igx +dFC +dFC +jBR +fnA +hHN +lRR +uYH +shj +qnO +lxu +ijK +qxo +eVC +qwF +qwF +qwF +qwF +qwF +wYJ +kDs +kDs +kDs +kUu +utC +utC +utC +utC +utC +oxR +utC +enX +fuZ +tkU +utC +fwx +utC +utC +utC +utC +fuZ +utC +fri +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln -lSu -lSu -omh -omh -omh -xTy -qNV -rCT -xTy -qNV -omh -omh -omh bln bln bln -hyV -mtx -bgx -vzD -vzD bln bln +"} +(134,1,3) = {" bln bln bln bln -vzD -vzD -gQw -gQw -gQw -vzD -vzD -vzD -jIk -vzD -vzD -vzD -vzD bln bln bln bln -obe -ujK -eRE -ujK -ujK -dMo +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +ykw +lHu +tIf +tIf +blT +ntq +cWG +ekW +vRN +fEA +uHF +wjj +wjj +qdK +eqq +wxU +eqq +eqq +eqq +eqq +xuL +eqq +lrl +qvh +skl +eFG +ffZ +vfW +vfW +mZK +lvk +gzI +gIN +kKL +mBr +kKL +pyE +suo +qZg +rxY +ryn +eDs +vTm +sxt +shh +bHJ +xgy +xgy +uYE +rxJ +lGN +ozU +fuc +lso +dEV +kHI +azw +feU +fTC +qEj +azw +rUQ +orE +aTE +hMH +yiK +cvS +dDC +gXm +cvS +cvS +cvS +ohp +ohp +ohp +ohp +gGf +pNq +kRP +udL +kRP +bIa +jug +aSe +kFH +aen +hIA +rBQ +fQc +fQc +noY +ruw +fQc +fQc +fQc +mvG +shj +uGy +hHN +cqO +cfC +fsQ +cnq +nqb +aUS +mTm +sMg +sMg +qwF +aPD +nQr +kDs +kDs +nyA +dTI +fri +utC +tkU +utC +nFO +tkU +enX +fuZ +utC +utC +fwx +utC +utC +utC +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -sUN -tmR -sUN bln -sUN -tmR -sUN bln -sUN -tmR -sUN bln -sFJ -tMa bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(202,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln +(135,1,3) = {" bln bln bln @@ -268209,50 +251060,503 @@ bln bln bln bln -lSu bln -dFt -tsP -jZM -vYw -dFt -tMa +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +ykw +kON +rax +wWU +esS +evw +aML +iLv +hSJ +ykw +ygL +jTw +ugA +eym +ugA +aBK +fhz +ugA +fhz +vjg +byP +mOf +vHJ +mOf +skl +opt +eOl +qFE +cGB +cGB +gsI +tLL +vlE +kKL +kKL +kKL +qUI +lik +tWj +rxY +jCK +jdV +bZm +uQc +mYR +mpU +ryJ +xgy +faW +dHf +rWI +cOy +sTH +lso +dEV +bai +azw +hnV +fTC +nej +azw +azw +azw +azw +mGs +vTc +cvS +kSn +vEN +cvS +ltE +pkN +ohp +ohp +ohp +ohp +pNq +dXU +kRP +gDp +kRP +qjb +tbb +fqA +dFp +nJI +hoV +oyX +bWy +khe +oSX +oyX +bWy +cHm +xfB +oyX +bWy +jHQ +xfB +gBx +qNF +sEX +hpI +kDs +bea +kfa +qCn +tCB +qwF +kDs +kDs +kDs +kDs +fdb +utC +utC +tkU +utC +utC +nFO +utC +enX +fuZ +utC +tkU +utC +utC +utC +utC +utC +liV +jHb +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln -dFt -tsP -jZM -vYw -dFt -tMa bln bln bln -lSu bln -lSu -lSu bln bln -mLJ -opn -vJk -vJk -afU -vJk -vJk -qbW -omh -hZN +"} +(136,1,3) = {" bln bln bln bln bln -hZN bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +ykw +uFf +pwo +uFf +ykw +uFf +nOb +uFf +ykw +ykw +rFP +rFP +rFP +skl +skl +wYS +tYF +skl +ugA +goY +skl +cFr +cQx +cFr +skl +fRq +vfW +tBw +nUj +mpH +aAe +tCp +spy +kKL +jZy +aqV +lgx +xay +lko +rxY +ntE +rhG +mdZ +mdZ +mdZ +exw +exw +exw +dRB +exw +exw +exw +tLF +bDB +dEV +dYU +azw +xbB +eyc +qPt +goa +biR +dmI +tdE +veU +pkf +kRP +kRP +rWH +kRP +pao +cGA +ohp +ohp +ohp +ohp +ghz +ktB +kRP +gDp +kRP +qGC +uEJ +uxd +nzy +tKW +hIA +iXq +hLS +ifY +oZL +rxf +sEF +nom +hHN +meT +xGM +gHl +flH +afR +ncJ +kqq +cnq +nqb +qQq +uxx +sMg +sMg +qwF +kDs +kDs +hDG +kDs +fdb +tkU +utC +tkU +utC +utC +oxR +utC +enX +fuZ +utC +tkU +fri +utC +fwx +utC +utC +vDi +tkU +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268261,17 +251565,255 @@ bln bln bln bln +"} +(137,1,3) = {" bln bln bln bln -vzD -lPq -vzD bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +uFf +bJE +uFf +utC +uFf +bJE +uFf +utC +dHF +utC +utC +dHF +utC +skl +dow +skl +skl +giO +hFw +skl +hED +jlk +pSF +skl +eXf +vfW +qfG +iay +dCF +aAe +fbM +kVa +kKL +nWG +kKL +kKL +bYC +isC +rxY +fzK +iIm +fzK +jRA +wXb +bOZ +gpM +jZj +luP +dWI +lEO +lRj +msE +lso +kjK +bai +mIt +xni +hBd +aMP +dQo +oQD +hHI +tdE +fBR +fKi +tHr +rRA +soK +kRP +nMN +kRP +kRP +kwX +lBS +kRP +kRP +kRP +kRP +gDp +kRP +wvV +qyI +buo +tEZ +oFW +qIC +eMr +cnq +nVe +xMh +eMr +cnq +nVe +cnq +eMr +cnq +rBo +jYH +kfs +kfs +oAl +kfs +kDs +qwF +qwF +qwF +qwF +qwF +kDs +kDs +kDs +kDs +fdb +utC +utC +utC +utC +utC +nFO +utC +enX +liV +jHb +utC +utC +utC +fwx +fwx +utC +ozy +utC +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268280,7 +251822,8 @@ bln bln bln bln -chb +"} +(138,1,3) = {" bln bln bln @@ -268289,225 +251832,502 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +uFf +pMg +uFf +utC +uFf +rXX +uFf +utC +utC +tkU +tUm +tkU +utC +skl +eZW +deY +skl +vhF +jPv +rhv +dEL +vhF +vsx +skl +hYL +vfW +sul +eGM +eGM +soI +tLL +erd +kKL +mfP +qgH +kKL +vJJ +awu +uzu +tbL +cEe +fzK +sZB +jRA +toT +spz +jHe +mPr +gOa +jKs +gDq +lso +lCi +dEV +bai +mIt +cJw +dip +bHO +azw +fVK +rGw +azw +ePT +tZm +pBA +aQZ +uNq +dTW +vND +uzJ +kRP +esC +eUI +kRP +qyR +qyR +kRP +gDp +cvS +kDs +kDs +pPy +kDs +vUr +kDs +ygd +kDs +vUr +fLP +mkG +swu +rwB +swu +mkG +swu +wfm +nST +lOI +pGQ +wgG +uQy +swu +swu +swu +dvZ +dvZ +dvZ +dvZ +dvZ +dvZ +dvZ +heE +utC +tkU +utC +tkU +utC +nFO +tkU +enX +fuZ +utC +utC +tkU +utC +utC +utC +utC +mtW +fri +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -vap -lSu -lSu bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(203,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln -bln +(139,1,3) = {" bln -jZM -xVG -jZM -xVG -jZM bln bln bln -jZM -xVG -jZM -xVG -jZM bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -lSu -mLJ -bqY -qXf -tQX -wLk -nXg -tRX -pIy -omh bln bln bln bln bln -lSu bln bln +utC +vfr +skl +sNL +skl +skl +jOK +deY +rhv +eLN +iDe +dyA +skl +gaC +vfW +vfW +qEB +vfW +lvk +crv +acN +mch +mzX +qBi +kKL +kKL +tjG +rxY +uWS +hjl +xBj +ddw +hjz +wqo +spz +eYS +arZ +eME +hSq +jLt +ieJ +vwO +hHg +jyp +azw +uMx +uTk +sJA +sHc +oGs +sEz +jFZ +uoV +gnb +pZB +whh +pQL +nCV +lGh +txo +kRP +kRP +kRP +kRP +wCI +qyR +kRP +gDp +cvS +kDs +qwF +koO +bea +xDG +qwF +jgn +bea +xDG +qwF +jgn +bea +xDG +qwF +jgn +bea +xDG +qwF +gtg +cEw +bCT +kfs +kfs +kfs +bzq +utC +utC +tkU +utC +tkU +utC +utC +reh +jHb +tkU +utC +fri +utC +cwn +utC +enX +fuZ +utC +fri +tkU +utC +tkU +utC +utC +fuZ +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268516,17 +252336,79 @@ bln bln bln bln +"} +(140,1,3) = {" bln bln bln bln bln bln -vzD -ltk -vzD bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268537,182 +252419,172 @@ bln bln bln bln -obe -lej -iNl -ahG -ujK -ujK -lej -eRE -lej -ujK -ujK -eRE -wvw -ujK -bFP -lSu bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(204,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC +oUb vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +skl +cwT +deY +deY +skl +ygS +oGr +pDA +skl +ePq +uRo +uRo +uRo +nCu +cZt +cZt +vnw +kKL +lli +uar +gAt +kKL +jcs +fzK +mbm +dTa +sav +ymf +nuD +pQD +lsA +xmD +awe +lsA +lEO +atS +lmQ +lBB +dEV +bai +azw +pdm +vYH +etv +azw +dnI +vHo +oIJ +nRd +lwQ +tHr +tHr +bxU +art +tHr +tHr +tHr +xDX +qkR +pBA +xfb +dpB +kRP +gDp +cvS +kDs +qwF +cOi +oLK +kgg +qwF +pcr +bXl +fcQ +qwF +rWp +kXq +qab +qwF +xeM +vtj +rQN +qwF +gtg +hpI +qAT +kfs +dtc +kfs +bzq +tkU +utC +utC +utC +utC +tkU +utC +fuZ +utC +utC +utC +utC +utC +shH +mjY +bzq +bza +utC +utC +utC +utC +utC +utC +utC +fuZ +tkU +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268721,26 +252593,79 @@ bln bln bln bln +"} +(141,1,3) = {" bln bln bln bln -jZM -oeh -jZM -vmR -jZM -htd bln bln -jZM -vmR -jZM -woU -jZM -htd bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268748,22 +252673,175 @@ bln bln bln bln -omh -omh -omh -omh -dos -omh -omh -omh -omh bln bln bln bln bln -lSu bln +utC +utC +utC +utC +skl +cwH +deY +ugA +skl +skl +skl +gmW +gmW +dGO +dGO +kBc +dGO +dGO +kBc +dGO +dGO +gmW +gmW +lgw +lJn +kKL +kAQ +jJA +jJA +sRw +vNU +vNU +tvt +peP +spz +qOG +dnE +gpr +izC +hku +lmQ +epw +dEV +hjA +azw +pxV +oQD +vDh +azw +aXg +bGq +cTV +bOp +lwQ +qfi +sEK +eHg +ahL +wVw +xyy +whU +bYK +vmZ +pBA +drH +tNz +kRP +gDp +cvS +kDs +qwF +kdY +qAQ +qAQ +qwF +uIg +eZc +uIg +qwF +bzW +eWj +bzW +qwF +aOX +aRj +aOX +qwF +uUH +vuu +xvj +rCW +ygl +fJe +kDs +xXk +xXk +xXk +xXk +xXk +xXk +xXk +sjh +xXk +xXk +xXk +xXk +xXk +pcb +jrI +iXg +oaQ +oaQ +oaQ +qHg +uAL +uAL +uAL +hHG +liV +qRv +sMy +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268772,6 +252850,8 @@ bln bln bln bln +"} +(142,1,3) = {" bln bln bln @@ -268779,17 +252859,76 @@ bln bln bln bln -hMM -ooL -rwt bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln bln -ozo bln bln bln @@ -268797,6 +252936,169 @@ bln bln bln bln +wNO +utC +fri +utC +skl +skl +qFA +qFA +skl +wNO +pUa +gmW +knl +knl +knl +knl +rzB +knl +knl +knl +knl +knl +gmW +aJa +gJD +kKL +jOC +uWy +reN +byJ +mNP +foI +tvt +peP +spz +pau +dnE +uTq +izC +qiv +saF +lBB +kjK +gdc +azw +mwF +sbc +qYV +azw +gIY +dDR +mcW +sFG +lwQ +kmG +cyo +lup +lup +aCA +jDn +nbC +qZv +rDJ +pBA +qfE +vuR +kRP +gDp +cvS +kDs +qwF +qAQ +uxK +qAQ +qwF +uIg +mjg +uIg +qwF +bzW +iTY +bzW +qwF +aOX +tsl +aOX +qwF +kDs +hpI +loV +kfs +kfs +kfs +bzq +utC +utC +tkU +tkU +utC +utC +utC +fuZ +utC +tkU +utC +utC +utC +utC +tkU +tkU +utC +utC +utC +hMM +mHR +kDs +aEX +kDs +rrh +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268805,174 +253107,79 @@ bln bln bln bln +"} +(143,1,3) = {" bln bln bln bln bln bln -ozo bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(205,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -xOk +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -268980,59 +253187,257 @@ bln bln bln bln +bMz bln bln -vsI -sEB -sEB -fmq -vsI bln bln bln -vsI -sEB -sEB -sEB -vsI +utC +utC +vfr +utC +qtD +skl +wMY +lWG +skl +oFc +pUa +dGO +knl +knl +aBf +knl +knl +knl +knl +knl +knl +knl +dGO +jMu +duT +kKL +tdU +fXw +abZ +qfz +mNP +vNU +tvt +pQD +lsA +nwn +fSs +lsA +lEO +ksc +saF +lBB +dEV +bai +hgh +xgG +fVo +etW +css +hgh +pLt +mcW +fPb +bEL +efK +juw +nji +tkf +ikz +vyW +tHr +pBA +pBA +tHr +jbC +jbC +kRP +gDp +cvS +rsh +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +qwF +kDs +hpI +loV +kfs +kDs +kDs +bzq +utC +tkU +tkU +utC +utC +tkU +utC +reh +jHb +utC +tkU +utC +tkU +tkU +utC +utC +utC +tkU +utC +utC +tJK +kDs +aEX +kDs +fAW +jpx +jpx +jpx +iOh +iOh +mfD +mfD +mfD +mfD +mfD bln bln bln +rbm bln +txl +txl bln bln bln +txl +txl +txl +txl +txl +txl +txl bln -xOk -lSu -lSu -cSx -pXY -pXY -xuR -vyU -pXY -oOB +gEd bln -lSu +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -lSu bln bln bln bln +"} +(144,1,3) = {" bln bln bln bln -ozo bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269045,10 +253450,169 @@ bln bln bln bln +utC +utC +utC +utC +utC +bxS +lWG +lWG +bxS +pUa +pUa +dGO +knl +knl +knl +knl +knl +knl +aBf +knl +knl +knl +dGO +uar +lby +kKL +rAY +fYJ +qMF +jpg +mNP +qpm +tvt +peP +spz +tsu +uGe +fDf +mbw +rDN +qbG +qbG +onP +jyp +hgh +kbS +xxg +ehU +uau +hgh +kBL +xPT +cxA +bij +vkD +cey +lux +eHZ +lux +fUL +qyO +evp +evp +owr +eWT +hpp +kRP +gDp +cvS +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +kDs +hpI +loV +wvI +wvI +wvI +wvI +wvI +pwF +wvI +wvI +wvI +pwF +wvI +vRK +iOh +iOh +iOh +iOh +jpx +jpx +mgv +utC +utC +tkU +tkU +utC +jqx +jEK +aEX +jEK +ktX +tkU +fri +utC +lQi +mfD +mfD +xow +gOg +aFi +mfD +ptY +ptY +ptY +ptY bln bln bln bln +ptY +ptY +ptY +ptY +ptY +ptY +ptY +ptY +iHp +iHp +iHp +iHp +iHp +iHp +iHp +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269057,6 +253621,8 @@ bln bln bln bln +"} +(145,1,3) = {" bln bln bln @@ -269065,186 +253631,512 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(206,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln +utC +utC +utC +utC +pUa +pUa +bxS +lWG +lWG +bxS +pUa +pUa +dGO +knl +knl +knl +knl +knl +knl +knl +knl +knl +knl +dGO +uar +sVW +kKL +dBN +kOx +hye +byJ +mNP +aoO +tvt +peP +spz +sAt +bSp +jWm +tay +rRt +lso +mRy +dEV +eKI +hgh +hmE +mnF +tjv +xYS +fCM +qQx +mcW +cxA +bZI +nMu +wDe +hxs +uEr +nzs +iuD +qAf +gHq +ygF +wGE +rpM +vRo +cvS +oaX +cvS +cvS +cvS +lvG +lvG +lvG +cvS +cvS +lvG +cvS +tYZ +kRP +wOn +wOn +wOn +wOn +wOn +wOn +wOn +wOn +wOn +pzn +wvI +bBM +mIE +ldr +hBE +kJK +iZr +sHs +jXr +aLJ +puf +dyg +haC +haC +haC +fOU +utC +utC +utC +utC +utC +fri +tkU +utC +sdr +dZX +xcZ +dZX +swF +xEn +tkU +tkU +utC +mfD +khy +xpP +ghY +ccw +cQL +pbs +uvu +bPc +ptY +ptY +ptY +ptY +ptY +ptY +dLL +vyt +vyt +vyt +ctl +ctl +ptY +iHp +iHp +iHp +iHp +iHp +iHp +iHp +iHp +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(146,1,3) = {" +bln +bln bln bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +utC +utC +utC +pUa +pUa +pUa +aDM +aEj +lWG +bxS +pUa +pUa +gmW +xPW +knl +knl +knl +knl +knl +knl +knl +knl +hNx +gmW +uKY +gAt +kKL +asN +bUy +bUy +gBJ +vNU +vNU +tvt +ulR +qjW +qmh +iuL +tii +lEO +fPI +ghb +mqq +vSa +fuY +oXb +pKb +eTM +vkG +teZ +lUb +vWm +pbW +sco +iBo +lzM +wbw +ddu +dgl +evp +rEG +iEA +olI +oyB +mcp +rpM +uyO +cvS +gDp +gDp +gDp +gDp +gDp +gDp +gDp +gDp +gDp +gDp +cvS +muX +kRP +fYY +qwo +sOd +eUK +ign +ebr +iJK +ebr +bzE +dYI +wvI +wTB +xke +ldr +vhT +iLf +icF +gRI +lwd +mka +wvI +rnp +wvI +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +sdr +dZX +gpB +ote +swF +swF +swF +swF +swF +mfD +flW +xpP +ghY +jMc +xiU +uVp +sTx +vyt +vyt +vyt +vyt +vyt +vyt +vyt +vyt +ptY +ptY +ptY +ptY +ptY +ptY +iHp +iHp +bgE +iHp +iHp +iHp +iHp +iHp +iHp +bln +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln bln bln bln bln +"} +(147,1,3) = {" bln bln bln @@ -269253,7 +254145,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +pUa +pUa +pUa +aDM +aEj +aEj +aDM +pUa +pUa +dGO +knl +knl +knl +knl +aBf +knl +knl +aBf +knl +knl +dGO +rVE +oqY +kKL +kKL +kKL +ndv +uXd +iiE +oIj +quS +jNo +hvQ +gUv +tCk +fYz +izC +izC +tLF +fqR +qEM +lso +ioE +mJM +jOz +dEg +hmx +hgh +eei +niu +pZm +bEL +vqX +lgk +qoi +pii +nji +ikz +evp +hRH +dXi +mmh +ikz +hTx +cvS +kRP +kRP +kRP +kRP +kRP +kRP +kRP +vpR +fIK +uep +cvS +lUU +kRP +pSk +pOy +pOy +njA +sKW +hGs +vXv +hGs +gOY +ylM +wvI +jWt +cXV +nDq +etB +swx +ldr +ldr +rSW +aHt +wvI +fVE +wvI +tkU +utC +fri +utC +utC +tkU +utC +utC +utC +fwx +dZX +tis +dZX +tWy +dZX +swF +swF +qFu +gzz +uCg +mfD +mfD +skX +ojW +ife +rKK +pbs +pbs +pbs +pbs +pbs +diu +pbs +pbs +pbs +pbs +ptY +iHp +iHp +iHp +iJO +cxl +oVz +iJO +mYh +oVz +cxl +iJO +iHp +iHp +iHp bln +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269262,22 +254392,255 @@ bln bln bln bln +"} +(148,1,3) = {" bln -lqE -vyU -pXY -pXY -pXY -pXY -fcP bln bln bln bln bln bln -lSu bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +pUa +utC +aDM +aEj +aEj +aDM +pUa +pUa +dGO +knl +knl +knl +knl +knl +knl +knl +knl +knl +knl +dGO +uar +lli +nkE +eQO +kKL +mzf +blM +fzK +cax +fFe +gcP +gcP +gcP +kJr +tpO +gpS +izC +xHr +lso +vwO +lso +ioE +mJM +obG +dEf +mFl +xja +iAO +niu +pZm +lwQ +qsQ +kQM +rVq +nji +cey +lux +lux +lux +lux +lux +lgk +tHv +mPv +cIU +mlR +rWW +atb +gvX +uOg +kRP +pAN +iLE +uep +vsZ +hnd +kRP +wCN +don +gJs +gJs +vZD +ebr +iJK +ebr +bzE +pMq +wvI +bHu +cAu +xwc +raA +vRC +nSw +qUu +imJ +fvR +kiE +fTB +pwF +tkU +tkU +utC +utC +utC +fri +utC +utC +utC +utC +dZX +ijT +fgU +cAL +czi +swF +xws +eRH +sMp +orK +nSF +pnR +pnR +pnR +kQz +pnR +hHb +oyW +oyW +jtm +hzH +oyW +bqt +jtm +oyW +oyW +iHp +lLl +ozb +ujs +iJO +ogF +ogF +tFd +lRy +fyc +mYh +mYh +iHp +iHp +iHp +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269286,6 +254649,8 @@ bln bln bln bln +"} +(149,1,3) = {" bln bln bln @@ -269294,6 +254659,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +qtD +kKL +cMr +aEj +kKL +oFc +pUa +dGO +knl +knl +knl +knl +knl +knl +knl +knl +knl +knl +dGO +bZW +lRs +tml +kKL +kKL +uFE +xqk +cpY +cpY +hhO +tLI +uoY +xqU +tLI +fNZ +fKZ +cpY +tLF +nOj +vwO +gnT +hgh +ohb +mTS +obu +mjI +fCM +dIL +hDq +tXc +lwQ +gkX +oeW +aTZ +fle +pyu +oul +wRG +rsR +svq +oio +kQM +upO +tQc +vSY +ubq +lfL +xLW +iPz +kyY +kRP +kRP +kRP +ybO +hlp +cGA +kRP +npD +npD +npD +npD +gGj +mue +sGH +bPt +fij +oDh +jaO +jLQ +wkW +txE +rfS +drJ +drJ +mRr +wvI +fiu +wvI +msn +wvI +wvI +utC +utC +utC +utC +utC +utC +tUm +tkU +tkU +dZX +vGw +fgU +hPe +vMA +oLJ +rYq +yhw +nFk +fQu +aiY +pnR +xfg +uza +iAk +aRD +hHb +pza +pza +pza +pza +pza +sML +sML +sML +pza +iHp +lNc +euc +ujs +mYh +ogF +hfy +uBi +uBi +lqz +dBQ +eAx +iHp +iHp +iHp +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269302,6 +254906,8 @@ bln bln bln bln +"} +(150,1,3) = {" bln bln bln @@ -269310,6 +254916,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +wNO +utC +kKL +kKL +wsr +wsr +kKL +pUa +pUa +gmW +knl +knl +knl +knl +knl +knl +knl +knl +knl +knl +gmW +uar +gUa +uNN +kKL +rBz +sSX +pns +cpY +vzH +uuO +uuO +uuO +uuO +uuO +uuO +guA +cpY +lkr +lso +vwO +fME +nKa +dqO +icA +joa +dqO +nKa +qYx +qWe +agK +lwQ +lwQ +bEL +weI +syv +bEL +lwQ +lwQ +bEL +lwQ +lwQ +bEL +lwQ +qQp +gGI +isP +ePi +rdG +vQP +rdG +jzY +xlh +hKY +uep +uep +uep +eRx +gNT +vng +lme +tiZ +uuI +noR +wDg +rqD +wDg +edw +wvI +ksb +xyT +jvR +fFC +nnn +iIs +iDQ +msN +drK +lyH +isu +lmy +wvI +utC +utC +utC +utC +utC +utC +utC +fri +tkU +dZX +lIW +fgU +lIW +glS +iDp +doG +orK +bro +voY +rlS +frq +rlS +cfe +mXi +mzZ +mRI +bLz +bLz +rfh +bLz +mEg +bLz +jUW +bLz +mGg +mCw +ryf +ryf +fyr +lNC +mlp +lEg +cvh +uBi +eYH +jIZ +oFx +iHp +iHp +iHp +gNg +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269318,6 +255163,255 @@ bln bln bln bln +"} +(151,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +utC +utC +utC +xrh +utC +kKL +uUp +lli +sQS +kKL +kKL +kKL +gmW +gmW +gmW +gmW +kBc +dGO +dGO +kBc +gmW +gmW +gmW +gmW +oOw +aOW +dXx +rOw +ctS +qjJ +nPc +cpY +mmw +oKX +fkk +fkk +fkk +fkk +dkZ +dlH +aBP +ofl +lso +vwO +ePP +nKa +dGq +wKe +vHf +cZd +nKa +lIP +cJX +krS +aOU +mbB +rDa +mrB +jQD +slc +wZu +xza +qjF +pPO +qOj +iyK +uzr +qQp +qQp +wjD +rZm +sOO +lRD +gbP +jxv +wPX +cvS +cvS +cvS +cvS +cvS +sZF +wIS +wRr +npD +xfM +uFM +lmA +oqc +oAD +xKX +wvI +oTT +sCm +xFf +kdC +kRw +fUW +jeR +pMN +mgD +oKL +elT +kDc +pKY +tZa +utC +utC +utC +utC +utC +utC +utC +fwx +dZX +dZX +dZX +dZX +dZX +iDp +swF +osm +iqu +fcu +vQz +pnR +xCk +uxG +iAk +mWw +hHb +pza +uNE +uNE +uNE +pza +pza +pza +pza +pza +iHp +cFM +mEx +ujs +mYh +ruZ +kfP +uBi +uBi +uBi +deg +mYh +iHp +iHp +iHp +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269326,165 +255420,8 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(207,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(152,1,3) = {" bln bln bln @@ -269493,6 +255430,246 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +vfr +utC +gsK +iOh +kKL +cvF +sQS +lli +kKL +tRq +iyY +pUa +uMW +pUa +dGO +iyg +hHq +hfd +syC +gmW +cvH +kbL +kKL +soE +neE +kKL +kKL +cvn +btK +aUt +vnA +ooG +oUp +syI +xbn +hJo +vaL +gtw +wAJ +aBP +xVo +lso +qEM +pJC +nKa +jWO +cDT +rLL +cAI +cMN +met +idm +krS +ljB +xtc +wxH +voj +sDT +fzv +laD +xPv +mGO +tAx +qOj +grT +lEo +shy +qQp +bVp +jnS +fog +lkH +upd +xdl +eDc +hRA +cKF +sIJ +llD +fDI +sZF +sZF +wDK +npD +cbC +nZH +xbC +dPj +npD +npD +npD +npD +npD +npD +mdI +npD +npD +npD +wvI +fTH +wvI +wvI +wvI +wvI +vep +wvI +tkU +utC +utC +utC +utC +utC +fwx +utC +utC +utC +tkU +tkU +mwo +swF +eDh +vAF +swF +vAn +pnR +pnR +pnR +tWp +pnR +hHb +oyW +oyW +jtm +oyW +rsL +uvX +jtm +oyW +oyW +iHp +eoE +iST +ujs +iJO +ruZ +ruZ +jag +oEl +qEa +qEa +mYh +iHp +iHp +iHp +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln @@ -269500,6 +255677,8 @@ bln bln bln bln +"} +(153,1,3) = {" bln bln bln @@ -269508,7 +255687,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +hAM +kdS +kdS +eRE +qQk +cvJ +kdS +eRE +kdS +kdS +kdS +dop +kdS +kdS +kdS +kKL +enY +kKL +kKL +eaQ +aFp +aiu +ijd +iyY +pUa +pUa +pUa +dGO +brm +uRo +hfd +jDX +gmW +bkR +pAX +kKL +hfg +hQW +kKL +soR +yfg +odF +lia +dgR +haJ +tYt +nRW +gtw +aoM +niO +gtw +wAJ +aBP +kNf +lso +cbs +nGA +nKa +nTV +jPl +jGJ +kXM +nKa +uze +eYn +wjL +niU +iWP +xIW +lrc +uYB +lCC +lCC +iKl +iKl +xyc +sPJ +bkV +ree +lOV +qQp +tQc +jbx +tQc +tQc +tQc +tQc +qQp +hRA +dBb +rkL +cga +api +sZF +tKH +wRr +npD +cmw +nZH +msT +npD +npD +ouW +aQj +alq +dFA +sZF +gTi +emT +wzv +oCE +gcT +gcT +fwx +utC +utC +utC +utC +tkU +tkU +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +tkU +tkU +swF +jsq +ben +iol +oiy +oiy +eMK +lsU +apn +qhd +pbs +pbs +pbs +pbs +pbs +ilJ +pbs +pbs +pbs +pbs +ptY +iHp +iHp +iHp +iJO +iMp +oVz +iJO +mYh +oVz +iMp +iJO +iHp +iHp +iHp bln +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269517,6 +255934,8 @@ bln bln bln bln +"} +(154,1,3) = {" bln bln bln @@ -269525,6 +255944,70 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb bln bln bln @@ -269533,12 +256016,173 @@ bln bln bln bln +mQb bln bln bln bln bln +kKL +fOq +lli +kKL +tAN +tDy +kKL +ftk +iyY +pUa +pUa +pUa +dGO +vxW +uRo +hfd +rsy +gmW +oiU +xQU +kKL +kKL +kuJ +kKL +cqb +aYu +gYT +lia +njj +qEn +tFe +eay +eay +gtw +gtw +aHZ +ehL +aBP +ofl +lso +qEM +xwz +nKa +nKa +nKa +nKa +nKa +nKa +sWl +gOb +gOb +aSo +aSo +gLn +sZD +lnC +klc +lDM +dVS +bAj +lDM +klc +rWR +rqd +snG +mJj +laD +uml +laD +laD +laD +xLK +pDL +hRA +ist +rkL +uFz +tFV +sZF +ecW +fed +npD +bPY +rwe +wGO +npD +umD +pgc +dws +dhR +iye +sZF +xkr +gTi +cip +oCE +fwx +tkU +tkU +fwx +utC +utC +utC +utC +utC +utC +utC +fri +tkU +tkU +utC +tkU +fri +tkU +utC +utC +utC +swF +hWi +xkZ +ggR +oiy +wRJ +hsh +cZv +lPc +vdu +wSw +fPZ +itl +tQM +itl +itl +qCU +vyt +vyt +vyt +ptY +ptY +ptY +ptY +ptY +ptY +iHp +iHp +nBo +iHp +iHp +iHp +iHp +iHp +iHp bln +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269547,6 +256191,8 @@ bln bln bln bln +"} +(155,1,3) = {" bln bln bln @@ -269555,11 +256201,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb +mQb +uei +tmR +uei bln +uei +tmR +uei bln +uei +tmR +uei bln bln +kKL +enY +kKL +kKL +eRf +lfU +kKL +kKL +kKL +mMb +mMb +mMb +kKL +kKL +iyY +vFT +kKL +kKL +kKL +rCf +uOm +kKL +rsf +kKL +kKL +tSF +kKL +kKL +cpY +twn +nBt +jJQ +rlE +mBL +vjA +uDv +aFh +cpY +pxp +lso +brj +mbk +vBG +dkg +tLp +eLn +hKr +lQG +oxU +pxX +bCf +wor +wor +mfX +sZD +vgx +lDM +dxO +omo +jdm +xWT +klc +uiF +pJX +qxu +lPr +vcY +mmR +mOM +dMp +dMp +kVS +lqG +grD +xZW +lGs +rfo +vzs +sZF +sKf +naF +npD +ebr +iJK +ebr +npD +olM +xUW +sKf +tbQ +sKf +sZF +ddA +sZF +sZF +sZF +utC +quy +fri +utC +tkU +tkU +utC +utC +utC +utC +utC +jHS +gMp +gMp +wDS +rbV +gMp +gMp +gMp +eGT +gMp +swF +swF +swF +swF +oiy +uZD +hsh +kCV +bkr +qOy +pbs +nZN +qMH +ptY +ptY +ptY +ptY +ptY +ptY +dLL +vyt +vyt +vyt +ctl +ctl +ptY +iHp +iHp +iHp +iHp +iHp +iHp +iHp +iHp bln +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269568,6 +256448,8 @@ bln bln bln bln +"} +(156,1,3) = {" bln bln bln @@ -269576,176 +256458,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +sAd +tMa +uei +tmR +uei bln +uei +tmR +uei bln +uei +tmR +uei bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(208,1,3) = {" -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +mMb +nJK +puz +kSc +kSc +lRZ +lRZ +tYS +lRZ +vjq +lRZ +lRZ +vjq +pbS +lRZ +lRZ +iLn +niE +bMF +pJi +ovz +kKL +sQS +sna +kKL +nFt +kKL +kKL +kKL +kKL +kKL +kKL +pcM +kKL +kKL +kKL +kKL +kKL +kKL +glz +kjN +hAl +vBG +rMS +pKw +xcu +jQd +jQd +wmN +rZR +bCf +aKa +wor +qxG +vFW +noW +nOh +bNH +bNH +rIc +gpR +klc +ooy +gsT +eDH +iYs +xFo +rvA +dVc +nfD +sUT +bIQ +gib +hRA +npo +woa +uQj +htH +sZF +akd +mlo +npD +tMS +iJK +cpl +npD +fWL +qHt +iiB +dFA +nhO +sZF +awO +vjZ +tkU +utC +utC +utC +utC +utC +utC +tkU +tkU +tkU +utC +utC +utC +reh +nTX +utC +fwx +utC +utC +utC +fri +tkU +utC +utC +tkU +tkU +utC +oiy +oiy +kHU +vAU +alK +oiy +ptY +ptY +ptY +ptY bln bln bln bln +ptY +ptY +ptY +ptY +ptY +ptY +ptY +ptY +iHp +iHp +iHp +iHp +iHp +iHp +iHp +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269754,6 +256705,8 @@ bln bln bln bln +"} +(157,1,3) = {" bln bln bln @@ -269762,19 +256715,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb bln +uei +tmR +uei bln +uei +tmR +uei +mQb +uei +tmR +uei bln bln +kKL +kKL +aeS +plI +whe +chc +dDz +kKL +sQS +sQS +lli +sQS +lli +kKL +kRV +ssM +lli +eRf +kKL +kKL +kKL +kKL +lli +sQS +lli +uwE +tnu +eUU +sdf +vmO +eYm +kKL +tvZ +kKL +kVv +wgo +lcs +eGg +kKL +rjP +vwO +pxn +vBG +ulL +kGm +rZZ +opc +qPI +gXk +cgs +bCf +wor +wor +kjP +amE +vgx +lDM +oXq +gUg +amv +sxs +klc +aSo +aSo +vuh +aSo +aSo +aSo +mmB +aSo +aSo +tMO +pEq +tMO +tMO +tMO +tMO +tMO +sZF +nfF +mlo +npD +wPE +iJK +pyY +npD +lYT +waF +jmY +ptp +iye +sZF +eZu +vjZ +tkU +utC +tkU +utC +utC +utC +utC +iAf +iAf +iAf +iAf +iAf +utC +bSz +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +oiy +oiy +oiy +oiy +oiy bln bln bln +oxi bln +txl +txl bln bln bln +txl +txl +txl +txl +txl +txl +txl bln +pGW bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -269783,6 +256962,8 @@ bln bln bln bln +"} +(158,1,3) = {" bln bln bln @@ -269791,214 +256972,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +uei +tmR +uei bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(209,1,3) = {" -tkU -tkU -tkU -tkU -tkU -tkU -tkU -tkU +uei +tmR +uei +mQb +uei +tmR +uei +bln +lBD +bln +kKL +kKL +kKL +mMb +kKL +kKL +kKL +fsJ +ekj +nLY +lli +gAt +kKL +lIC +lRZ +pQa +rOv +fuf +lli +kDO +wsk +hVR +lli +obt +xWM +dku +kKL +nqn +lHA +ddi +kKL +tvZ +kKL +pdB +oBD +lqM +aYk +kKL +vpx +qEM +bbM +vBG +vBG +vBG +eNH +vBG +oiX +myn +cgs +bCf +aWc +nbW +oyy +amE +wyj +klc +tLe +ufN +vCz +ufN +iZx +dDw +qHz +ekE +fzo +fGY +qaU +jtH +qpb +mFE +iZR +nuN +tMO +hpB +jDc +tMO +nMb +sZF +oGN +wRr +npD +ebr +hcG +nZH +npD +vtr +giv +aQj +dFA +oMs +sZF +eZu +vjZ +utC +utC tkU tkU -wNO -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC +utC +iAf +lTC +qpR +kLr +iAf +iAf +iAf +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -270007,6 +257219,8 @@ bln bln bln bln +"} +(159,1,3) = {" bln bln bln @@ -270015,14 +257229,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +hAM +kdS +kdS +nyZ bln +uei +tmR +uei bln +uei +tmR +uei bln +uei +tmR +uei bln +fsm +lBD bln bln bln bln +acE +bxe +bxe +bxe +mHB +kKL +ycO +kKL +kKL +aIE +lRZ +rmP +lli +pKX +sQS +qdq +sQS +qdq +lli +qdq +sQS +unu +hxa +kXW +saC +xWr +kKL +tvZ +cDw +lli +lli +lli +nfE +kKL +cwO +vwO +lso +siu +vBG +rkK +oeM +vBG +rjt +wLY +aBi +vBG +oEF +bZb +ubk +ndJ +rHz +fdY +vjN +wXh +xCQ +ufN +sVm +dDw +srb +dUr +wuv +vds +nmC +cEo +kQJ +mFE +pjN +bsi +cmy +nAN +kCo +ezf +cnb +sZF +uTV +fed +npD +npD +nvh +npD +npD +sZF +fzO +sZF +sZF +sZF +sZF +eZu +vjZ +utC +utC +utC +utC +utC +utC +utC +iAf +dTq +qRk +weR +lQO +hJD +iAf +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -270031,239 +257476,522 @@ bln bln bln bln +"} +(160,1,3) = {" bln bln bln bln -ozo bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb bln bln bln bln bln +tmR +bln +mQb +bln +tmR +bln +bln +bln +tmR +bln +bln +bln +bln +bln +vsI +acE +acE +acE +kXQ +gWV +oBQ +mHB +gUY +iLn +lli +kKL +kKL +lRZ +pEc +sQS +wfE +opU +ykd +sQS +wfE +qch +gyd +tTK +aXc +eUU +iCo +kiX +enH +kKL +tvZ +kKL +lne +rrg +atI +fpA +kKL +rtf +qEM +lso +bGT +vBG +wvW +moG +vBG +rWg +oMR +cNL +vBG +eTY +xrb +qhN +amE +lei +klc +pgY +hXU +oRu +ccR +uKj +dDw +cyr +qgu +tYA +vds +uhG +liz +pjP +mFE +nEc +klk +hsn +hyd +sSj +tMO +jYy +sZF +jPi +fed +nGv +hQK +eZu +pGG +sZF +dlS +pZZ +xpT +hEZ +sZF +lGH +eZu +sZF +sZF +vjZ +sZF +fwx +utC +xOk +vYq +iAf +tUh +iNQ +cmX +iAf +iAf +iAf +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(210,1,3) = {" -tkU -tkU -tkU -tkU -tkU -tkU -tkU -tkU -tkU -tkU +(161,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +sAd +ftY +cnx +tmR +tmR +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +tmR +tmR +tmR +tmR +tmR +rUR +kxv +fIs +kxv +jju +qNZ +lFG +qRo +gxh +gxh +gxh +kKL +gAt +pEc +gAt +sQS +hFm +kKL +kKL +mMb +mMb +kKL +xds +kKL +kKL +kKL +kKL +kKL +kKL +tvZ +kKL +kKL +kKL +kKL +kKL +kKL +lso +vwO +mqq +ivB +vBG +dxq +jAG +sZF +sZF +gXY +sZF +sZF +sxw +ayI +jdA +mSM +ozN +sZF +sZF +sZF +sZF +sZF +sZF +sZF +fLQ +mjH +qLy +vds +iCj +nqd +eUN +mFE +fil +pWY +rQI +phj +oqT +tMO +vIe +sZF +gWh +wRr +lMa +frz +dhv +pZZ +hLX +pZZ +pZZ +sKf +eGK +sZF +cXR +aTc +xpT +bdx +sKf +cmq +fwx +utC +fwx +vYq +fWS +weR +jdJ +xVO +jAQ tkU -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -xOk bln bln bln bln bln bln +"} +(162,1,3) = {" bln bln bln @@ -270272,23 +258000,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb +mQb bln bln bln bln +tmR bln bln bln +tmR bln bln bln +tmR bln bln bln bln bln +sEB +acE +acE +acE +lQf +swt +xTp +pDQ +xBL +wJM +wJM +qRo +kKL +dnL +pEc +kKL +pVl +kKL +kKL +xUd +tlH +tlH +kKL +rEM +kKL +tlH +tlH bln +kKL +dYS +aXc +amW +qmq +kWV +asg +kKL +kdF +qGV +hUx +xVv +sZF +sZF +sZF +sZF +sZF +ayd +wEV +sKf +sZF +sZF +sZF +sZF +lpC +sZF +sZF +pwV +pwV +sKf +hEZ +sKf +sZF +sZF +sZF +sZF +sZF +sZF +sZF +sZF +sZF +sZF +sZF +sZF +wNp +sZF +sZF +sZF +sZF +hEZ +mlo +lCc +lRK +xKx +bHc +sZF +sZF +sZF +sZF +sZF +sZF +sVA +sZF +sZF +sZF +vjZ +sZF +fwx +utC xOk +vYq +iAf +qPY +tUh +xVO +jAQ +tkU +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -270297,6 +258247,8 @@ bln bln bln bln +"} +(163,1,3) = {" bln bln bln @@ -270304,215 +258256,246 @@ bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(211,1,3) = {" -tkU -tkU -tkU -tkU -tkU -tkU -tkU -tkU +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +fYT +kdS +kdS +wSp +bln +uei +tmR +uei +mQb +uei +tmR +uei +bln +uei +tmR +uei +bln +lBD +bln +lBD +bln +bln +bln +acE +bxe +bxe +mHB +mHB +pVl +kKL +bqe +gxh +kKL +hOu +pEc +hJx +lli +fAF +kKL +kKL +mMb +mMb +kKL +xds +kKL +mMb +mMb +mMb +kKL +vYv +lli +lli +kKL +gkP +hFg +kKL +xcy +rvZ +hUx +cie +aLX +vng +gNT +gNT +gNT +gNT +gNT +gNT +gNT +kYc +edd +xwM +daR +mQg +lRW +qDm +hkt +hkt +hkt +hkt +pvo +ptR +hkt +sWs +sWs +sWs +sWs +sWs +sWs +sWs +sWs +sXK +xTQ +sWs +rzV +sWs +sWs +rzV +xTQ +vwN +rzV +rzV +rzV +vtO +sWs +sWs +sWs +sWs +skI +osn +nzN +ktf +sZF +utC tkU tkU +utC +utC +utC +iAf +iAf +jAQ +iAf +iAf +utC tkU -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -270521,6 +258504,8 @@ bln bln bln bln +"} +(164,1,3) = {" bln bln bln @@ -270529,16 +258514,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb bln +uei +tmR +uei bln +uei +tmR +uei bln +uei +tmR +uei bln bln +lBD +uer bln +fsm bln bln bln bln +kKL +cvF +lli +kKL +mwu +qRo +kKL +kKL +lwI +kKL +jhS +tOX +kKL +hVz +uUp +khs +kKL +xds +dYS +amW +amW +amW +amW +rkh +igX +igX +kKL +mVS +kKL +kKL +kKL +fyZ +hUx +cie +sZF +eFS +sZF +sZF +sZF +sZF +sZF +eZi +sKf +mFj +npD +eMn +avF +mZH +sZF +kAC +hil +sKf +sKf +wUA +wUA +wUA +wUA +sKf +sKf +sKf +ktf +tEe +sKf +sKf +lVS +oLn +jgL +gCu +elE +xJv +bge +sKf +jgL +sKf +jgL +xpT +sKf +ktf +mFj +sKf +jgL +sKf +sKf +jgL +wRr +wEV +sZF +tkU +utC +utC +utC +utC +utC +utC +utC +utC +bSz +tkU +utC +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -270547,6 +258761,8 @@ bln bln bln bln +"} +(165,1,3) = {" bln bln bln @@ -270555,221 +258771,256 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +chb +mQb +uei +tmR +uei +mQb +uei +tmR +uei bln +uei +tmR +uei bln bln bln bln +mQb bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(212,1,3) = {" -kDs -kDs -kDs -kDs -kDs -kDs -wNO -wNO -tkU +bln +ntK +bln +kKL +oCv +gGF +kKL +qqB +gxh +kKL +weF +pEc +kKL +moF +eyv +kKL +pQa +wWo +wWo +oPO +jPq +xWM +kKL +kKL +kKL +kKL +kKL +kKL +kKL +kKL +meZ +aJG +sQE +hwE +hwE +cMe +cie +uvt +tlP +jfb +vzX +gAz +cyX +sZF +npD +npD +npD +npD +npD +hTu +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +gDE +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +npD +sZF +sZF +pHR +wEV +vjZ +utC +utC +fri +utC tkU +utC +utC +utC +utC +reh tkU -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +fri +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(166,1,3) = {" +bln bln bln bln @@ -270777,17 +259028,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +sAd +tMa +uei +tmR +uei bln +uei +tmR +uei bln +uei +tmR +uei bln bln bln +mQb bln +mQb bln bln bln bln +kKL +sRI +lli +kKL +hJx +qFW +kKL +hOu +pEc +hJx +mzM +hUi +kKL +eqP +unu +kKL +kKL +kKL +kKL +kKL +cIP +dtb +ndO +jSC +bdS +dtb +hUD +nNi +rvZ +lso +lso +rCu +cYE +hZT +idi +cZU +kBl +kBl +hOY +dbx +uvt +awK +ppQ +mrA +mtI +dAh +mYp +owC +tsr +moL +mGu +wHc +aEA +dng +dAB +rHi +rHi +rHi +rHi +rHi +rHi +qLY +pnA +qFp +fvk +bfN +ily +qeQ +ily +rSz +ily +ily +ily +ily +ily +rSz +ily +hnN +ily +ily +ily +lqU bln +vjZ +pHR +wEV +vjZ +utC +tkU +utC +utC +tkU +tkU +utC +tkU +fri +bSz +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -270796,6 +259275,8 @@ bln bln bln bln +"} +(167,1,3) = {" bln bln bln @@ -270804,15 +259285,246 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +uap bln +uei +tmR +uei bln +uei +tmR +uei bln +uei +tmR +uei bln +stJ bln bln bln bln bln +uer +bln +bln +kKL +rSq +raH +kKL +gxT +gxh +kKL +kKL +pEc +kKL +kKL +kKL +kKL +kIl +cqN +kKL +eIk +xry +xeH +yeF +prg +bwK +prg +xtp +prg +qMm +hUD +sOH +hUx +igt +rek +hUx +rNQ +hZT +idi +aID +gky +vvP +mxD +cgZ +uvt +jeB +pra +jog +mtI +lUf +keZ +owC +pXt +qOH +jIP +wHc +sgL +pTU +itt +rHi +rHi +rHi +rHi +rHi +rHi +qLY +baF +fvk +fvk +bfN +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +lqU +tmR +vjZ +pHR +wEV +vjZ +utC +utC +tkU +utC +utC +tkU +utC +tkU +utC +bSz +tkU +tkU +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln @@ -270820,213 +259532,8 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(213,1,3) = {" -kDs -kDs -kDs -kDs -kDs -kDs -kDs -wNO -wNO -tkU -tkU -wNO -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(168,1,3) = {" bln bln bln @@ -271035,6 +259542,70 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +chb bln bln bln @@ -271046,13 +259617,170 @@ bln bln bln bln +hty bln bln bln +lSu +lSu bln bln bln bln +kKL +kKL +kKL +kKL +kKL +xcp +gxh +ldn +aXp +iOc +uDW +xlN +uNX +dUL +gMZ +iOc +cqh +tsh +gEq +aDo +caY +prg +bwK +prg +cDH +prg +qMm +hUD +pyJ +lPh +hUD +hUD +ebb +cYE +hZT +idi +aID +ddk +ddk +dry +edq +uvt +uus +pra +ctY +mtI +uxj +eNK +owC +xGA +jTZ +xGA +wHc +xKk +emK +uvU +rHi +rHi +rHi +rHi +rHi +rHi +qLY +oCA +fvk +fvk +rMY +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +tgx +qLY +xSE +sZF +rzL +gea +sZF +tkU +utC +tkU +utC +utC +utC +utC +tkU +utC +wyi +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271061,6 +259789,8 @@ bln bln bln bln +"} +(169,1,3) = {" bln bln bln @@ -271069,6 +259799,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +fYT +kdS +kdS +eRE +kdS +kdS +kdS +eRE +kdS +kdS +xFn +eRE +kdS +kdS +kdS +eRE +kdS +gSd +lej +eRE +kdS +lVr +kKL +hTB +sRI +jwF +kKL +lli +gJX +paT +lli +lli +vbZ +jpo +izp +nae +pCi +kKL +kKL +ikm +gXp +qCA +vvL +blV +sEi +sEi +fQz +oBI +sEi +mMD +nVr +wFO +bzA +hUD +eaT +byK +sDd +bRd +fqQ +wIg +qfh +kRE +cLo +uvt +bVq +oed +fAG +mtI +uRL +xmf +owC +tVn +tYe +xIF +wHc +aiH +pTU +faJ +akx +tHK +dfe +dfe +dfe +ehO +lDX +cpg +cpg +cpg +huN +hfc +hfc +hfc +ocD +diL +qVz +luD +tfl +dXI +pTT +eLm +jVs +hfc +hfc +jCE +adY +tmR +sZF +pHR +wEV +sZF +tkU +fri +tkU +tkU +tUm +utC +utC +tkU +utC +reh +nwD +utC +tkU +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271077,213 +260046,9 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(214,1,3) = {" -kDs -kDs -kDs -kDs -kDs -kDs -kDs -kDs -wNO -wNO -tkU -tkU -tkU -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(170,1,3) = {" +bln bln bln bln @@ -271291,10 +260056,255 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +vOy +utC +txl +txl +txl +utC +utC +fwx +utC +utC +utC +utC +kKL +cjO +eCq +xCo +nZU +tDy +rpD +kKL +kKL +kKL +kKL +kKL +kKL +kKL +gkP +kKL +ilq +eSn +bJQ +qCA +vvL +prg +oBI +sEi +sEi +fQz +lBo +sEi +pDS +sEi +vfo +hUD +lso +cYE +fkw +ult +bsG +wGF +wGF +wGF +mtI +mtI +lKk +tUX +tMe +mtI +nqP +vzo +rzz +gEn +pBV +dsl +wHc +ccW +nhf +mfV +xpA +uHc +cpg +gRA +cpg +cdl +pMF +pMF +pMF +pMF +kZa +mQW +mQW +mQW +eqV +dbr +aFJ +xJj +xJj +klW +iVT +ogl +eyR +goe +diL +vTJ +apT +sEB +vjZ +laf +wEV +vjZ +tkU +utC +utC +tkU +fri +utC +utC +tkU +tkU +bSz +utC +utC +tkU +fri +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln bln bln +"} +(171,1,3) = {" bln bln bln @@ -271303,6 +260313,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +kKL +xpE +gGF +wMT +kKL +lli +iin +kKL +xCF +kKL +ptQ +rSl +nqn +kKL +gkP +kKL +tgv +huB +ogd +hff +blV +prg +qok +caY +qok +prg +qpP +nmN +pDS +sEi +cLJ +iQQ +lso +cYE +gAZ +ult +wjz +tXh +shG +shG +otK +iIe +pKJ +rIU +tLM +mtI +nRX +sfY +owC +bYS +qyn +nZf +wHc +wDW +vJY +gJT +jbU +jbU +jbU +jbU +bkQ +drr +qhL +qhL +qhL +qhL +tCx +wPd +wPd +wPd +wPd +wPd +fTq +wab +wOO +wPd +wPd +wPd +wPd +wPd +ega +bcE +qLY +sEB +vjZ +dAP +wEV +vjZ +utC +utC +fri +tkU +utC +tkU +utC +utC +tkU +bSz +utC +utC +tkU +tkU +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271311,6 +260560,8 @@ bln bln bln bln +"} +(172,1,3) = {" bln bln bln @@ -271319,6 +260570,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +fri +utC +vfr +utC +utC +utC +kKL +rqH +lRs +hBv +kKL +lli +wJM +kKL +tml +kKL +kLb +qpd +obl +kKL +gkP +kKL +sTA +ivH +lVF +pup +iZn +prg +prg +prg +prg +prg +prg +bwl +pDS +sEi +bwl +hUD +uff +cYE +gAZ +ult +hpC +rIU +rIU +tJI +irA +uzi +pdy +fiS +agJ +mtI +vtA +muP +owC +owC +owC +owC +wHc +mYq +nyH +lFW +jzH +mde +gSN +jbU +wnX +drr +hvm +pvB +ehd +ehd +ehd +ehd +bbB +bbB +bbB +vDu +lva +lva +iXu +drr +pvB +ehd +orv +aCb +aCb +vfq +apT +sEB +vjZ +pHR +wEV +vjZ +utC +fri +utC +tkU +tkU +tkU +utC +utC +utC +reh +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271327,228 +260817,255 @@ bln bln bln bln +"} +(173,1,3) = {" bln bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(215,1,3) = {" -wNO -wNO bln bln -fwx -kDs -kDs -kDs -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +fri +utC +kKL +kKL +kKL +kKL +kKL +lli +cvF +kKL +lWf +kKL +kVx +lNI +eTP +fVD +gMZ +kKL +hUD +bla +sil +hUD +hUD +pGT +qok +iZn +xzd +prg +prg +qwB +pDS +wVl +wND +iQQ +rvZ +cYE +aPl +ult +vuq +tfM +rIU +jFR +qYw +fPA +cOC +pVV +aEG +mtI +nRX +eNK +aHT +dfw +stQ +pKB +jbU +ozA +gqT +iJC +wfR +oQx +vpW +jbU +lec +fmU +qhL +wve +hfc +hfc +hfc +hfc +hfc +hfc +hfc +hWt +ocJ +mBs +ccQ +aCb +wAY +hfc +hfc +hfc +hfc +hfc +adY +eAw +sZF +pHR +wEV +sZF +utC tkU +utC +utC +utC +utC +utC +utC +utC +bSz tkU -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -xOk -bln -bln -bln -bln -bln -bln +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271557,6 +261074,8 @@ bln bln bln bln +"} +(174,1,3) = {" bln bln bln @@ -271565,6 +261084,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +tkU +utC +utC +utC +dHF +utC +mMb +lIC +aQe +tml +lli +lli +lli +vwJ +lli +kKL +kKL +kKL +kKL +kKL +vXb +kKL +kCg +gjc +bLQ +vaE +hUD +hUD +hUD +hUD +hUD +srk +dal +ssq +sEi +sEi +naP +hUD +tRo +iQa +tRo +ult +ult +wBk +rIU +jrZ +gqm +xCl +rRk +jwn +agJ +mtI +kzG +jdQ +aHT +xyz +idj +eoO +jbU +vLj +bHa +oMT +gaT +bZc +qlO +jbU +hzb +hdH +qhL +dkK +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +vVP +qLY +xSE +sZF +pHR +wEV +sZF +tkU +tkU +utC +fri +utC +vzD +vzD +vzD +gQw +gQw +qpc +utC +fri +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271573,7 +261331,8 @@ bln bln bln bln -xOk +"} +(175,1,3) = {" bln bln bln @@ -271582,6 +261341,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +fri +utC +utC +utC +kKL +qaR +lli +lli +sRI +laY +kKL +kKL +lli +tMY +hVo +hJx +lIC +lli +unu +kKL +nMT +poy +poy +nRV +hUD +ygf +dsZ +pIw +hUD +ktz +prg +six +lQz +sEi +kgm +iQQ +lso +rNQ +lso +pkg +yar +mdl +rIU +rCX +lWc +xCl +utr +lCz +agJ +jDm +nRX +vzo +vTN +pHa +fca +vsk +jbU +pEE +cAG +nbq +iNY +kiQ +xGK +jbU +lhu +hdH +urJ +ppp +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +ily +jBh +tmR +vjZ +wRr +wEV +vjZ +utC +fri +tkU +utC +utC +vzD +oIR +vzD +jCl +kir +bzq +fwx +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271589,220 +261587,256 @@ bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(216,1,3) = {" -wNO -wNO +(176,1,3) = {" +bln bln bln bln -kDs -kDs -kDs -kDs -kDs -wNO -tkU -tkU -tkU -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +dHF +utC +utC +utC +kKL +kKL +kKL +kKL +cTz +kKL +kKL +kKL +faf +lli +wsO +bcC +bcC +bcC +eFO +unu +kKL +tUO +poy +poy +vvJ +hUD +sYe +xUH +dYt +nyl +prg +tyv +qvF +cHh +cHh +osd +hUD +dFO +cYE +lso +hDb +exm +nIl +nVC +abM +xCl +dqw +xCl +dkr +agJ +asZ +mrh +sfY +nJX +ujP +htO +sqn +jbU +gEy +dUe +ank +baX +fUM +wlW +jbU +kHN +kra +qhL +ppp +ily +ily +ily +oqM +xJG +ily +ily +ily +ily +ily +xJG +ily +ily +ily +vGy +ily +ily +ily +jBh bln +vjZ +wRr +sKf +vjZ +utC +tkU +tkU +tkU +utC +vzD +vzD +vzD +kir +vzD +gZd +tkU +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271811,6 +261845,8 @@ bln bln bln bln +"} +(177,1,3) = {" bln bln bln @@ -271819,6 +261855,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +dHF +utC +kKL +pGJ +fDl +jwF +pLv +tjN +hbI +vah +tDy +oXm +bcC +lli +hJx +weF +fMc +aME +kKL +kIr +poy +poy +tav +hUD +uZu +rGd +whC +hUD +qnm +pSy +hUD +uum +uum +hUD +hUD +lso +cYE +lso +hDb +yar +gqK +nxU +gjg +dxg +ivG +aYi +dkr +cHQ +jDm +via +eNK +nJX +ubc +nta +ooe +jbU +anP +cRK +uMK +rep +oMT +ppz +jbU +uQR +iZQ +llw +aus +lKq +lKq +lKq +lKq +lKq +qLY +qLY +jhQ +qLY +jhQ +qLY +qLY +bgx +bgx +bgx +bgx +bgx +bgx +bgx +vzD +sZF +wRr +bBw +vjZ +utC +utC +utC +utC +utC +vzD +ydh +dFG +uZc +gQw +tkU +utC +fwx +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271827,6 +262102,8 @@ bln bln bln bln +"} +(178,1,3) = {" bln bln bln @@ -271835,6 +262112,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +iyY +kbn +rCf +vZa +vYz +sxO +ijb +kKL +iin +iin +bcC +wJM +hJx +nLY +lli +aME +kKL +ptS +poy +poy +hUe +hUD +hUD +hUD +hUD +hUD +hUD +hUD +hUD +blc +qpv +gEE +jbG +lso +cYE +lso +hDb +ult +ult +ult +ult +ult +mtI +lsa +iCz +mtI +mtI +cKk +eNK +nJX +nJX +nJX +nJX +jbU +pbQ +tvv +pbQ +pbQ +pbQ +pbQ +jbU +lKq +pMY +kLy +bGA +lKq +tYW +oYn +cfR +xMT +hjE +lqN +bkS +pJc +iBO +xfp +agd +bgx +buv +jhC +mWB +tKz +dmt +jCl +jCl +vzD +mVD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +uZc +cDk +sGZ +gQw +tkU +tkU +fwx +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -271843,220 +262359,255 @@ bln bln bln bln +"} +(179,1,3) = {" bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(217,1,3) = {" -wNO -wNO bln bln bln bln -hHG -hHG -hHG -hHG -hHG -hHG -tkU +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +iyY +fQk +fQk +rCf +pwH +iwO +uYR +kKL +kKL +kKL +aMa +kKL +kKL +kKL +iVD +uZn +kKL +ptS +prg +prg +caY +iQQ +gEE +oNC +gEE +gEE +gEE +oNC +nmD +gEE +gEE +tva +wrX +hpm +cYE +lso +bBE +wLl +sxZ +oOo +xvy +wLl +tKD +oLg +eLr +eJm +mbK +jQS +eNK +aYJ +jpN +aYJ +aYJ +dwZ +eLr +eaa +via +aYJ +lAw +aYJ +rZw +wib +eLr +hAm +via +via +tPz +iRN +odR +leo +qFt +pTY +lcu +lcu +npT +lcu +xBa +bgx +wSd +jOj +jOj +iCE +eBz +eBz +eBz +eBz +fxV +rEU +rEU +rEU +egS +rEU +egS +rEU +nNM +gTq +gTq +fNa +gQw +utC tkU -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272065,6 +262616,8 @@ bln bln bln bln +"} +(180,1,3) = {" bln bln bln @@ -272073,6 +262626,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +iyY +cxp +eHj +gzY +knf +rCf +rCf +kKL +lOU +glI +buY +hkd +uXu +kKL +pzV +uZn +kKL +jbz +xpN +god +xse +iQQ +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +rpC +oXL +dEV +voH +thM +xfd +pJV +mZG +mZG +qEZ +urk +dFW +aYJ +aYJ +aYJ +aYJ +wUt +urK +mNt +nJT +urK +urK +urK +iRx +pJV +pJV +nMA +nMA +nMA +nMA +pJV +pJV +pJV +pJV +pJV +aYJ +cTR +leo +wOX +efk +jTr +kex +aIr +elk +mdE +xfK +qig +lpW +lpW +vzS +vzD +bFq +jCl +dGK +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +gQw +gQw +vzD +utC +fwx +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272081,6 +262873,8 @@ bln bln bln bln +"} +(181,1,3) = {" bln bln bln @@ -272089,10 +262883,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +kKL +uqS +fQk +oXm +kKL +kKL +kKL +kKL +cDv +fUc +sPU +glI +mRY +kKL +kKL +mbG +kKL +hUD +hUD +hUD +hUD +hUD +cEz +gEE +gEE +gEE +gEE +gEE +gEE +gEE +chK +leM +gqj +emp +cYE +lso +qbp +wLl +qfA +uxA +pUn +wLl +eaS +fXr +dFj +dFj +uZB +oni +nxa +qwN +cLK +dFj +dFj +dFj +dFj +xnM +xnM +xnM +fLl +wMm +xnM +qDQ +dFj +dFj +dFj +dFj +xgI +jmh +avC +leo +qFt +bYu +qkH +wCV +rqa +bgx +bgx +bgx +kBi +vzD +vzD +lXi +vzD +vzD +fxT +jOj +wsN +trT +ejL +kig +cAK +szD +xYw +sNs +vzD bln bln bln bln +utC +fwx +utC +fwx +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272101,224 +263130,255 @@ bln bln bln bln +"} +(182,1,3) = {" bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(218,1,3) = {" -wNO -wNO bln -tkU -tkU -fwx -hHG -hHG -hHG -hHG -hHG -hHG -tkU -tkU -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +iyY +kHb +pDe +ijb +iSQ +qji +pyD +kKL +gCs +fUc +sBi +xYA +ldi +lUC +cZc +oLG +eQF +oxV +oxV +jbG +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +fTX +tru +bMY +emp +cYE +lso +hDb +bZQ +bZQ +bZQ +bZQ +bZQ +bZQ +wnT +wnT +oHK +oHK +xer +wKi +oHK +oHK +umv +cPt +nOa +hnP +nsZ +fki +iIJ +hYE +iIJ +dia +nsZ +nsZ +uoC +nsZ +uoC +nsZ +nsZ +nsZ +nsZ +hjE +xSg +fOl +cyL +jAI +bgx +hWI +xxv +dOK +vzD +puh +lXi +tgq +vzD +dFZ +jOj +axu +vzD +pPB +bRl +fwD +too +mHw +bRz +vzD bln bln +mQb bln +utC +tkU +fri +fwx +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272327,6 +263387,8 @@ bln bln bln bln +"} +(183,1,3) = {" bln bln bln @@ -272335,6 +263397,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +iyY +nPt +fQk +rCf +kKL +qNu +hRG +kKL +lUC +lUC +mpl +nlR +lch +lUC +aQJ +tdR +ikW +gEE +iNG +jbG +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +fTX +wjS +bMY +yaG +cYE +lso +pHX +nDd +soz +faq +ofi +snI +bZQ +gSq +ojF +rQW +ftN +bxP +vvE +tJG +oHK +hJH +hJH +tPL +eOx +nsZ +nsZ +uoC +gzH +uoC +nsZ +nsZ +fFQ +igd +mzg +tIq +tIq +tZw +bdQ +nsZ +pnK +cSw +cmx +yeC +roT +bgx +nBN +clY +fdH +vzD +tKz +lXi +jPY +vzD +tgq +jOj +jOj +vzD +cef +iTP +uCo +lEz +kPw +dAx +gQw +mQb +mQb +uer +mQb +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272343,6 +263644,8 @@ bln bln bln bln +"} +(184,1,3) = {" bln bln bln @@ -272351,9 +263654,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +iyY +jUY +dxs +xQU +kKL +fLb +oHh +kKL +bpQ +kcT +oih +dmL +lUC +lUC +dMH +ait +pYz +gEE +gEE +jbG +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +fTX +dyE +bMY +cxd +cYE +avb +okG +cin +eKl +pxL +lso +hDb +qWn +xZA +dVt +gHY +xZA +vaA +gXJ +wgU +oHK +nLo +hJH +tPL +oiZ +nsZ +izD +wbR +djG +uZm +aCY +tqs +sqt +sqt +sqt +sqt +sqt +aWg +xgK +nsZ +qxl +cSw +pwK +yeC +oNE +bgx +nBN +xPI +jZY +vzD +vzD +lXi +vzD +vzD +vzD +vzD +jOj +vzD +daT +ftS +too +lbf +esF +bRz +gQw +mQb bln bln bln +utC +fwx +tkU +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272362,217 +263901,8 @@ bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(219,1,3) = {" -wNO -wNO -tkU -tkU -tkU -bln -hHG -hHG -hHG -hHG -hHG -hHG -tkU -tkU -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -bln -bln -bln -bln +(185,1,3) = {" bln bln bln @@ -272581,9 +263911,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +kKL +kKL +kKL +kKL +eOm +kKL +kKL +kKL +mly +pwd +glI +wvk +mRY +lUC +tXV +kvX +brL +cYY +qrQ +wrX +wrX +wrX +cEz +gEE +gEE +gEE +gEE +gEE +gEE +gEE +nlJ +rrp +urw +emp +bvI +lso +cUB +nYm +mNi +yeB +uuC +hDb +qWn +gav +ljF +ljF +ljF +sDg +gXJ +hhP +oHK +iZl +iZl +sVi +iZl +nsZ +fBJ +tkp +tur +bjL +sjl +fZy +fZy +fZy +fZy +fZy +gPC +wvz +srW +nsZ +qlG +cSw +ihu +hjp +hjE +bgx +bgx +bgx +bgx +bgx +uAJ +lXi +vzD +utC +vzD +vHm +jOj +vzD +vzD +kqm +tZd +bRz +bRz +bVL +vzD bln +fsm bln bln +fri +utC +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272592,6 +264158,8 @@ bln bln bln bln +"} +(186,1,3) = {" bln bln bln @@ -272600,9 +264168,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +lBq +utC +lUC +pfP +apD +ugG +gIt +mnW +lUC +ccT +nyC +eUz +oTA +oTA +hIN +gvK +jbG +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +gEE +rpC +oXL +cYE +lso +eha +aJQ +aJQ +lso +lZi +qaE +mBQ +eag +ttw +wET +evk +xTw +vqN +pDk +aju +gPY +qWu +fbl +rlu +nsZ +mFb +aHX +aHX +aHX +xgF +awa +awa +awa +awa +awa +xUk +sqt +oAA +nsZ +geg +eVY +ihu +epH +rDZ +rDZ +ePu +rDZ +rDZ +bgx +tgq +lXi +gQw +utC +gQw +jOj +kWi +qzT +vzD +vzD +gQw +gQw +gQw +vzD +vzD +lSu bln bln bln +fwx +utC +utC +utC +utC +fwx +fwx +utC +utC +utC +vOy +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272611,229 +264415,265 @@ bln bln bln bln +"} +(187,1,3) = {" bln bln bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(220,1,3) = {" -wNO -wNO -tkU -tkU -tkU bln -hHG -hHG -hHG -hHG -hHG -hHG -tkU -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +lBq +utC +lUC +lUC +lUC +lUC +lUC +lUC +lUC +wrX +pxi +wrX +tLQ +fBM +tLQ +fBM +jbG +gEE +cpq +gEE +gEE +iKQ +cpq +ueF +gEE +gEE +tva +wrX +bQh +dEV +cvr +cvr +equ +lso +uuC +ePR +kwK +qWn +jTm +moJ +oKy +moJ +moJ +qBj +hMB +wgO +fTT +bUa +wgL +bhm +nsZ +awa +awa +awa +awa +awa +awa +awa +awa +awa +awa +xUk +aSB +tHT +nsZ +vmK +oZn +sFj +rck +rDZ +rDZ +rDZ +rDZ +jkH +bgx +bFq +lXi +gQw +utC +gQw +vrO +vzD +vzD +vzD +bln +bln +mQb +bln +bln +fYT +eRE +ujK +ujK +eRE +wOq +eRE +ujK +ujK +eRE +lej +lej +hAM +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -xOk bln bln bln bln bln bln +"} +(188,1,3) = {" bln bln bln @@ -272842,13 +264682,187 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +vOy +utC +utC +kDs +utC +utC +utC +lBq +pUa +pUa +pUa +lBq +wrX +tuQ +oHH +tAA +efH +mJu +vWU +qPL +qPL +qPL +qPL +qPL +dFt +dFt +dFt +sqA +plQ +gEE +jbG +nzV +cYE +dfB +ymj +pFg +hXC +qad +kuV +cAi +qWn +dik +fOR +tFF +tia +qNn +uIQ +gNi +oHK +dUh +bUa +fbl +aDr +nsZ +awa +awa +awa +awa +awa +awa +awa +awa +awa +awa +xUk +sqt +duE +nsZ +xDa +abT +jJZ +tuy +rDZ +rDZ +mBk +rDZ +rDZ +bgx +rPe +lXi +vzD +utC +vzD +vrO +vzD bln bln bln +mQb +uer bln bln bln bln +muK bln bln bln @@ -272858,7 +264872,55 @@ bln bln bln bln -xOk +chn +fwx +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272867,6 +264929,255 @@ bln bln bln bln +"} +(189,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +kDs +utC +utC +utC +lBq +pUa +pUa +pUa +lBq +wrX +oRm +wrX +oHH +oHH +oHH +oHH +qPL +qiL +erI +gGE +qPL +pdD +asv +dFt +vHI +vHI +dFt +dFt +fdj +lah +asU +qPL +elw +elw +elw +pqo +ftJ +mEJ +jTG +mEJ +ecw +mEJ +jTG +mEJ +mEJ +krY +srP +rou +lIk +srP +nsZ +awa +awa +awa +awa +awa +awa +awa +awa +awa +awa +xUk +sqt +iOv +nsZ +pee +hjE +wGc +wGc +wGc +wGc +bgx +bgx +bgx +bgx +vzD +lXi +vzD +vzD +vzD +vrO +vzD +bln +mQb +bln +mQb +mQb +bln +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sFJ +nwD +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -272874,221 +265185,266 @@ bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(221,1,3) = {" -wNO -wNO -tkU -tkU -tkU +(190,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +lBq +utC +utC +utC +kDs +pUa +pUa +pUa +lBq +pUa +pUa +pUa +nui +kDs +kDs +kDs +tpd +oOD +lDH +gVx +tpd +qWO +pCI +gVt +pCI +pCI +vsM +avc +nfB +cMJ +eBg +kCs +omh +peV +elw +oOc +nvY +qpu +vZV +gGx +jxc +aFt +vZV +aCO +mEJ +kCz +vJS +bUa +ubY +qHn +nsZ +awa +awa +awa +awa +awa +wQY +nmz +nmz +fJm +fJm +fkX +vQp +opB +nsZ +mHd +hjE +rDZ +rDZ +rDZ +rDZ +bgx +cJC +gqv +dty +vzD +lXi +iQT +jCl +jCl +vpg +gQw +bln +uer +bln +bln +mQb +ntK +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +hty +uap +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln bln +"} +(191,1,3) = {" bln bln bln @@ -273097,10 +265453,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +lBq +utC +utC +utC +kDs +pUa +pUa +pUa +lBq +pUa +pUa +pUa +pUa +pUa +pUa +kDs +tpd +jtG +myJ +myJ +ugO +wLS +myJ +eUL +hdw +vpd +bSH +xBU +iVU +iFX +qRr +vAd +omh +wDr +elw +hpY +dJZ +wnK +fzQ +pUy +eSJ +pUy +dNw +spg +sca +xiC +ciS +bUa +jPx +jxb +dqI +oEE +bEJ +mXe +bEJ +qbb +miK +xRv +xRv +xRv +xRv +goy +hWD +oiI +nsZ +uCJ +hjE +rDZ +rDZ +rDZ +rDZ +bgx +qUY +mUE +juQ +vzD +geJ +vrO +vrO +vrO +vrO +gQw +mQb +ntK +mQb +bln bln +mQb bln +sUN +tmR +sUN +mQb +sUN +tmR +sUN bln +sUN +tmR +sUN bln +dzZ +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273109,6 +265700,8 @@ bln bln bln bln +"} +(192,1,3) = {" bln bln bln @@ -273117,13 +265710,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +lBq +pUa +pUa +pUa +lBq +oFc +pUa +pUa +pUa +pUa +pUa +kDs +qPL +qPL +qPL +qPL +qPL +liM +myJ +nMw +gjW +bAY +nmm +jdK +gEV +iRz +ePm +sBV +omh +wuC +elw +vav +mlO +cCu +crn +tgB +kKv +fhb +vAP +bsN +sca +gpj +oQn +iBl +pLr +mKO +sPq +xLq +xLq +aoo +vIg +jED +qEV +cRq +qVZ +ybf +ybf +vaa +xLq +xLq +nsZ +pdO +sFA +rDZ +vyx +uaT +oTd +bgx +jCl +rEU +jCl +vzD +geJ +iQT +bIt +jPY +pxQ +vzD bln bln +mQb bln bln +uer bln +sUN +tmR +sUN +mQb +sUN +tmR +sUN bln +sUN +tmR +sUN bln +chb +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273131,224 +265956,256 @@ bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(222,1,3) = {" -wNO -wNO -tkU -tkU -tkU -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +(193,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +lBq +pUa +pUa +pUa +pUa +pUa +pUa +pUa +pUa +pUa +pUa +kDs +qPL +cyU +sgB +hjh +qPL +lbm +myJ +gEV +rAC +bAY +oTa +jdK +gEV +tcD +ePm +jXL +omh +dbw +elw +elw +elw +elw +elw +ouX +ero +itj +vAP +jBc +mEJ +oXJ +fbl +eIC +trK +qEz +nsZ +vyz +xLq +kvR +qVZ +kgo +sCx +iHc +qVZ +nQj +auK +vaa +xLq +xLq +nsZ +ufb +dDm +rDZ +rDZ +rDZ +rDZ +bgx +vzb +rEU +egS +mII +pTW +vzD +bgx +bgx +bgx +bgx +mJq bln bln bln bln bln bln +sUN +tmR +sUN bln +sUN +tmR +sUN bln +sUN +tmR +sUN bln +rdJ +ujK +lej +hAM +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273357,6 +266214,8 @@ bln bln bln bln +"} +(194,1,3) = {" bln bln bln @@ -273365,18 +266224,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +lBq +utC +pUa +pUa +pUa +pUa +pUa +pUa +pUa +pUa +pUa +kDs +qPL +nbK +vXy +ixv +qPL +gHD +myJ +wKv +mry +ocY +oTa +jdK +eFh +aVn +oLz +fwS +snj +lix +cRy +cRy +cRy +qCF +elw +lfF +iNn +jKl +caC +sTv +mEJ +nSC +gVe +whP +mOc +gYt +nsZ +oOb +ezJ +iba +gas +rjK +nlP +xTV +rGY +nzA +auK +vaa +xLq +xLq +nsZ +rDZ +rDZ +rDZ +swa +rDZ +rDZ +bgx +vzD +vzD +vzD +vzD +geJ +sMo +bgx +rkH +qbh +oGm +mJq +mJq +mJq +sEB bln bln bln bln +tmR bln bln bln +tmR bln +mQb bln +tmR bln bln +fsm +mQb bln +vap +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273385,218 +266471,266 @@ bln bln bln bln +"} +(195,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +lBq +utC +utC +utC +pUa +pUa +pUa +pUa +pUa +pUa +pUa +kDs +tpd +wwI +vXy +oGG +tpd +vXy +myJ +gEV +rAC +bAY +oTa +jdK +gEV +gjW +vXy +cpT +omh +kJc +ozE +fTW +dxm +sHM +elw +cIb +hAT +xyE +hDp +hDp +elw +omh +omh +omh +omh +eHV +elw +nsZ +nsZ +qaz +nsZ +nsZ +bgx +bgx +bgx +bgx +bgx +rVA +bgx +bgx +bgx +bgx +bgx +bgx +bgx +bgx +bgx +bgx +fxT +jCl +axu +jCl +geJ +ici +anv +qUr +vbX +xCz +qYP +xCz +hzB +tmR +tmR +tmR +tmR +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +sEB +tmR +tmR +cnx +bln +sFJ +qRv +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln bln -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(223,1,3) = {" -wNO -wNO -wNO -tkU -tkU +(196,1,3) = {" bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln @@ -273604,20 +266738,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +pUa +pUa +pUa +pUa +pUa +pUa +kDs +tpd +mbn +qLF +vCD +wyo +myJ +myJ +gEV +gjW +bAY +mhT +jdK +nMw +gjW +vXy +pnj +omh +omh +omh +dbw +omh +sHM +elw +jqw +axN +qvE +nhI +hDp +elw +qrP +rpV +fTW +bwM +voW +lEv +clV +wmG +jLW +nkh +tLT +wvv +vqL +lEP +oEj +xmR +oEj +ohU +oEj +myO +oEj +oEj +oEj +oEj +xmR +oEj +oEj +myO +oEj +xmR +oEj +dww +ygm +bgx +qUQ +xQh +xCz +mJq +mJq +mJq +vsI bln bln bln bln +tmR bln bln bln +tmR bln bln bln +tmR bln bln +mQb bln bln +vap +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273626,6 +266985,8 @@ bln bln bln bln +"} +(197,1,3) = {" bln bln bln @@ -273634,226 +266995,256 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vJV +tpd +wwI +tPY +ljo +tpd +vXy +vXy +urx +cuP +eFn +ldV +uFH +hpr +vXy +vXy +orV +jZM +kDs +omh +icV +omh +sHM +elw +bCd +elw +elw +elw +elw +elw +lxR +icE +idt +nCd +bXD +elw +puY +opN +faG +tKO +hyV +bgx +tHw +tVx +ltP +jCl +uZc +jCl +jCl +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +fUh +vzD +vzD +vzD +vzD +bgx +nIx +nIx +nIx +mJq bln bln bln bln +mQb +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +cIf +lej +ujK +fYT +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln bln bln bln -lSu -lSu bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(224,1,3) = {" -wNO -wNO -wNO -tkU -tkU +(198,1,3) = {" bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln @@ -273861,10 +267252,255 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vJV +tpd +hOt +ejn +bFs +tpd +uvv +ejn +ejn +jOD +tGx +ejn +uvv +ejn +uvv +ejn +udw +jZM +kDs +omh +jrX +omh +sED +gjM +upv +gjM +gjM +gjM +gjM +tIW +gjM +aUl +lmx +mHq +pSz +elw +pIu +mEU +enq +nkH +qQa +bgx +gti +wpn +mGA +xWo +axu +bFq +jCl +uZc +jCl +jtn +jCl +iqC +ibw +iQT +qob +rZa +rEU +vzD +sDr +twZ +vzD +utC +utC +utC +utC +chb +mQb +uer +mQb +bln +nEa +mQb +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +chn +fwx +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln bln bln +"} +(199,1,3) = {" bln bln bln @@ -273873,11 +267509,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +pWu +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +fwx +fwx +utC +vJV +tpd +tpd +tpd +qKq +qPL +fPX +dFt +jZM +dFt +jZM +dFt +nJo +dFt +quK +dFt +jZM +jZM +kDs +omh +xKo +omh +omh +omh +omh +omh +cNe +dbw +rpV +jYc +fTW +cJs +fTW +tlf +pSz +elw +mWf +mWf +mWf +hyV +trm +bgx +gti +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +vzD +jCl +tKN +qZh +vzD +twZ +bMb +rEU +vXd +uZc +mwQ +vzD +utC +utC +utC +utC +pMM bln +mQb bln bln +uer +mQb +sUN +tmR +sUN +mQb +sUN +tmR +sUN bln +sUN +tmR +sUN bln +ebW +utC +utC +fwx +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273886,6 +267756,8 @@ bln bln bln bln +"} +(200,1,3) = {" bln bln bln @@ -273894,6 +267766,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +hMM +vbG +vbG +jZM +xVG +jZM +xVG +jZM +vbG +vbG +vbG +jZM +xVG +jZM +xVG +jZM +vbG +vbG +vbG +vbG +vbG +vbG +vbG +vbG +vbG +omh +buU +omh +skW +omh +omh +omh +skW +omh +pSz +omh +vbG +vbG +vbG +hyV +trm +bgx +gti +vzD +utC +utC +utC +utC +utC +utC +vzD +bFq +jCl +nuj +jCl +mEz +uZc +uZc +syT +vzD +jCl +ibj +vzD +utC +utC +utC +utC +chb +bln +bln +bln +bln +mQb +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +mQb +sUN +tmR +sUN +bln +chb +utC +utC +fwx +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -273901,230 +268012,266 @@ bln bln bln bln -lSu bln -lSu -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(225,1,3) = {" -wNO -wNO -wNO -tkU -tkU +(201,1,3) = {" bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -xOk bln bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +utC +utC +utC +jZM +xVG +jZM +xVG +jZM +utC +utC +utC +jZM +xVG +jZM +xVG +jZM +utC +utC +fwx +utC +utC +utC +utC +fwx +fwx +omh +omh +omh +xTy +qNV +rCT +xTy +qNV +omh +omh +omh +utC +utC +utC +hyV +mtx +bgx +vzD +vzD +utC +utC +utC +utC +utC +utC +vzD +vzD +gQw +gQw +gQw +vzD +vzD +vzD +jIk +vzD +vzD +vzD +vzD +utC +utC +utC +utC +obe +ujK +eRE +ujK +ujK +dMo +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sUN +tmR +sUN +bln +sFJ +qRv +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln bln bln bln bln +"} +(202,1,3) = {" bln bln bln @@ -274133,6 +268280,183 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +dFt +tsP +jZM +vYw +dFt +qRv +utC +utC +dFt +tsP +jZM +vYw +dFt +qRv +utC +utC +utC +fwx +utC +fwx +fwx +utC +utC +mLJ +opn +vJk +vJk +afU +vJk +vJk +qbW +omh +hZN +utC +utC +utC +utC +utC +hZN +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vzD +lPq +vzD +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +chb bln bln bln @@ -274143,10 +268467,58 @@ bln bln bln bln -xOk bln bln bln +vap +fwx +fwx +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274155,219 +268527,512 @@ bln bln bln bln +"} +(203,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +jZM +xVG +jZM +xVG +jZM +utC +utC +utC +jZM +xVG +jZM +xVG +jZM +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +mLJ +bqY +qXf +tQX +wLk +nXg +tRX +pIy +omh +utC +utC +utC +utC +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vzD +ltk +vzD +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +obe +lej +iNl +ahG +ujK +ujK +lej +eRE +lej +ujK +ujK +eRE +wvw +ujK +bFP +fwx +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln bln bln bln -xOk bln -xOk -lSu -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(226,1,3) = {" -wNO -wNO -wNO -tkU -tkU +(204,1,3) = {" bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +jZM +oeh +jZM +vmR +jZM +dTI +utC +utC +jZM +vmR +jZM +woU +jZM +dTI +utC +utC +utC +utC +utC +utC +utC +utC +utC +omh +omh +omh +omh +dos +omh +omh +omh +omh +utC +utC +utC +utC +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +hMM vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +gZd +utC +utC +utC +utC +utC +utC +utC +vOy +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vOy +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274376,6 +269041,8 @@ bln bln bln bln +"} +(205,1,3) = {" bln bln bln @@ -274384,6 +269051,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +nui +kDs +kDs +fmq +nui +utC +utC +utC +nui +kDs +kDs +kDs +nui +utC +utC +utC +utC +utC +utC +utC +utC +xOk +fwx +fwx +cSx +pXY +pXY +xuR +vyU +pXY +oOB +utC +fwx +utC +utC +utC +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +vOy +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274392,6 +269298,8 @@ bln bln bln bln +"} +(206,1,3) = {" bln bln bln @@ -274400,6 +269308,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +lqE +vyU +pXY +pXY +pXY +pXY +fcP +utC +utC +utC +utC +utC +utC +fwx +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274408,6 +269555,8 @@ bln bln bln bln +"} +(207,1,3) = {" bln bln bln @@ -274415,222 +269564,256 @@ bln bln bln bln -jxw -jEU -jxw bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(227,1,3) = {" -wNO -wNO -wNO -tkU -tkU bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln bln +"} +(208,1,3) = {" bln bln bln @@ -274639,6 +269822,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274647,6 +270069,8 @@ bln bln bln bln +"} +(209,1,3) = {" bln bln bln @@ -274655,6 +270079,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +vOy +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274663,6 +270326,8 @@ bln bln bln bln +"} +(210,1,3) = {" bln bln bln @@ -274671,217 +270336,759 @@ bln bln bln bln -aZw -jxw -erR -jxw -aZw +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(228,1,3) = {" -wNO -wNO -wNO -tkU -tkU +(211,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(212,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274890,6 +271097,8 @@ bln bln bln bln +"} +(213,1,3) = {" bln bln bln @@ -274898,6 +271107,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274906,6 +271354,8 @@ bln bln bln bln +"} +(214,1,3) = {" bln bln bln @@ -274914,6 +271364,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -274922,223 +271611,255 @@ bln bln bln bln +"} +(215,1,3) = {" bln bln bln bln bln -jxw -jxw -doy -jEU -fkS -jxw -jxw bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(229,1,3) = {" -wNO -wNO -wNO -tkU -tkU bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -275147,6 +271868,8 @@ bln bln bln bln +"} +(216,1,3) = {" bln bln bln @@ -275155,6 +271878,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -275163,6 +272125,8 @@ bln bln bln bln +"} +(217,1,3) = {" bln bln bln @@ -275171,238 +272135,502 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO bln bln -rkW -rkW -onk -rTz -rTz -rTz -oZk -rkW -rkW bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(230,1,3) = {" -wNO -wNO -wNO bln -tkU +"} +(218,1,3) = {" bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -xOk bln bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -275411,6 +272639,8 @@ bln bln bln bln +"} +(219,1,3) = {" bln bln bln @@ -275419,6 +272649,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -275427,230 +272896,255 @@ bln bln bln bln +"} +(220,1,3) = {" bln -xOk bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -jxw -kZL -eEQ -rTz -vkS -rTz -kNE -fRP -jxw bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(231,1,3) = {" -wNO -wNO -wNO bln -tkU bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -275659,6 +273153,8 @@ bln bln bln bln +"} +(221,1,3) = {" bln bln bln @@ -275667,6 +273163,245 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln @@ -275675,6 +273410,8 @@ bln bln bln bln +"} +(222,1,3) = {" bln bln bln @@ -275683,6293 +273420,8732 @@ bln bln bln bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -rkW -rkW -kDX -rTz -rTz -rTz -aTx -rkW -rkW bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(232,1,3) = {" -wNO -wNO -wNO +(223,1,3) = {" bln -tkU bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -jxw -jxw -gAa -xms -qEq -jxw -jxw +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +fwx +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(233,1,3) = {" -wNO -wNO -wNO +(224,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +fwx +utC +fwx +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln -tkU bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -aZw -jxw -lZt -jxw -aZw bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(234,1,3) = {" -wNO -wNO +(225,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +xOk +utC +xOk +fwx +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln bln bln bln -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln -jxw -rkW -jxw bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(235,1,3) = {" -wNO -wNO -fwx +(226,1,3) = {" bln bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(236,1,3) = {" -wNO -wNO -qzn +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +jxw +jEU +jxw +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln bln bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(237,1,3) = {" -wNO -wNO -liV +(227,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +aZw +jxw +erR +jxw +aZw +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln bln bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(238,1,3) = {" -wNO -wNO +(228,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +jxw +jxw +doy +jEU +fkS +jxw +jxw +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln bln bln bln -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(239,1,3) = {" -wNO -wNO -wNO -wNO +(229,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +utC +utC +rkW +rkW +onk +rTz +rTz +rTz +oZk +rkW +rkW +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(240,1,3) = {" -wNO -wNO -wNO -wNO -wNO +(230,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +xOk +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +xOk +utC +utC +txl +txl +txl +txl +txl +txl +txl +utC +utC +jxw +kZL +eEQ +rTz +vkS +rTz +kNE +fRP +jxw +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(231,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +utC +utC +rkW +rkW +kDX +rTz +rTz +rTz +aTx +rkW +rkW +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(232,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +jxw +jxw +gAa +xms +qEq +jxw +jxw +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(233,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +aZw +jxw +lZt +jxw +aZw +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(234,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +jxw +rkW +jxw +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(235,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(236,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +utC +utC +utC +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(237,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(238,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(239,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(240,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} (241,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln "} (242,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -uer -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln "} (243,1,3) = {" -wNO -wNO -wNO -wNO -wNO -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -qzn -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln "} (244,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -liV -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln "} (245,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(246,1,3) = {" -wNO -wNO -wNO -wNO -wNO -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO bln bln -wDS -wDS bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(247,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(246,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(247,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +txl +bln +bln +bln +bln +bln +bln +bln +bln +"} +(248,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +"} +(249,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +"} +(250,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln bln -vOy -vOy bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} -(248,1,3) = {" -wNO -wNO -wNO -wNO -wNO +(251,1,3) = {" +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO bln bln -dTI -dTI bln bln bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(249,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(250,1,3) = {" -wNO -wNO -wNO -wNO -wNO -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG bln -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -"} -(251,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO "} (252,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln "} (253,1,3) = {" -wNO -wNO -wNO -wNO -wNO -fwx -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln "} (254,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln "} (255,1,3) = {" -wNO -wNO -wNO -wNO -wNO bln -hHG -hHG -hHG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -vbG -hHG -hHG -hHG -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO -wNO +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln +bln "} diff --git a/_maps/map_files/IceWilderness/forest.dmm b/_maps/map_files/IceWilderness/forest.dmm new file mode 100644 index 000000000000..b387a52fb921 --- /dev/null +++ b/_maps/map_files/IceWilderness/forest.dmm @@ -0,0 +1,65556 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/always_forested) +"j" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"y" = ( +/obj/item/flashlight/lantern/on, +/turf/open/genturf, +/area/icemoon/surface/outdoors/always_forested) +"z" = ( +/turf/open/chasm/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"M" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"Z" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) + +(1,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(9,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(10,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(11,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(12,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(13,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(14,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(15,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(16,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(17,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(18,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(19,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(20,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(21,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(22,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(23,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(24,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(25,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(26,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(27,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(28,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(29,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(30,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(31,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(32,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(33,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(34,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(35,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(36,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(37,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(38,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(39,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(40,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(41,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(42,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(43,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(44,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(45,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(46,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(47,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(48,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(49,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(50,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(51,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(52,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(53,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(54,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(55,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(56,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(57,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(58,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(59,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(60,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(61,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(62,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(63,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(64,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(65,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(66,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(67,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(68,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(69,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(70,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(71,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(72,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(73,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +y +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(74,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(75,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(76,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(77,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(78,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(79,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(80,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(81,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(82,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(83,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(84,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(85,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(86,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(87,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(88,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(89,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(90,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(91,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(92,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(93,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(94,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(95,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(96,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(97,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(98,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(99,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(100,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(101,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(102,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(103,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(104,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(105,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(106,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(107,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(108,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(109,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(110,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(111,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(112,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(113,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(114,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(115,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +y +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(116,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(117,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +a +a +y +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(118,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(119,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(120,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(121,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(122,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(123,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(124,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(125,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(126,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(127,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(128,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(129,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(130,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(131,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +z +z +z +z +z +a +a +a +y +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(132,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +y +a +z +z +z +z +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(133,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +z +z +z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(134,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(135,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(136,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(137,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(138,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(139,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(140,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(141,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(142,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(143,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(144,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(145,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(146,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(147,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(148,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(149,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(150,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(151,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(152,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(153,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(154,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(155,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(156,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(157,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(158,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(159,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(160,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(161,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(162,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(163,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(164,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(165,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(166,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(167,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(168,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(169,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(170,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(171,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(172,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(173,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(174,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(175,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(176,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(177,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(178,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(179,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(180,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(181,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(182,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(183,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(184,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(185,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(186,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(187,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(188,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(189,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(190,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(191,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(192,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(193,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(194,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(195,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(196,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(197,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(198,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(199,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(200,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(201,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(202,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(203,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(204,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(205,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(206,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(207,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(208,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(209,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(210,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(211,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(212,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(213,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(214,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(215,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(216,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(217,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(218,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(219,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(220,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(221,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(222,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(223,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(224,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(225,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(226,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(227,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(228,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(229,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(230,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(231,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(232,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(233,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(234,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(235,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(236,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(237,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(238,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(239,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(240,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(241,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(242,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(243,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(244,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(245,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(246,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(247,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(248,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(249,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(250,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(251,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(252,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(253,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(254,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(255,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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/map_files/IceWilderness/ice_planes.dmm b/_maps/map_files/IceWilderness/ice_planes.dmm new file mode 100644 index 000000000000..9f5b714c5d5b --- /dev/null +++ b/_maps/map_files/IceWilderness/ice_planes.dmm @@ -0,0 +1,65621 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/misc/ice/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"c" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"f" = ( +/obj/structure/chair/sofa/bench, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/always_forested) +"j" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"p" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"q" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/always_forested) +"u" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"v" = ( +/turf/open/lava/plasma/ice_moon, +/area/icemoon/surface/outdoors/nospawn) +"B" = ( +/obj/structure/railing, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"D" = ( +/obj/structure/closet/crate/secure, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"E" = ( +/obj/structure/chair/sofa/bench/left, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/always_forested) +"F" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"G" = ( +/obj/item/flashlight/lantern/on, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/always_forested) +"K" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"M" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/always_forested) +"N" = ( +/obj/structure/chair/sofa/bench/right, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/always_forested) +"T" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Y" = ( +/obj/structure/railing{ + dir = 10 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"Z" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) + +(1,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(9,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(10,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(11,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(12,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(13,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(14,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(15,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(16,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(17,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(18,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(19,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(20,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(21,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(22,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(23,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(24,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(25,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(26,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(27,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(28,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(29,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(30,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(31,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(32,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(33,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(34,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(35,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(36,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(37,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(38,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(39,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(40,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(41,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(42,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(43,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(44,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(45,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(46,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(47,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(48,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(49,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(50,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(51,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(52,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(53,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(54,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(55,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(56,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(57,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(58,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(59,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(60,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(61,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(62,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(63,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(64,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(65,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(66,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(67,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(68,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(69,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +a +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(70,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(71,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(72,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(73,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(74,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(75,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(76,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(77,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(78,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(79,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(80,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(81,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(82,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(83,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(84,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(85,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(86,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(87,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(88,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(89,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(90,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(91,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(92,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(93,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(94,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(95,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +a +a +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(96,1,1) = {" +j +j +j +j +j +j +j +j +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(97,1,1) = {" +j +j +j +j +j +j +j +j +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(98,1,1) = {" +j +j +j +j +j +j +j +j +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(99,1,1) = {" +j +j +j +j +j +j +j +j +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(100,1,1) = {" +j +j +j +j +j +j +j +j +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(101,1,1) = {" +j +j +j +j +j +j +j +j +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(102,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(103,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(104,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(105,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(106,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(107,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(108,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(109,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(110,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(111,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(112,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(113,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(114,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(115,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +c +T +Y +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(116,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +F +D +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 +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(117,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +u +p +K +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(118,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(119,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(120,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(121,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(122,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(123,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(124,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(125,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(126,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(127,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(128,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(129,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(130,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(131,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(132,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(133,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(134,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(135,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(136,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(137,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(138,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(139,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(140,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(141,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(142,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(143,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(144,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(145,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(146,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(147,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(148,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(149,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(150,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(151,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(152,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +v +v +v +v +v +v +v +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(153,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(154,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +v +v +v +v +v +q +q +q +v +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(155,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +q +q +q +q +q +q +q +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(156,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +q +q +q +q +q +q +q +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(157,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +q +q +q +q +q +q +q +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(158,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +q +q +q +N +q +q +q +q +q +q +q +q +q +q +q +q +q +q +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(159,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +f +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +q +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(160,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +E +q +q +q +q +q +q +q +q +q +q +q +q +q +q +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(161,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +G +q +q +q +q +q +q +q +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(162,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +q +q +q +q +q +q +q +q +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(163,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +q +q +q +q +q +q +q +q +q +q +q +q +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(164,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +q +q +q +q +q +q +q +q +q +q +v +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(165,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +q +q +q +q +q +q +q +q +q +q +v +v +v +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(166,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +q +q +q +q +q +v +v +v +v +v +v +v +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(167,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +v +v +v +v +v +v +v +v +v +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(168,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +v +v +v +v +v +v +v +v +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(169,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +v +v +v +v +v +v +v +v +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(170,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(171,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(172,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(173,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(174,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(175,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(176,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(177,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(178,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +M +a +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(179,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +M +M +M +M +M +M +a +a +a +a +a +a +a +M +M +M +M +M +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(180,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(181,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(182,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(183,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(184,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(185,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(186,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(187,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(188,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(189,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(190,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(191,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(192,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(193,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(194,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(195,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(196,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(197,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(198,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(199,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(200,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(201,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(202,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(203,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(204,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(205,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(206,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(207,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(208,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(209,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(210,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(211,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(212,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(213,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(214,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(215,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(216,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(217,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(218,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(219,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(220,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(221,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(222,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(223,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(224,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(225,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(226,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(227,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(228,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(229,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(230,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(231,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(232,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(233,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(234,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(235,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(236,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(237,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(238,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(239,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(240,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(241,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(242,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(243,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(244,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(245,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(246,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(247,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(248,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(249,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(250,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(251,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(252,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(253,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(254,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(255,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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/map_files/IceWilderness/mountain.dmm b/_maps/map_files/IceWilderness/mountain.dmm new file mode 100644 index 000000000000..03d18954426b --- /dev/null +++ b/_maps/map_files/IceWilderness/mountain.dmm @@ -0,0 +1,65581 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/cliff/snowrock, +/area/icemoon/surface/outdoors/nospawn) +"j" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"p" = ( +/obj/item/stack/sheet/mineral/wood, +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"r" = ( +/turf/closed/wall/mineral/wood/nonmetal, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"t" = ( +/obj/structure/fake_stairs/wood/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"A" = ( +/turf/open/chasm/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"B" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/always_forested) +"E" = ( +/obj/item/clothing/shoes/wheelys/skishoes, +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"M" = ( +/turf/open/cliff/snowrock, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"P" = ( +/turf/open/lava/plasma/ice_moon, +/area/icemoon/surface/outdoors/nospawn) +"T" = ( +/obj/vehicle/ridden/wheelchair, +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"Y" = ( +/obj/structure/door_assembly/door_assembly_wood, +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"Z" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) + +(1,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(9,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(10,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(11,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(12,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(13,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(14,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(15,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(16,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(17,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(18,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(19,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(20,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(21,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(22,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(23,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(24,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(25,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(26,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(27,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(28,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(29,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(30,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(31,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(32,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(33,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +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 +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(34,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +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 +A +A +A +A +A +A +A +A +A +A +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 +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 +B +B +B +B +B +B +B +B +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(35,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +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 +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 +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(36,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +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 +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 +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +B +B +B +B +B +B +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(37,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +B +B +B +B +B +B +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +A +A +A +A +A +A +A +A +A +A +A +A +A +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(38,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +B +B +B +B +B +B +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(39,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +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 +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(40,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(41,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +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 +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(42,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +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 +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(43,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +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 +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(44,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(45,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(46,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(47,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(48,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(49,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(50,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(51,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(52,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(53,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(54,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(55,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(56,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(57,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(58,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(59,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(60,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(61,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(62,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(63,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(64,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(65,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(66,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(67,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(68,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(69,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(70,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(71,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(72,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(73,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(74,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(75,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(76,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(77,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(78,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(79,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(80,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(81,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +Z +B +B +B +B +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(82,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +t +t +t +t +t +t +t +t +t +t +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(83,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +t +t +t +t +t +t +t +t +t +t +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(84,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +t +t +t +t +t +t +t +t +t +t +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(85,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(86,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(87,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(88,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(89,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(90,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(91,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(92,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(93,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(94,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(95,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(96,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(97,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(98,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +T +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(99,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +p +p +Z +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(100,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +p +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(101,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +p +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(102,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +r +r +r +r +Z +p +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(103,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +r +E +E +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(104,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +r +E +Z +p +p +Z +Y +Z +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(105,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +p +Z +r +Z +Z +p +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(106,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +r +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(107,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +r +r +r +r +r +r +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(108,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(109,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +p +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(110,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +M +M +M +M +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(111,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(112,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(113,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(114,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(115,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(116,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(117,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(118,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(119,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(120,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(121,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(122,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(123,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(124,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(125,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(126,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(127,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(128,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(129,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(130,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(131,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(132,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(133,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(134,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(135,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(136,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(137,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(138,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(139,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(140,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(141,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(142,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(143,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(144,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +M +M +M +M +M +M +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(145,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(146,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(147,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(148,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(149,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(150,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(151,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(152,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(153,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(154,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(155,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(156,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(157,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(158,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(159,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(160,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(161,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(162,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(163,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(164,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(165,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(166,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(167,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(168,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(169,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(170,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(171,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(172,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(173,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(174,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(175,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(176,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(177,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(178,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(179,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(180,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(181,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(182,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(183,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(184,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(185,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(186,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(187,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(188,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(189,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(190,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(191,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(192,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(193,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(194,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(195,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(196,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(197,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(198,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +B +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(199,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(200,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(201,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(202,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(203,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(204,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(205,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(206,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(207,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +B +B +B +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(208,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +a +a +a +a +a +a +a +a +a +a +a +Z +B +B +B +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(209,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +a +a +a +a +a +a +a +a +a +a +a +Z +B +B +B +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(210,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +Z +B +B +B +B +B +B +B +B +B +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 +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(211,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +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 +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(212,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(213,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +B +a +a +a +a +a +a +a +a +a +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(214,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(215,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(216,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +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 +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(217,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +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 +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(218,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +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 +B +B +B +B +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(219,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +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 +B +B +B +B +B +B +B +B +B +B +B +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(220,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +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 +B +B +B +B +B +B +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(221,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +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 +B +B +B +B +B +B +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(222,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +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 +B +B +B +B +B +B +B +B +B +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 +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(223,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +A +A +A +A +A +A +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(224,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(225,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(226,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(227,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +A +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(228,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(229,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(230,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(231,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(232,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(233,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +P +P +P +P +P +P +P +P +P +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(234,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(235,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(236,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(237,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(238,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(239,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(240,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(241,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(242,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(243,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(244,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(245,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(246,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(247,1,1) = {" +j +j +j +j +j +j +j +j +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +j +j +j +j +j +j +j +j +"} +(248,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(249,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(250,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(251,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(252,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(253,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(254,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(255,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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/map_files/IceWilderness/rocky_planes.dmm b/_maps/map_files/IceWilderness/rocky_planes.dmm new file mode 100644 index 000000000000..32b06c89ed15 --- /dev/null +++ b/_maps/map_files/IceWilderness/rocky_planes.dmm @@ -0,0 +1,65546 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"j" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) +"L" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/rocky) + +(1,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(9,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(10,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(11,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(12,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(13,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(14,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(15,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(16,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(17,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(18,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(19,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +a +L +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(20,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(21,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(22,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(23,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(24,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(25,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(26,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(27,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(28,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(29,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(30,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(31,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(32,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(33,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(34,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(35,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(36,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(37,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(38,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(39,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(40,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(41,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(42,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(43,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(44,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(45,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(46,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(47,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(48,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(49,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(50,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(51,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(52,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(53,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(54,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(55,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(56,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(57,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(58,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(59,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(60,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(61,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(62,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(63,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(64,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(65,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(66,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(67,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(68,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(69,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(70,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(71,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(72,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(73,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(74,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(75,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(76,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(77,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(78,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(79,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(80,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(81,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(82,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(83,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(84,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(85,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(86,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(87,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(88,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(89,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(90,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(91,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(92,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(93,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(94,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(95,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(96,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(97,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(98,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(99,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(100,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(101,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(102,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(103,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(104,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(105,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(106,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(107,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(108,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(109,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(110,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(111,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(112,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(113,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(114,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(115,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(116,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(117,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(118,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(119,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(120,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(121,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(122,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(123,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(124,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(125,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(126,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(127,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(128,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(129,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(130,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(131,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(132,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(133,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(134,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(135,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(136,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(137,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(138,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(139,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(140,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(141,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(142,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(143,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(144,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(145,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(146,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(147,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(148,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(149,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(150,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(151,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(152,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(153,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(154,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(155,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(156,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(157,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(158,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(159,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(160,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(161,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(162,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(163,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(164,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(165,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(166,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(167,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(168,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(169,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(170,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(171,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(172,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(173,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(174,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(175,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(176,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(177,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(178,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(179,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(180,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(181,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(182,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(183,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(184,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(185,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(186,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(187,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(188,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(189,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(190,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(191,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(192,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(193,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(194,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(195,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(196,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(197,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(198,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(199,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(200,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(201,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(202,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(203,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(204,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(205,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(206,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(207,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(208,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(209,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(210,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(211,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(212,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(213,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(214,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(215,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(216,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(217,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(218,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(219,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(220,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(221,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(222,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(223,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(224,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(225,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(226,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(227,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(228,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(229,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(230,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(231,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(232,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(233,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(234,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(235,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(236,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(237,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +L +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(238,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(239,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(240,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(241,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(242,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(243,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(244,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(245,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(246,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(247,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(248,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(249,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(250,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(251,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(252,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(253,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(254,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(255,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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/map_files/IceWilderness/snow_planes.dmm b/_maps/map_files/IceWilderness/snow_planes.dmm new file mode 100644 index 000000000000..10fb760d1442 --- /dev/null +++ b/_maps/map_files/IceWilderness/snow_planes.dmm @@ -0,0 +1,65543 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/open/genturf, +/area/icemoon/surface/outdoors/unexplored/rivers/no_monsters) +"j" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/icemoon/surface/outdoors/nospawn) + +(1,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(9,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(10,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(11,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(12,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(13,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(14,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(15,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(16,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(17,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(18,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(19,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(20,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(21,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(22,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(23,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(24,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(25,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(26,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(27,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(28,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(29,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(30,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(31,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(32,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(33,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(34,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(35,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(36,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(37,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(38,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(39,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(40,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(41,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(42,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(43,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(44,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(45,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(46,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(47,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(48,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(49,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(50,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(51,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(52,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(53,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(54,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(55,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(56,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(57,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(58,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(59,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(60,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(61,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(62,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(63,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(64,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(65,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(66,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(67,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(68,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(69,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(70,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(71,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(72,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(73,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(74,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(75,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(76,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(77,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(78,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(79,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(80,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(81,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(82,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(83,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(84,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(85,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(86,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(87,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(88,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(89,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(90,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(91,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(92,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(93,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(94,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(95,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(96,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(97,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(98,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(99,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(100,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(101,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(102,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(103,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(104,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(105,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(106,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(107,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(108,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(109,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(110,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(111,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(112,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(113,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(114,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(115,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(116,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(117,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(118,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(119,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(120,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(121,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(122,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(123,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(124,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(125,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(126,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(127,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(128,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(129,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(130,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(131,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(132,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(133,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(134,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(135,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(136,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(137,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(138,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(139,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(140,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(141,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(142,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(143,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(144,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(145,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(146,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(147,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(148,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(149,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(150,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(151,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(152,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(153,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(154,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(155,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(156,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(157,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(158,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(159,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(160,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(161,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(162,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(163,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(164,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(165,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(166,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(167,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(168,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(169,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(170,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(171,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(172,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(173,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(174,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(175,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(176,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(177,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(178,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(179,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(180,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(181,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(182,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(183,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(184,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(185,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(186,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(187,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(188,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(189,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(190,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(191,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(192,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(193,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(194,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(195,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(196,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(197,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(198,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(199,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(200,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(201,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(202,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(203,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(204,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(205,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(206,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(207,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(208,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(209,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(210,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(211,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(212,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(213,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(214,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(215,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(216,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(217,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(218,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(219,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(220,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(221,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(222,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(223,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(224,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(225,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(226,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(227,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(228,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(229,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(230,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(231,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(232,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(233,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(234,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(235,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(236,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(237,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(238,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(239,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(240,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(241,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(242,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(243,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(244,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(245,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(246,1,1) = {" +j +j +j +j +j +j +j +j +j +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +j +j +j +j +j +j +j +j +j +"} +(247,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(248,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(249,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(250,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(251,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(252,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(253,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(254,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +"} +(255,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 +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +j +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/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 48f85cb506ca..1d7ac90f0cee 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2,14 +2,6 @@ "aaa" = ( /turf/open/space/basic, /area/space) -"aac" = ( -/obj/effect/landmark/carpspawn, -/turf/open/space, -/area/space) -"aaf" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "aag" = ( /turf/closed/wall, /area/station/commons/fitness) @@ -44,9 +36,6 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"aav" = ( -/turf/open/space, -/area/space) "aaz" = ( /obj/effect/spawner/random/trash/cigbutt, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -106,10 +95,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"ack" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) "acr" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -635,6 +620,18 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"aly" = ( +/obj/item/cultivator, +/obj/item/hatchet, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/item/paper/guides/jobs/hydroponics, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/spawner/random/entertainment/coin, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "alA" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ @@ -1154,6 +1151,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/corporate_showroom) +"avC" = ( +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "avK" = ( /turf/closed/wall, /area/station/maintenance/fore/lesser) @@ -1265,7 +1266,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 10 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ayg" = ( /turf/open/floor/engine/o2, @@ -1301,7 +1302,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "azg" = ( /obj/item/stack/cable_coil, @@ -2005,16 +2006,6 @@ "aKb" = ( /turf/closed/wall, /area/station/maintenance/central) -"aKk" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "aKl" = ( /obj/structure/table, /obj/machinery/microwave, @@ -2145,17 +2136,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer5, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"aMb" = ( -/obj/structure/table, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/item/crowbar, -/obj/machinery/light/directional/north, -/obj/item/plant_analyzer, -/obj/item/reagent_containers/cup/watering_can, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "aMf" = ( /obj/structure/disposalpipe/segment, /obj/structure/table/wood, @@ -2327,6 +2307,9 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) +"aPb" = ( +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "aPk" = ( /obj/structure/closet/crate/preopen, /turf/open/floor/plating, @@ -2416,7 +2399,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "aQS" = ( /obj/machinery/door/airlock/maintenance, @@ -2712,7 +2695,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 10 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "aWN" = ( /turf/open/floor/circuit, @@ -2834,7 +2817,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "aYz" = ( /obj/effect/spawner/structure/window/reinforced, @@ -3262,6 +3245,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"bfS" = ( +/obj/machinery/light_switch/directional/west, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "bgm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3476,6 +3467,19 @@ }, /turf/closed/wall, /area/station/security/courtroom) +"bjD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/crowbar, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/storage/bag/plants, +/obj/item/plant_analyzer, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "bjF" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -3576,7 +3580,7 @@ /obj/structure/transit_tube/curved{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "blx" = ( /turf/closed/wall, @@ -3640,7 +3644,7 @@ /area/station/hallway/primary/aft) "bno" = ( /obj/structure/transit_tube/diagonal, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "bnr" = ( /obj/effect/turf_decal/trimline/blue/filled/line, @@ -3930,7 +3934,7 @@ /area/station/engineering/main) "brO" = ( /obj/structure/transit_tube/diagonal/topleft, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "brX" = ( /obj/structure/disposalpipe/segment{ @@ -5799,15 +5803,6 @@ "bYz" = ( /turf/open/floor/circuit, /area/station/maintenance/port/aft) -"bYN" = ( -/obj/effect/turf_decal/siding/wideplating_new{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "bZb" = ( /obj/structure/table, /obj/machinery/button/door{ @@ -6033,7 +6028,7 @@ /obj/structure/transit_tube/curved/flipped{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ceZ" = ( /obj/effect/turf_decal/tile/purple/half/contrasted{ @@ -6178,7 +6173,7 @@ dir = 10 }, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ciE" = ( /obj/structure/cable, @@ -6298,6 +6293,15 @@ /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) +"ckW" = ( +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "clj" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, @@ -7113,11 +7117,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/chapel) -"cxl" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/turf/open/space, -/area/space/nearstation) "cxq" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -7198,6 +7197,11 @@ dir = 4 }, /area/station/science/lobby) +"cyM" = ( +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/tile/green/fourcorners, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "cyS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8869,39 +8873,39 @@ /area/station/engineering/atmos) "dgd" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dge" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgf" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgg" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgh" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgj" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgk" = ( /obj/structure/lattice, @@ -8909,7 +8913,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgm" = ( /obj/structure/lattice, @@ -8917,28 +8921,28 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgt" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgu" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgv" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgz" = ( /obj/effect/turf_decal/stripes/line{ @@ -8954,7 +8958,7 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "dgD" = ( /turf/closed/wall, @@ -9138,6 +9142,11 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/port) +"dkh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "dkx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, @@ -9832,11 +9841,6 @@ /obj/machinery/door/window/right/directional/east, /turf/open/floor/plating, /area/station/maintenance/disposal) -"dwJ" = ( -/obj/structure/lattice, -/obj/effect/spawner/random/structure/grille, -/turf/open/space, -/area/space/nearstation) "dwZ" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/effect/turf_decal/tile/yellow/fourcorners, @@ -10010,14 +10014,6 @@ dir = 1 }, /area/station/engineering/atmos) -"dCm" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/junction/flip{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "dCo" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, @@ -10122,6 +10118,15 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"dEr" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "dEx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10304,6 +10309,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/pharmacy) +"dHP" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "dHY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/medical/patient_stretcher, @@ -10389,6 +10400,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer5, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"dJy" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "dJK" = ( /turf/open/floor/iron/stairs/right{ dir = 1 @@ -10959,6 +10982,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port) +"dSt" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "dSB" = ( /obj/machinery/door/airlock/grunge{ name = "Cell 3" @@ -12134,6 +12170,15 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"ele" = ( +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "eli" = ( /obj/item/radio/intercom/directional/south, /obj/structure/disposaloutlet{ @@ -12796,6 +12841,17 @@ /obj/machinery/light_switch/directional/east, /turf/open/floor/iron, /area/station/engineering/main) +"evA" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Head of Personnel's Office" + }, +/obj/structure/table/wood, +/obj/machinery/light/directional/south, +/obj/item/papercutter{ + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) "evD" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -14098,7 +14154,7 @@ "eUu" = ( /obj/structure/transit_tube/crossing/horizontal, /obj/structure/lattice, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "eUA" = ( /obj/structure/table/glass, @@ -15629,7 +15685,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ftd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -15870,12 +15926,6 @@ /obj/effect/turf_decal/caution, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"fzr" = ( -/obj/structure/window/spawner/directional/south, -/obj/structure/window/spawner/directional/west, -/obj/structure/water_source/puddle, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "fzM" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 1 @@ -17424,14 +17474,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/medical/virology) -"geV" = ( -/obj/structure/sink/directional/east, -/obj/machinery/light_switch/directional/west, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "gfa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17830,7 +17872,7 @@ /area/station/hallway/secondary/entry) "gnh" = ( /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "gnk" = ( /obj/effect/mapping_helpers/broken_floor, @@ -17991,19 +18033,6 @@ /obj/structure/chair/wood/wings, /turf/open/floor/carpet, /area/station/service/theater) -"gpk" = ( -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/crowbar, -/obj/item/reagent_containers/cup/watering_can, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/item/plant_analyzer, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "gpv" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -18663,7 +18692,7 @@ "gAu" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "gAw" = ( /obj/effect/turf_decal/delivery, @@ -20089,7 +20118,7 @@ "gZM" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "gZV" = ( /obj/structure/cable, @@ -20487,11 +20516,6 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/commons/lounge) -"hif" = ( -/obj/structure/mannequin/skeleton, -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "hio" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -20534,6 +20558,18 @@ }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) +"hiX" = ( +/obj/effect/turf_decal/siding/wideplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "hiZ" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -20822,7 +20858,7 @@ "hns" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "hnv" = ( /obj/effect/turf_decal/bot, @@ -21232,12 +21268,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) -"hvO" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "hvR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -21919,6 +21949,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/locker) +"hHZ" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "hIp" = ( /obj/structure/fake_stairs/directional/south, /turf/open/floor/iron, @@ -23540,13 +23577,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/theater) -"ikw" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/bot, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "iky" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24040,7 +24070,7 @@ name = "lavaland"; shuttle_id = "pod_2_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "ise" = ( /obj/effect/turf_decal/bot, @@ -24711,13 +24741,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port) -"iCJ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "iCN" = ( /obj/effect/turf_decal/arrows/white, /obj/effect/turf_decal/stripes/line{ @@ -25096,7 +25119,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 5 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "iLk" = ( /obj/effect/turf_decal/plaque{ @@ -25298,7 +25321,7 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "iNo" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/camera/directional/south{ c_tag = "Medbay Psychology Office"; network = list("ss13","medbay") @@ -25551,12 +25574,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"iQO" = ( -/obj/machinery/firealarm/directional/west, -/obj/structure/sink/directional/east, -/obj/effect/turf_decal/tile/green/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "iQP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -26242,6 +26259,16 @@ /obj/item/shard, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"jbM" = ( +/obj/machinery/seed_extractor, +/obj/machinery/airalarm/directional/north, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/spawner/random/food_or_drink/seed_flowers, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "jcc" = ( /obj/structure/rack, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -26340,7 +26367,7 @@ name = "lavaland"; shuttle_id = "pod_3_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "jef" = ( /obj/structure/cable, @@ -26708,6 +26735,10 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"jjZ" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "jkj" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -27672,12 +27703,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"jzC" = ( -/obj/machinery/door/window/right/directional/west{ - name = "Animal Pen A" - }, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "jzD" = ( /obj/machinery/holopad/secure, /turf/open/floor/iron/dark, @@ -27836,11 +27861,6 @@ dir = 8 }, /area/station/medical/morgue) -"jBY" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "jCj" = ( /obj/item/toy/basketball, /turf/open/floor/plating, @@ -28268,7 +28288,7 @@ /obj/structure/disposalpipe/segment, /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "jJR" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -28369,13 +28389,6 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) -"jLy" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/tile/dark_blue/half/contrasted, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "jLD" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -29189,7 +29202,7 @@ "jZC" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "jZP" = ( /obj/effect/turf_decal/siding/purple{ @@ -29371,7 +29384,7 @@ "kcU" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "kcV" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -29756,6 +29769,22 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage/gas) +"kkt" = ( +/obj/item/reagent_containers/spray/plantbgone, +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/stripes/line, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "kkx" = ( /obj/structure/table/reinforced, /obj/machinery/airalarm/directional/north, @@ -30007,16 +30036,6 @@ }, /turf/open/floor/iron, /area/station/science/lab) -"knZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/holopad, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "koa" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/holopad, @@ -30250,13 +30269,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/greater) -"ktl" = ( -/obj/structure/sink/directional/east, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "kts" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, @@ -31840,10 +31852,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"kUT" = ( -/obj/effect/spawner/structure/window/reinforced/tinted, -/turf/open/floor/plating, -/area/station/service/hydroponics/garden) "kUZ" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -32208,6 +32216,22 @@ /obj/effect/spawner/random/trash/janitor_supplies, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"lan" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "lav" = ( /obj/structure/girder, /obj/effect/spawner/random/structure/grille, @@ -32278,14 +32302,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/security/prison/visit) -"lbH" = ( -/mob/living/basic/chicken{ - name = "Featherbottom"; - real_name = "Featherbottom" - }, -/obj/structure/flora/bush/fullgrass, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "lbL" = ( /obj/effect/decal/cleanable/insectguts, /obj/effect/turf_decal/siding/purple{ @@ -32332,20 +32348,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"ldg" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/siding/wideplating_new/corner, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "ldm" = ( /obj/structure/table/glass, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -33371,6 +33373,10 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"lyA" = ( +/obj/structure/flora/bush/flowers_br, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "lyF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33809,6 +33815,14 @@ /obj/effect/spawner/random/engineering/atmospherics_portable, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) +"lKp" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/sign/poster/official/cleanliness/directional/south, +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "lKu" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, @@ -34555,12 +34569,6 @@ /obj/structure/sign/warning/vacuum/directional/east, /turf/open/floor/plating, /area/station/maintenance/aft/lesser) -"lXl" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "lXm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -35137,10 +35145,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"mie" = ( -/obj/structure/flora/bush/flowers_yw, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "mig" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -35491,12 +35495,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/security/brig) -"mos" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "moF" = ( /obj/effect/turf_decal/siding/purple{ dir = 5 @@ -35519,7 +35517,7 @@ "moI" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "moV" = ( /obj/effect/spawner/structure/window/reinforced/tinted, @@ -36188,6 +36186,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"mBe" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "mBf" = ( /obj/structure/table/wood, /obj/machinery/recharger, @@ -36452,6 +36464,17 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"mEM" = ( +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/crowbar, +/obj/machinery/light/directional/north, +/obj/item/plant_analyzer, +/obj/item/reagent_containers/cup/watering_can, +/obj/effect/turf_decal/stripes/line, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "mEO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -36710,9 +36733,6 @@ dir = 8 }, /area/station/science/lab) -"mJI" = ( -/turf/open/space, -/area/space/nearstation) "mJL" = ( /obj/machinery/airalarm/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -38153,7 +38173,7 @@ "niY" = ( /obj/structure/disposalpipe/segment, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "nja" = ( /obj/structure/disposalpipe/segment, @@ -39259,13 +39279,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/medical/virology) -"nzS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "nAb" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/effect/landmark/event_spawn, @@ -39661,6 +39674,18 @@ }, /turf/open/floor/iron/dark, /area/station/medical/break_room) +"nGu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "nGz" = ( /obj/structure/rack, /obj/item/radio/off{ @@ -40396,6 +40421,12 @@ /obj/item/bouquet/poppy, /turf/open/floor/plating/airless, /area/space/nearstation) +"nVM" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "nWk" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -40430,7 +40461,7 @@ /area/station/medical/medbay/central) "nWS" = ( /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "nXm" = ( /obj/structure/cable, @@ -40501,26 +40532,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"nYO" = ( -/obj/item/reagent_containers/spray/plantbgone, -/obj/item/reagent_containers/spray/pestspray{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/bottle/nutrient/ez, -/obj/item/reagent_containers/cup/bottle/nutrient/rh{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/effect/turf_decal/stripes/line, -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "nYU" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, @@ -41548,10 +41559,6 @@ /obj/structure/sign/warning/secure_area, /turf/closed/wall/r_wall, /area/station/security/brig) -"osz" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, -/area/space/nearstation) "osH" = ( /obj/structure/secure_safe/hos{ pixel_x = 36; @@ -42005,7 +42012,7 @@ /obj/structure/transit_tube/horizontal, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "oBn" = ( /obj/structure/flora/bush/jungle/b/style_random, @@ -42087,16 +42094,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"oCO" = ( -/obj/structure/window/spawner/directional/west, -/obj/structure/window/spawner/directional/south, -/mob/living/basic/chicken{ - name = "Kentucky"; - real_name = "Kentucky" - }, -/obj/structure/flora/grass/jungle/b/style_random, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "oCR" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/suit_storage_unit/security, @@ -42540,7 +42537,7 @@ "oId" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "oIg" = ( /turf/closed/wall/r_wall, @@ -42820,10 +42817,6 @@ dir = 8 }, /area/station/service/chapel) -"oOW" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, -/area/space/nearstation) "oOY" = ( /obj/structure/rack, /obj/item/fuel_pellet, @@ -43435,6 +43428,20 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"paA" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "paD" = ( /turf/closed/wall, /area/station/cargo/bitrunning/den) @@ -44977,14 +44984,6 @@ }, /turf/open/floor/wood, /area/station/commons/lounge) -"pCL" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/sink/directional/east, -/obj/structure/sign/poster/official/cleanliness/directional/south, -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/service/hydroponics) "pCO" = ( /obj/machinery/holopad, /obj/machinery/status_display/evac/directional/north, @@ -45374,7 +45373,7 @@ "pJv" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "pJA" = ( /obj/structure/closet/secure_closet/cytology, @@ -45884,14 +45883,6 @@ /obj/item/reagent_containers/spray/pepper, /turf/open/floor/iron, /area/station/security/execution/transfer) -"pRM" = ( -/obj/structure/window/spawner/directional/south, -/mob/living/basic/cow{ - name = "Betsy"; - real_name = "Betsy" - }, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "pSa" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 @@ -45927,7 +45918,7 @@ }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "pSY" = ( /obj/effect/decal/cleanable/dirt, @@ -45966,6 +45957,14 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"pTz" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "pTS" = ( /turf/closed/wall, /area/station/service/bar) @@ -46709,13 +46708,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port) -"qgy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "qgz" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -47155,7 +47147,7 @@ /obj/structure/transit_tube/curved/flipped{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "qov" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/oxygen_input{ @@ -47608,7 +47600,7 @@ /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "qyr" = ( /obj/item/kirbyplants, @@ -47676,7 +47668,7 @@ /obj/structure/lattice/catwalk, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "qzz" = ( /obj/structure/chair{ @@ -48891,6 +48883,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/port) +"qSA" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "qSP" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 1 @@ -49067,12 +49066,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/commons/lounge) -"qVy" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "qWg" = ( /obj/structure/lattice, /obj/structure/sign/warning/secure_area/directional/east, @@ -49849,18 +49842,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"rkA" = ( -/obj/structure/table, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/item/paper/guides/jobs/hydroponics, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/spawner/random/entertainment/coin, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "rkM" = ( /obj/machinery/door/firedoor, /obj/structure/disposalpipe/segment{ @@ -50195,7 +50176,7 @@ "rqK" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "rrg" = ( /obj/structure/cable, @@ -51298,18 +51279,6 @@ /obj/effect/mapping_helpers/airlock/access/all/service/theatre, /turf/open/floor/wood, /area/station/maintenance/starboard/greater) -"rJr" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Head of Personnel's Office" - }, -/obj/structure/table/wood, -/obj/machinery/light/directional/south, -/obj/item/papercutter{ - pixel_x = -4 - }, -/obj/item/paper/fluff/ids_for_dummies, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hop) "rJA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51445,6 +51414,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/brig) +"rLd" = ( +/obj/structure/window/spawner/directional/south, +/obj/structure/window/spawner/directional/north, +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "rLo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51571,6 +51548,15 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"rNv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "rNA" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/brown/opposingcorners, @@ -52160,7 +52146,7 @@ "rYs" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "rYy" = ( /obj/machinery/power/smes, @@ -52230,6 +52216,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai) +"rZz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "rZA" = ( /obj/structure/sign/map/meta/left{ pixel_y = 32 @@ -53305,19 +53297,6 @@ "suW" = ( /turf/open/floor/iron/white, /area/station/science/lobby) -"sve" = ( -/obj/structure/sink/directional/south, -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "svj" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 @@ -53641,6 +53620,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/genetics) +"sAK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted, +/obj/structure/mannequin/skeleton, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "sBa" = ( /obj/structure/bed, /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -53727,6 +53714,10 @@ /obj/structure/sign/warning/radiation, /turf/closed/wall/r_wall, /area/station/engineering/atmospherics_engine) +"sCs" = ( +/obj/structure/flora/bush/flowers_pp/style_3, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "sCv" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/poddoor/preopen{ @@ -55702,7 +55693,7 @@ name = "lavaland"; shuttle_id = "pod_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "tkE" = ( /obj/machinery/requests_console/directional/east{ @@ -56199,7 +56190,7 @@ /obj/structure/transit_tube/horizontal, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "tth" = ( /obj/item/paper_bin/carbon, @@ -56338,7 +56329,7 @@ /obj/structure/transit_tube/crossing/horizontal, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "twl" = ( /obj/structure/table, @@ -57658,6 +57649,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"tUh" = ( +/obj/effect/turf_decal/siding/wideplating_new{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "tUl" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser, @@ -58187,7 +58190,7 @@ "ubw" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ubB" = ( /obj/structure/table/reinforced, @@ -58360,18 +58363,6 @@ }, /turf/open/floor/iron, /area/station/construction/storage_wing) -"ued" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "ueh" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58525,6 +58516,16 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"uhU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "uhW" = ( /obj/structure/cable, /obj/machinery/door/window/right/directional/west{ @@ -58701,7 +58702,7 @@ "ulA" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ulB" = ( /obj/effect/decal/cleanable/blood/oil, @@ -60204,12 +60205,6 @@ /obj/structure/chair, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"uKv" = ( -/obj/machinery/seed_extractor, -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "uKx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -60534,23 +60529,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"uPJ" = ( -/obj/structure/table, -/obj/item/food/grown/wheat, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/citrus/orange, -/obj/item/food/grown/grapes, -/obj/item/food/grown/cocoapod, -/obj/item/food/grown/apple, -/obj/item/food/grown/chili, -/obj/item/food/grown/cherries, -/obj/item/food/grown/soybeans, -/obj/item/food/grown/citrus/lime, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "uQe" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61285,6 +61263,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) +"vcb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "vcu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61577,6 +61565,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"viP" = ( +/obj/machinery/status_display/evac/directional/north, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "viQ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 @@ -62801,7 +62794,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/transit_tube/horizontal, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "vCh" = ( /obj/structure/disposalpipe/segment, @@ -63432,13 +63425,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"vNT" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/space, -/area/space/nearstation) "vOh" = ( /obj/effect/turf_decal/stripes/end, /turf/open/floor/plating/airless, @@ -64532,10 +64518,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/central) -"weS" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "wfm" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -65138,6 +65120,13 @@ /obj/effect/mapping_helpers/airlock/access/all/command/ai_upload, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"wpK" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "wqh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -66557,7 +66546,7 @@ /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "wQz" = ( /obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6/directional/east, @@ -66583,11 +66572,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wQU" = ( -/obj/structure/lattice/catwalk, -/obj/structure/marker_beacon/burgundy, -/turf/open/space, -/area/space/nearstation) "wRg" = ( /obj/machinery/door/poddoor/incinerator_atmos_aux, /turf/open/floor/engine, @@ -66601,6 +66585,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/vacant_room/commissary) +"wRq" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "wRB" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/firealarm/directional/west, @@ -66621,10 +66615,6 @@ /obj/structure/table, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"wRF" = ( -/obj/structure/flora/rock/pile, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "wRL" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -67237,6 +67227,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port) +"xeQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/siding/wideplating_new/corner, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "xeZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -67758,7 +67768,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 1 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "xnk" = ( /obj/structure/disposalpipe/segment{ @@ -68672,7 +68682,7 @@ /obj/structure/transit_tube/curved{ dir = 4 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "xCH" = ( /obj/effect/turf_decal/stripes/red/line{ @@ -69283,14 +69293,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/corner, /area/station/hallway/secondary/entry) -"xOU" = ( -/obj/structure/sink/directional/east, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "xOV" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -70114,6 +70116,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/locker) +"ycQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/plant_produce, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "ydb" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -76124,7 +76134,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -76657,7 +76667,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -77135,7 +77145,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -77886,7 +77896,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -82816,11 +82826,11 @@ qEt eIa vNM wdr -aaf +lMJ lXm jrY qEt -aaf +lMJ wdr sCZ aOf @@ -84280,7 +84290,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -90746,10 +90756,10 @@ vxO jXu aaa aaa -aaf +lMJ aaa aaa -aaf +lMJ aaa aaa jXu @@ -91001,14 +91011,14 @@ jzq jXu paU jXu -aaf +lMJ rlU rlU rlU rlU rlU rlU -aaf +lMJ jXu rOz ciE @@ -92543,7 +92553,7 @@ dPt lRA lFF jXu -aaf +lMJ rlU rlU rlU @@ -92660,7 +92670,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -94612,12 +94622,12 @@ fkD qWF aaa aaa -aaf +lMJ aaa aaa aaa aaa -aaf +lMJ aaa ihq uCq @@ -94635,7 +94645,7 @@ pJR pJR iiE rGj -rJr +evA pJR oUB qRI @@ -95338,7 +95348,7 @@ aaa aaa aaa aaa -wQU +quc lMJ qrr sjP @@ -95381,7 +95391,7 @@ rsI oQZ ocg qWF -aaf +lMJ aJS dPV mph @@ -95910,9 +95920,9 @@ tBA dMv uoe tKN -aaf -aaf -aaf +lMJ +lMJ +lMJ dho dho alI @@ -96167,9 +96177,9 @@ puG htd uoe tKN -aaf -aaf -aaf +lMJ +lMJ +lMJ dsQ sVz aNe @@ -96409,7 +96419,7 @@ gUx cHE gTP qWF -aaf +lMJ aJS dPV jln @@ -96424,7 +96434,7 @@ uZo hPM uoe tKN -aaf +lMJ dsQ dsQ dho @@ -96482,7 +96492,7 @@ jOw iqz fyK hZV -hif +viP otI fWw pdV @@ -96681,7 +96691,7 @@ hZZ rng uoe tKN -aaf +lMJ dsQ mZL jbf @@ -96698,8 +96708,8 @@ dho uag aks qRI -aaf -aaf +lMJ +lMJ inX pRh uCH @@ -96741,7 +96751,7 @@ jtl hZV eNl hZA -jLy +sAK kgx hKB vLo @@ -96762,7 +96772,7 @@ tXr hQu gRb aaa -aaf +lMJ aaa aaa aaa @@ -96938,7 +96948,7 @@ fMp htd uoe tKN -aaf +lMJ dsQ wag nxO @@ -97019,7 +97029,7 @@ kJB biA iUm xKd -aaf +lMJ aaa aaa aaa @@ -97182,12 +97192,12 @@ qWG uDP aaa aaa -aaf +lMJ aaa aaa aaa aaa -aaf +lMJ aaa ihq mur @@ -97195,7 +97205,7 @@ fVJ hpi uoe tKN -aaf +lMJ dsQ hfa dUj @@ -97276,7 +97286,7 @@ vje hQu gRb aaa -aaf +lMJ aaa aaa aaa @@ -97452,7 +97462,7 @@ exC dRZ uoe tKN -aaf +lMJ dho wss gGy @@ -97709,7 +97719,7 @@ gGa pWA uoe tKN -aaf +lMJ dsQ mXj dUj @@ -97966,7 +97976,7 @@ vVZ hcv rxZ tKN -aaf +lMJ dsQ sAz fMf @@ -98223,7 +98233,7 @@ wNN jOG qBC tKN -aaf +lMJ dsQ owv dUj @@ -98480,7 +98490,7 @@ vpQ iLk tGL tKN -aaf +lMJ dho vSh gGy @@ -98737,7 +98747,7 @@ xkr heF qBC tKN -aaf +lMJ dsQ qkA dUj @@ -98936,7 +98946,6 @@ aaa aaa aaa aaa -aav aaa aaa aaa @@ -98944,7 +98953,8 @@ aaa aaa aaa aaa -aav +aaa +aaa aaa aaa aaa @@ -98994,7 +99004,7 @@ tHR htd qBC tKN -aaf +lMJ dsQ hiu lNH @@ -99181,7 +99191,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -99251,7 +99261,7 @@ wEG htd qBC tKN -aaf +lMJ dsQ kGc dTV @@ -99268,8 +99278,8 @@ dho fEX vQe qRI -aaf -aaf +lMJ +lMJ inX sxA cPU @@ -99508,7 +99518,7 @@ wEG rng qBC tKN -aaf +lMJ dsQ dsQ dho @@ -99765,9 +99775,9 @@ wEG htd qBC tKN -aaf -aaf -aaf +lMJ +lMJ +lMJ dsQ tkE iYA @@ -100022,9 +100032,9 @@ wEG tmK qBC tKN -aaf -aaf -aaf +lMJ +lMJ +lMJ dho dho dho @@ -100991,7 +101001,7 @@ aaa aaa aaa aaa -aav +aaa aaa aaa aaa @@ -101256,7 +101266,7 @@ aaa aaa aaa aaa -aav +aaa aaa aaa rrt @@ -102799,7 +102809,7 @@ aaa aaa aaa aaa -aav +aaa aaa aaa aaa @@ -102879,7 +102889,7 @@ cfe ddO sLE cEv -iQO +cyM eeT tUn hKV @@ -103049,7 +103059,7 @@ aaa aaa aaa aaa -aav +aaa aaa aaa aaa @@ -103555,7 +103565,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -103906,7 +103916,7 @@ ebC iQI tNL xCx -xOU +wpK ijv hRQ tUn @@ -104589,7 +104599,7 @@ aaa aaa aaa aaa -aav +aaa aaa aaa aaa @@ -104854,7 +104864,7 @@ aaa aaa aaa aaa -aav +aaa aaa aaa aaa @@ -105017,8 +105027,8 @@ lMJ lMJ aaa lMJ -aaf -aaf +lMJ +lMJ kJi kJi mgK @@ -105273,8 +105283,8 @@ lMJ aaa lMJ dxK -aaf -aaf +lMJ +lMJ weq kJi pgU @@ -105530,7 +105540,7 @@ aaa aaa aaa aaa -aaf +lMJ kJi kJi hxV @@ -105786,8 +105796,8 @@ aaa aaa aaa aaa -aaf -aaf +lMJ +lMJ jUq vOh sKJ @@ -106044,7 +106054,7 @@ aaa aaa aaa aaa -aaf +lMJ kJi kJi coc @@ -106301,8 +106311,8 @@ lMJ aaa lMJ dxK -aaf -aaf +lMJ +lMJ weq kJi vpl @@ -106435,9 +106445,9 @@ lnc lqQ lqQ lqQ -kUT +pTz jSq -kUT +rLd lqQ lqQ qXB @@ -106559,8 +106569,8 @@ lMJ lMJ aaa lMJ -aaf -aaf +lMJ +lMJ kJi kJi hcl @@ -106690,13 +106700,13 @@ ejl pFd nwa lqQ -nYO -geV -hvO -ued -hvO -ktl -rkA +kkt +bfS +dEr +lan +dEr +ckW +aly qXB edC psZ @@ -106731,7 +106741,7 @@ vqp wen bMa kCZ -sve +dJy bNl pEB kCD @@ -106948,12 +106958,12 @@ pFd vTs lqQ nMK -mos -jBY -aKk -lXl -nzS -gpk +hHZ +avC +mBe +dkh +vcb +bjD qXB kbo tbd @@ -107173,7 +107183,7 @@ aaa rrt rrt lMJ -dwJ +rrt aaa lMJ aaa @@ -107204,13 +107214,13 @@ ffd pFd xUh lqQ -aMb -mos -jBY -knZ -jBY -weS -uPJ +mEM +hHZ +avC +paA +avC +qSA +ycQ qXB ool dVb @@ -107461,12 +107471,12 @@ lnc auw lnc lqQ -uKv -mos -jBY -dCm -ikw -qVy +jbM +wRq +avC +nGu +dHP +ele hzJ uiB brA @@ -107718,12 +107728,12 @@ lnc obw rUo lqQ -fzr -iCJ -qgy -ldg -bYN -bYN +sCs +dSt +uhU +xeQ +hiX +tUh krt qXB psZ @@ -107760,7 +107770,7 @@ bJp wYB foB siz -pCL +lKp unL laf aJn @@ -107975,9 +107985,9 @@ lnc fDC qdy lqQ -wRF -jzC -oCO +jjZ +rZz +aPb xUE nIy fLo @@ -108184,7 +108194,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -108232,9 +108242,9 @@ lnc cUP mil lqQ -lbH -mie -pRM +lyA +rNv +nVM ivb ctg jAE @@ -109832,7 +109842,7 @@ xpY wRg aaa aaa -aav +aaa aaa aaa aaa @@ -111620,13 +111630,13 @@ xRc vIz pxC gAT -vNT +kuD eoU eoU eoU eoU eoU -aaf +lMJ ihW aaa aaa @@ -111877,13 +111887,13 @@ cyW keX hHt lRS -cxl +xtZ jYv wPZ isV isV eoU -aaf +lMJ aaa aaa aaa @@ -112134,13 +112144,13 @@ mvo oJL gyg lAh -aaf +lMJ gWn lpA rWi pMd eoU -aaf +lMJ aaa aaa aaa @@ -112397,7 +112407,7 @@ opZ fGR isV eoU -aaf +lMJ aaa aaa aaa @@ -112648,13 +112658,13 @@ vmx irz hGk tfs -aaf +lMJ eoU eoU eoU eoU eoU -aaf +lMJ lMJ lMJ lMJ @@ -112905,13 +112915,13 @@ nnD ndr sbl lRS -cxl +xtZ jYv qov ayg ayg eoU -aaf +lMJ aaa aaa lMJ @@ -113162,13 +113172,13 @@ qMm lMC smZ lAh -aaf +lMJ gWn bep drA kPU eoU -aaf +lMJ aaa aaa dxK @@ -113425,7 +113435,7 @@ xNQ mgh ayg eoU -aaf +lMJ aaa aaa lMJ @@ -113676,13 +113686,13 @@ qua clO hGk tfs -aaf +lMJ eoU eoU eoU eoU eoU -aaf +lMJ lMJ lMJ lMJ @@ -113939,7 +113949,7 @@ vEl sUo sUo eoU -aaf +lMJ aaa aaa aaa @@ -114100,7 +114110,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -114190,13 +114200,13 @@ qMm xcW smZ lAh -aaf +lMJ gWn eQs pfR wPB eoU -aaf +lMJ aaa aaa aaa @@ -114381,7 +114391,7 @@ aox lMJ aaa aaa -aav +aaa sxo qSh qSh @@ -114453,7 +114463,7 @@ gYw cLt sUo eoU -aaf +lMJ aaa aaa aaa @@ -114670,7 +114680,7 @@ aaa aYx dgf dgj -ack +aox fJy mhW uNl @@ -114704,13 +114714,13 @@ sEI agw uRI uwQ -aaf +lMJ eoU eoU eoU eoU eoU -aaf +lMJ aaa aaa aaa @@ -114961,13 +114971,13 @@ svj rhx ydM uwQ -aaf -aaf -aaf -aaf -aaf -aaf -aaf +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ aaa rrt aox @@ -115193,8 +115203,8 @@ gHI oAQ lMJ lMJ -aaf -ack +lMJ +aox qcd qcd qcd @@ -115409,7 +115419,7 @@ lMJ aaa aaa lMJ -aav +aaa sxo qSh qSh @@ -116722,7 +116732,7 @@ aaa aaa aaa lMJ -ack +aox aye dgv aye @@ -117243,7 +117253,7 @@ lMJ lMJ lMJ aaa -aav +aaa aaa lMJ oAQ @@ -118784,7 +118794,7 @@ aaa aaa iGq jFr -aaf +lMJ vDl lMJ lMJ @@ -120282,7 +120292,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -120306,7 +120316,7 @@ aaa aaa aaa aaa -aac +lKu aaa aaa aaa @@ -121103,7 +121113,7 @@ lAu bno qzs brO -mJI +lAu aaa aox aaa @@ -121614,9 +121624,9 @@ aox aox lMJ eUu -aaf +lMJ qzs -aaf +lMJ eUu lMJ aox @@ -121869,11 +121879,11 @@ lMJ gnh qjC qjC -oOW +hBH blw -osz +epM aQR -osz +epM qot aaa lMJ @@ -122126,12 +122136,12 @@ lMJ gnh pyP pyP -oOW +hBH gnh hzt jkG erP -oOW +hBH aaa aaa aaa @@ -122646,9 +122656,9 @@ fJt xXK oqe gZM -osz +epM gAu -osz +epM aaa aaa aaa @@ -122888,11 +122898,11 @@ anS lMJ aaa gAu -osz -osz -osz -osz -osz +epM +epM +epM +epM +epM wQw pAD fpd @@ -122906,7 +122916,7 @@ pAD gCy gCy pMV -oOW +hBH aaa aaa aaa @@ -123139,7 +123149,7 @@ aaa aaa aaa aaa -osz +epM gAu fHy gAu @@ -123164,18 +123174,18 @@ nWS moI bhf gZM -osz -osz -osz -osz -osz -osz -osz -osz +epM +epM +epM +epM +epM +epM +epM +epM gAu aqs gAu -osz +epM epM aaa aaa @@ -123691,7 +123701,7 @@ bLR ulA moI trE -oOW +hBH aaa aaa rrt @@ -123948,7 +123958,7 @@ anS lMJ kcU trE -oOW +hBH aaa aaa rrt @@ -124205,7 +124215,7 @@ anS anS bwH trE -oOW +hBH aaa aaa rrt @@ -124425,7 +124435,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa gfU @@ -124462,7 +124472,7 @@ lMJ lMJ kcU trE -oOW +hBH aaa aaa rrt @@ -124679,10 +124689,10 @@ aaa aaa rrt aaa -osz +epM rYs trE -oOW +hBH aaa aaa gfU @@ -124720,7 +124730,7 @@ aaa gnh trE rqK -osz +epM aaa rrt aaa @@ -124939,7 +124949,7 @@ gnh doI pqH bCZ -oOW +hBH aaa gfU gfU @@ -124978,7 +124988,7 @@ gnh jjy pqH hey -oOW +hBH rrt aaa aaa @@ -125196,7 +125206,7 @@ gnh jjy iQr bCZ -oOW +hBH aaa gfU aTV @@ -125235,7 +125245,7 @@ rYs jjy uKj bCZ -oOW +hBH rrt aaa aaa @@ -125710,7 +125720,7 @@ gnh jjy iQr bCZ -oOW +hBH aaa gfU aTV @@ -125749,7 +125759,7 @@ moI jjy uKj bCZ -oOW +hBH rrt aaa aaa @@ -125967,7 +125977,7 @@ gnh cZk qTS bCZ -oOW +hBH aaa gfU gfU @@ -126006,7 +126016,7 @@ gnh jjy qTS hBm -oOW +hBH rrt aaa aaa @@ -126224,7 +126234,7 @@ aaa nWS moI trE -oOW +hBH aaa aaa gfU @@ -126481,7 +126491,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa gfU @@ -126518,7 +126528,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa rrt @@ -126738,7 +126748,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa aaa @@ -126775,7 +126785,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa rrt @@ -126995,7 +127005,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa aaa @@ -127032,7 +127042,7 @@ aaa aaa gnh trE -oOW +hBH aaa aaa rrt @@ -127253,9 +127263,9 @@ aaa gnh trE gZM -osz -osz -osz +epM +epM +epM gfU aaa aaa @@ -127275,21 +127285,21 @@ gfU aaa aaa gfU -osz -osz -osz -osz -osz -osz +epM +epM +epM +epM +epM +epM gfU -osz -osz -osz -osz -osz +epM +epM +epM +epM +epM rYs trE -oOW +hBH aaa aaa rrt @@ -127515,11 +127525,11 @@ xgZ xgZ gNP gZM -osz -osz -osz -osz -osz +epM +epM +epM +epM +epM gfU aaa aaa @@ -127778,13 +127788,13 @@ xgZ xgZ xgZ tpn -oOW +hBH aaa aaa aaa gnh beV -oOW +hBH aaa aaa gnh @@ -128036,17 +128046,17 @@ nWS moI trE gZM -osz -osz -osz +epM +epM +epM rYs bhf gZM -osz -osz +epM +epM rYs trE -oOW +hBH aaa aaa aaa @@ -128303,7 +128313,7 @@ xgZ xgZ xgZ hBm -oOW +hBH aaa aaa aaa diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index 4544a794a1c3..511b9debe8c1 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -6789,6 +6789,13 @@ dir = 10 }, /area/station/maintenance/aft/lesser) +"bat" = ( +/obj/structure/hedge, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai_upload) "baD" = ( /obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ dir = 1 @@ -10744,6 +10751,14 @@ dir = 8 }, /area/station/commons/dorms) +"bFm" = ( +/obj/machinery/camera/motion/directional/west{ + c_tag = "Vault - External"; + use_power = 0; + name = "Vault External Camera" + }, +/turf/open/space/basic, +/area/space/nearstation) "bFr" = ( /obj/structure/railing{ dir = 8 @@ -12686,11 +12701,10 @@ /turf/open/floor/iron/dark/small, /area/station/engineering/atmos/project) "bUi" = ( -/obj/effect/turf_decal/siding/dark, /obj/effect/turf_decal/trimline/green/corner{ dir = 4 }, -/obj/structure/railing/corner/end/flip{ +/obj/effect/turf_decal/siding/dark{ dir = 8 }, /turf/open/floor/iron/dark/small, @@ -15016,6 +15030,9 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 }, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, /turf/open/floor/iron/dark/smooth_edge, /area/station/service/hydroponics/garden) "coi" = ( @@ -15947,6 +15964,9 @@ dir = 1 }, /obj/item/kirbyplants/organic, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) "cuH" = ( @@ -17462,23 +17482,13 @@ /turf/open/floor/plating, /area/station/maintenance/aft/greater) "cGb" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/siding/dark, -/obj/effect/turf_decal/trimline/green, -/obj/structure/railing, /obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/dark/small, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, /area/station/service/hydroponics/garden) "cGc" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green, -/obj/structure/railing{ - dir = 1 - }, -/turf/open/floor/iron/dark/small, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, /area/station/service/hydroponics/garden) "cGf" = ( /obj/effect/turf_decal/siding/wideplating/dark{ @@ -19210,6 +19220,15 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"cTd" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "cTe" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 4 @@ -32912,13 +32931,13 @@ /turf/open/floor/engine/hull/reinforced, /area/space/nearstation) "eUv" = ( -/obj/structure/sink/directional/west, /obj/structure/mirror/directional/east{ pixel_y = 4 }, /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 }, +/obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) "eUC" = ( @@ -38735,7 +38754,13 @@ /turf/open/floor/iron, /area/station/maintenance/fore/lesser) "fNa" = ( -/turf/open/floor/circuit/green, +/obj/effect/turf_decal/siding/dark{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 9 + }, +/turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "fNd" = ( /obj/structure/cable, @@ -42526,7 +42551,6 @@ /area/station/commons/toilet/restrooms) "gnZ" = ( /obj/effect/turf_decal/box/red, -/obj/machinery/holopad/secure, /obj/structure/cable, /turf/open/floor/iron/dark/small, /area/station/ai_monitored/turret_protected/ai_upload) @@ -55260,16 +55284,15 @@ }, /area/station/security/prison) "ihO" = ( -/obj/effect/turf_decal/siding/dark, /obj/effect/turf_decal/trimline/green/corner{ dir = 1 }, /obj/structure/cable, -/obj/structure/railing/corner/end{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, /turf/open/floor/iron/dark/small, /area/station/service/hydroponics/garden) "ihR" = ( @@ -59432,6 +59455,9 @@ }, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"iNm" = ( +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai_upload) "iNo" = ( /obj/effect/turf_decal/siding/thinplating_new/light{ dir = 4 @@ -60678,6 +60704,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark/corner, /turf/open/floor/iron/dark/herringbone, /area/station/service/hydroponics/garden) "iYk" = ( @@ -62159,8 +62186,8 @@ /turf/open/floor/iron/dark/textured, /area/station/security/prison/safe) "jjJ" = ( -/obj/structure/sink/kitchen/directional/east, /obj/structure/sign/departments/botany/directional/west, +/obj/structure/sink/directional/east, /turf/open/floor/iron/dark/herringbone, /area/station/service/hydroponics) "jjS" = ( @@ -64902,11 +64929,8 @@ dir = 1 }, /obj/effect/turf_decal/siding/green/corner, -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/storage/bag/plants, /turf/open/floor/iron/dark/small, /area/station/service/hydroponics/garden) "jEF" = ( @@ -65232,7 +65256,7 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 }, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/structure/cable, /obj/item/radio/intercom/directional/north, /obj/machinery/camera/autoname/directional/north, @@ -66212,7 +66236,7 @@ name = "lavaland"; shuttle_id = "pod_2_lavaland" }, -/turf/open/space, +/turf/open/space/basic, /area/space) "jPa" = ( /obj/structure/chair/office, @@ -66276,6 +66300,7 @@ /obj/machinery/power/apc/auto_name/directional/east, /obj/item/kirbyplants/random, /obj/structure/cable, +/obj/machinery/status_display/ai/directional/north, /turf/open/floor/circuit/red, /area/station/ai_monitored/turret_protected/ai_upload) "jPK" = ( @@ -74043,6 +74068,18 @@ /obj/machinery/vending/cytopro, /turf/open/floor/iron/dark, /area/station/science/cytology) +"kUb" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "kUd" = ( /obj/item/clothing/glasses/meson, /obj/item/clothing/glasses/meson, @@ -77550,7 +77587,6 @@ /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/project) "lxd" = ( -/obj/structure/sink/kitchen/directional/west, /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/herringbone, /area/station/service/hydroponics) @@ -80750,7 +80786,6 @@ /area/station/security/prison/work) "lYm" = ( /obj/structure/table, -/obj/item/storage/bag/plants/portaseeder, /obj/item/hatchet, /obj/effect/turf_decal/siding/green{ dir = 6 @@ -83435,6 +83470,9 @@ dir = 4 }, /obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/siding/dark{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) "muj" = ( @@ -88033,11 +88071,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"nea" = ( -/obj/structure/lattice/catwalk, -/obj/structure/marker_beacon/lime, -/turf/open/space, -/area/space/nearstation) "ned" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/south, @@ -88319,10 +88352,10 @@ /turf/open/floor/iron/dark/herringbone, /area/station/hallway/secondary/exit/departure_lounge) "nhl" = ( -/obj/effect/turf_decal/siding/dark/end{ +/obj/effect/turf_decal/siding/dark{ dir = 1 }, -/obj/effect/turf_decal/trimline/green/filled/end{ +/obj/effect/turf_decal/trimline/green/filled/warning{ dir = 1 }, /turf/open/floor/iron/dark, @@ -88338,6 +88371,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/service/bar) +"nhu" = ( +/obj/structure/hedge, +/obj/structure/sign/nanotrasen{ + pixel_y = 32 + }, +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai_upload) "nhw" = ( /obj/effect/turf_decal/siding/dark/corner{ dir = 1 @@ -98850,7 +98890,7 @@ dir = 1 }, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "oJw" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -102387,7 +102427,7 @@ "pgI" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "pgL" = ( /obj/structure/cable, @@ -111769,14 +111809,11 @@ /turf/open/floor/engine/hull/reinforced, /area/space/nearstation) "qBu" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, /obj/effect/turf_decal/trimline/green/corner, -/obj/structure/railing/corner/end{ +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/siding/dark{ dir = 8 }, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark/small, /area/station/service/hydroponics/garden) "qBD" = ( @@ -112931,10 +112968,7 @@ /turf/open/floor/engine/hull/reinforced, /area/space/nearstation) "qJr" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark/warning{ +/obj/effect/turf_decal/siding/dark/corner{ dir = 1 }, /turf/open/floor/iron/dark/smooth_edge, @@ -115174,19 +115208,8 @@ /area/station/commons/dorms) "rbI" = ( /obj/effect/turf_decal/siding/dark, -/obj/effect/turf_decal/siding/dark/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/dark/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/green/filled/corner{ - dir = 1 - }, /obj/structure/cable, +/obj/machinery/holopad/secure, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "rbJ" = ( @@ -115771,14 +115794,11 @@ /area/station/medical/morgue) "rge" = ( /obj/structure/cable, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark/warning{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 4 + }, /turf/open/floor/iron/dark/smooth_edge, /area/station/service/hydroponics/garden) "rgh" = ( @@ -117087,17 +117107,10 @@ /turf/open/floor/iron/dark/smooth_edge, /area/station/security/holding_cell) "rpI" = ( -/obj/machinery/hydroponics/constructable, /obj/machinery/status_display/evac/directional/east, -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green, -/obj/structure/railing{ - dir = 1 - }, /obj/machinery/light/directional/east, -/turf/open/floor/iron/dark/small, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, /area/station/service/hydroponics/garden) "rpO" = ( /obj/effect/turf_decal/bot, @@ -117852,12 +117865,9 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/fore) "rvl" = ( -/obj/machinery/hydroponics/constructable, -/obj/effect/turf_decal/siding/dark, -/obj/effect/turf_decal/trimline/green, -/obj/structure/railing, /obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark/small, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, /area/station/service/hydroponics/garden) "rvu" = ( /obj/item/kirbyplants/organic/plant10, @@ -120509,10 +120519,6 @@ }, /turf/open/floor/circuit/telecomms/server, /area/station/science/server) -"rQa" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "rQb" = ( /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/iron/dark, @@ -124439,13 +124445,11 @@ /area/station/engineering/atmos/pumproom) "svK" = ( /obj/structure/table, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/grapes, -/obj/item/food/grown/banana, /obj/effect/turf_decal/siding/green{ dir = 9 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/random/food_or_drink/plant_produce, /turf/open/floor/iron/dark/small, /area/station/service/hydroponics/garden) "svL" = ( @@ -125143,6 +125147,7 @@ "sCe" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/tile/green/half/contrasted, +/obj/effect/spawner/random/food_or_drink/seed_flowers, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) "sCf" = ( @@ -129060,13 +129065,13 @@ /area/station/maintenance/port/aft) "tgE" = ( /obj/effect/turf_decal/siding/dark, -/obj/effect/turf_decal/siding/dark{ - dir = 1 +/obj/structure/cable, +/obj/effect/turf_decal/siding/dark/corner{ + dir = 4 }, -/obj/effect/turf_decal/trimline/green/filled/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 4 }, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "tgF" = ( @@ -129455,6 +129460,7 @@ network = list("aiupload") }, /obj/machinery/firealarm/directional/west, +/obj/machinery/status_display/ai/directional/north, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) "tjx" = ( @@ -132252,6 +132258,9 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured_edge, /area/station/security/prison) +"tDF" = ( +/turf/open/floor/circuit/red, +/area/station/ai_monitored/turret_protected/ai_upload) "tDJ" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -132386,11 +132395,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/medical/morgue) -"tEn" = ( -/obj/structure/hedge, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/circuit/red, -/area/station/ai_monitored/turret_protected/ai_upload) "tEp" = ( /obj/structure/filingcabinet/chestdrawer, /obj/item/radio/intercom/directional/north, @@ -136389,7 +136393,7 @@ /turf/open/floor/iron/dark/herringbone, /area/station/ai_monitored/aisat/exterior) "ujm" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/siding/wood{ dir = 9 }, @@ -139564,10 +139568,10 @@ /area/station/maintenance/starboard/fore) "uKJ" = ( /obj/effect/turf_decal/siding/dark, -/obj/effect/turf_decal/siding/dark{ +/obj/effect/turf_decal/siding/dark/corner{ dir = 1 }, -/obj/effect/turf_decal/trimline/green/filled/warning{ +/obj/effect/turf_decal/trimline/green/filled/corner{ dir = 1 }, /turf/open/floor/iron/dark, @@ -145355,11 +145359,6 @@ /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/dark, /area/station/security/checkpoint/supply) -"vzP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/green/visible, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/space/nearstation) "vzQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -150395,10 +150394,10 @@ /turf/open/floor/wood/large, /area/station/service/library/upper) "woC" = ( -/obj/structure/hedge, /obj/machinery/flasher/directional/north{ id = "AI" }, +/obj/machinery/porta_turret/ai, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) "woH" = ( @@ -154333,18 +154332,15 @@ /turf/open/floor/iron/white, /area/station/hallway/primary/fore) "wVQ" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 1 - }, /obj/effect/turf_decal/trimline/green/corner{ dir = 8 }, /obj/structure/cable, -/obj/structure/railing/corner/end/flip{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, /turf/open/floor/iron/dark/small, /area/station/service/hydroponics/garden) "wVR" = ( @@ -154941,6 +154937,16 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/textured_large, /area/station/medical/morgue) +"xaS" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark/corner, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics/garden) "xba" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 1 @@ -159534,13 +159540,6 @@ /obj/structure/lattice/catwalk, /turf/open/floor/engine/hull/reinforced, /area/space/nearstation) -"xKJ" = ( -/obj/structure/lattice, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/space, -/area/space/nearstation) "xKK" = ( /obj/machinery/computer/teleporter, /obj/machinery/firealarm/directional/west, @@ -161806,6 +161805,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark, /area/station/service/hydroponics/garden) "ycD" = ( @@ -162151,11 +162151,6 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"yfi" = ( -/obj/structure/hedge, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai_upload) "yfj" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 10 @@ -180756,7 +180751,7 @@ gym gym gym gym -nea +cJz gJT xzb ejn @@ -181784,7 +181779,7 @@ gym gym gym gym -nea +cJz gJT xzb ejn @@ -182812,7 +182807,7 @@ gym gym gym gym -nea +cJz gJT xzb ejn @@ -183840,7 +183835,7 @@ gym gym gym gym -nea +cJz gJT xzb ejn @@ -198071,13 +198066,13 @@ gih emX upO mSY -xKJ +acT trC trC trC trC trC -rQa +gJT ihJ gym gJT @@ -198328,13 +198323,13 @@ xyz mYR cKX aVG -vzP +sXb tbk qGg oxC oxC trC -rQa +gJT dew gJT dew @@ -198585,13 +198580,13 @@ jVY bSb jct jvZ -rQa +gJT cYz eBC sof wDA trC -rQa +gJT ihJ ykP dew @@ -198848,7 +198843,7 @@ mHk qOc oxC trC -rQa +gJT dew gJT dew @@ -199099,7 +199094,7 @@ aYL cWS oUY kpN -rQa +gJT trC trC trC @@ -199356,13 +199351,13 @@ ykv bKG iKr aVG -vzP +sXb tbk mrN fsx fsx trC -rQa +gJT dew gJT dew @@ -199613,13 +199608,13 @@ jSo eMn dmH jvZ -rQa +gJT cYz nrh wJx paH trC -rQa +gJT ihJ ykP dew @@ -199876,7 +199871,7 @@ eNX bLG fsx trC -rQa +gJT dew gJT dew @@ -200127,7 +200122,7 @@ uLW tYl oUY kpN -rQa +gJT trC trC trC @@ -200390,7 +200385,7 @@ gGE uCR uCR trC -rQa +gJT dew gJT dew @@ -200641,13 +200636,13 @@ rZX aab dmH jvZ -rQa +gJT cYz fEq kOH acG trC -rQa +gJT ihJ ykP dew @@ -200904,7 +200899,7 @@ ocT gKt uCR trC -rQa +gJT dew gJT dew @@ -201155,13 +201150,13 @@ cDb sBP eTX iwh -rQa +gJT trC trC trC trC trC -rQa +gJT ihJ gym gJT @@ -201412,11 +201407,11 @@ lmu yjn caH iwh -rQa +gJT ykP -rQa gJT -rQa +gJT +gJT ykP gJT gJT @@ -214183,7 +214178,7 @@ gym gym gym gym -gym +bFm gym gym gym @@ -214444,7 +214439,7 @@ gym gym gym gym -irx +gJT irx irx irx @@ -214700,9 +214695,9 @@ gym gym gym gym -gym irx -yfi +irx +irx tjv gpL rRA @@ -214958,8 +214953,8 @@ gym gym gym irx -irx -krS +bat +iNm lJd kLP czQ @@ -215730,7 +215725,7 @@ gym gym irx woC -fNa +cTd tgE rop hNt @@ -215986,8 +215981,8 @@ gym gym gym irx -irx -amU +nhu +tDF kBX dFl cte @@ -216242,9 +216237,9 @@ gym gym gym gym -gym irx -tEn +irx +irx jPI pWA egi @@ -216500,7 +216495,7 @@ gym gym gym gym -irx +gym irx irx irx @@ -266381,7 +266376,7 @@ rqD mpE baF gkm -ycv +kUb qBu bUi qJr @@ -266638,7 +266633,7 @@ rqD mpE odb sCe -ycv +xaS wVQ ihO rge diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm index 743b95f9e6b6..0dbf5d65af1f 100644 --- a/_maps/map_files/debug/runtimestation.dmm +++ b/_maps/map_files/debug/runtimestation.dmm @@ -4,10 +4,10 @@ /area/space) "ab" = ( /obj/structure/lattice, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ac" = ( -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ad" = ( /obj/effect/turf_decal/stripes/line, @@ -17,7 +17,7 @@ "ae" = ( /obj/structure/lattice, /obj/structure/grille, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "af" = ( /obj/effect/turf_decal/stripes/line{ @@ -48,12 +48,12 @@ /area/station/engineering/atmos) "an" = ( /obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ao" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "ap" = ( /obj/structure/closet/secure_closet/engineering_electrical{ @@ -877,9 +877,6 @@ }, /turf/open/space/basic, /area/space) -"fg" = ( -/turf/open/space, -/area/space) "fh" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -2534,7 +2531,7 @@ /obj/machinery/atmospherics/components/unary/passive_vent/layer2{ dir = 8 }, -/turf/open/space, +/turf/open/space/basic, /area/space/nearstation) "TY" = ( /obj/machinery/button/door/directional/south{ @@ -6682,7 +6679,7 @@ dZ cN Tt bL -fg +aa aa aa aa @@ -6774,7 +6771,7 @@ dL cN dd bL -fg +aa aa aa aa @@ -6866,7 +6863,7 @@ dL cN Tt bL -fg +aa aa aa aa @@ -6958,7 +6955,7 @@ dL cN Tt Rb -fg +aa aa aa aa @@ -7050,7 +7047,7 @@ dL cN Tt Rb -fg +aa aa aa bs @@ -7142,7 +7139,7 @@ cZ cN Tt Rb -fg +aa aa aa aa @@ -8766,9 +8763,9 @@ aa aa aa aa -fg -fg -fg +aa +aa +aa aI af aX diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 611df4369445..3c365410c38a 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2,9 +2,6 @@ "aa" = ( /turf/open/space/basic, /area/space) -"ad" = ( -/turf/open/space, -/area/space) "ak" = ( /obj/item/kirbyplants/organic/plant21, /obj/effect/turf_decal/tile/red/anticorner/contrasted{ @@ -979,7 +976,7 @@ /area/centcom/central_command_areas/evacuation/ship) "eq" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/bot, /obj/machinery/status_display/evac/directional/east, /turf/open/floor/iron, @@ -1122,7 +1119,7 @@ /area/centcom/central_command_areas/evacuation/ship) "eY" = ( /obj/machinery/airalarm/directional/east, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) @@ -2118,7 +2115,7 @@ /area/centcom/central_command_areas/supply) "ju" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) @@ -2947,7 +2944,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) "nB" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) @@ -3571,7 +3568,7 @@ /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin/storage) "qn" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/airalarm/directional/south, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -4545,7 +4542,7 @@ shuttle_id = "emergency_away"; width = 50 }, -/turf/open/space, +/turf/open/space/basic, /area/space) "uA" = ( /obj/structure/chair{ @@ -5548,7 +5545,7 @@ shuttle_id = "cargo_away"; width = 20 }, -/turf/open/space, +/turf/open/space/basic, /area/space) "yW" = ( /obj/item/kirbyplants/organic/plant21, @@ -7466,7 +7463,7 @@ shuttle_id = "ferry_away"; width = 21 }, -/turf/open/space, +/turf/open/space/basic, /area/space) "Ip" = ( /obj/structure/chair/stool/bar/directional/east, @@ -9663,7 +9660,7 @@ /turf/open/floor/iron/dark, /area/centcom/tdome/observation) "Tq" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/status_display/evac/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -10526,7 +10523,7 @@ /turf/open/floor/wood, /area/centcom/central_command_areas/admin) "XA" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) @@ -65296,7 +65293,7 @@ aa aa aa aa -ad +aa aa aa aa diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index f1edf30bef3b..b15e5cb701f9 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -2238,14 +2238,6 @@ }, /turf/open/floor/wood/large, /area/station/service/library) -"ain" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/commons/dorms) "aiw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -2328,6 +2320,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/exit) +"ajj" = ( +/obj/machinery/power/smes{ + charge = 10000 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "ajl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -2625,15 +2625,24 @@ /obj/machinery/duct, /turf/open/floor/iron/freezer, /area/station/commons/toilet) -"amd" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 +"amh" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Tunnel Access" }, -/obj/effect/turf_decal/siding/wideplating/corner, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/cargo/miningdock/oresilo) +/turf/open/floor/iron, +/area/station/maintenance/tram/left) "amq" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/door/airlock/external, @@ -2880,12 +2889,6 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/command/teleporter) -"aow" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "aoB" = ( /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron, @@ -3072,6 +3075,20 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"aqC" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/item/storage/toolbox/fishing, +/obj/item/storage/toolbox/fishing, +/obj/item/fishing_rod, +/obj/item/fishing_rod, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "aqX" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/item/radio/intercom/directional/south, @@ -3178,22 +3195,6 @@ }, /turf/open/floor/glass/reinforced, /area/station/science/genetics) -"asq" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell C"; - id = "Isolation_C" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "asu" = ( /turf/closed/wall/rock/porous, /area/station/science/explab) @@ -3741,11 +3742,6 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/iron, /area/station/commons/storage/art) -"axE" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/turf_decal/trimline/neutral/warning, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "axG" = ( /obj/effect/turf_decal/bot, /obj/effect/spawner/random/structure/closet_empty/crate, @@ -4468,6 +4464,11 @@ }, /turf/open/floor/engine, /area/station/science/explab) +"aFl" = ( +/obj/machinery/firealarm/directional/north, +/obj/item/radio/intercom/prison/directional/south, +/turf/open/floor/iron/freezer, +/area/station/security/prison) "aFs" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/effect/turf_decal/trimline/red/filled/corner{ @@ -4933,14 +4934,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/showroomfloor, /area/station/security/lockers) -"aJl" = ( -/obj/machinery/power/smes{ - charge = 10000 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "aJC" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -5002,6 +4995,14 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"aKx" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/service/theater) "aKy" = ( /obj/machinery/rnd/destructive_analyzer, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -5555,6 +5556,22 @@ }, /turf/open/floor/wood/tile, /area/station/service/chapel/office) +"aPg" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Isolation Cell C"; + id = "Isolation_C" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "aPk" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -5707,6 +5724,14 @@ }, /turf/open/floor/iron/dark, /area/station/medical/break_room) +"aQF" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/south, +/obj/structure/flora/bush/flowers_yw/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "aQH" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/closet/l3closet/virology, @@ -5965,11 +5990,6 @@ /obj/machinery/photobooth, /turf/open/floor/iron/grimy, /area/station/service/library/lounge) -"aUh" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "aUi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6183,6 +6203,19 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"bal" = ( +/obj/machinery/seed_extractor, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = -8; + pixel_y = 23 + }, +/obj/effect/spawner/random/food_or_drink/seed_flowers, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "baK" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -6190,6 +6223,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"baQ" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medical Freezer" + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/obj/structure/cable, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/plasticflaps/kitchen, +/turf/open/floor/iron/freezer, +/area/station/medical/coldroom) "bbj" = ( /turf/closed/wall, /area/station/engineering/break_room) @@ -6270,14 +6318,6 @@ /obj/effect/turf_decal/trimline/yellow/corner, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"bcS" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/machinery/vending/wallmed/directional/north, -/turf/open/floor/iron, -/area/station/engineering/break_room) "bcV" = ( /obj/effect/turf_decal/trimline/white/filled/corner{ dir = 1 @@ -6328,6 +6368,9 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, /turf/closed/wall/r_wall, /area/station/maintenance/starboard/lesser) +"beN" = ( +/turf/open/water/no_planet_atmos/deep, +/area/station/service/hydroponics/garden) "beT" = ( /obj/effect/turf_decal/stripes/white/full, /obj/machinery/door/firedoor, @@ -6418,6 +6461,16 @@ /obj/structure/sign/poster/official/get_your_legs/directional/south, /turf/open/floor/iron, /area/station/security/prison) +"bgE" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/obj/effect/turf_decal/trimline/neutral/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "bgH" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/white, @@ -6443,6 +6496,15 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) +"bha" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters{ + id = "cargowarehouse"; + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "bhr" = ( /turf/closed/wall/rock/porous, /area/station/security/prison/workout) @@ -6708,13 +6770,6 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/station/service/lawoffice) -"bns" = ( -/obj/effect/turf_decal/siding/thinplating/dark, -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/vending/wallmed/directional/south, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/exit/departure_lounge) "bnY" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -6875,6 +6930,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/commons/lounge) +"bre" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/glass/reinforced, +/area/station/science/research) "brf" = ( /obj/structure/table, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -7053,12 +7115,6 @@ /obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/white, /area/station/medical/virology) -"bvb" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/deck, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron/dark, -/area/station/commons/lounge) "bvk" = ( /obj/effect/landmark/blobstart, /obj/effect/turf_decal/tile/bar/opposingcorners, @@ -7531,6 +7587,12 @@ dir = 8 }, /area/station/command/teleporter) +"bEy" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) "bEz" = ( /obj/structure/closet/crate/goldcrate, /obj/effect/turf_decal/bot_white/right, @@ -7770,17 +7832,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/library) -"bIj" = ( -/obj/machinery/door/airlock{ - name = "Theatre Backstage" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/station/service/theater) "bIm" = ( /obj/machinery/door/airlock{ name = "Barber Storage" @@ -8357,6 +8408,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"bQb" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Medical Freezer" + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/structure/plasticflaps/kitchen, +/turf/open/floor/iron/freezer, +/area/station/medical/coldroom) "bQt" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -8501,6 +8564,17 @@ /obj/effect/spawner/random/bureaucracy/folder, /turf/open/floor/carpet, /area/station/commons/vacant_room/office) +"bUH" = ( +/obj/machinery/camera/directional/west{ + network = list("ss13","Security","prison"); + c_tag = "Security - Rec Room South" + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/security/prison/workout) "bUI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, /obj/effect/turf_decal/stripes/line{ @@ -8773,19 +8847,27 @@ /obj/machinery/light/small/dim/directional/east, /turf/open/floor/iron/freezer, /area/station/commons/toilet) +"bYh" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/security/glass{ + name = "Isolation Cell A"; + id = "Isolation_A" + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "bYA" = ( /obj/structure/table, /obj/item/storage/fancy/donut_box, /turf/open/floor/iron, /area/station/security/office) -"bYC" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/stairs/medium, -/area/station/commons/dorms) "bYD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8890,14 +8972,6 @@ /obj/structure/cable, /turf/open/floor/glass/reinforced, /area/station/ai_monitored/turret_protected/aisat/hallway) -"bZG" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/obj/effect/turf_decal/trimline/neutral/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/corner, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "bZI" = ( /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Secure Morgue Trays"; @@ -8982,13 +9056,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"caZ" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/security/prison) "cbc" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor, @@ -9499,13 +9566,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/security/execution/education) -"cjF" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/security/prison) "cjG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -10129,19 +10189,6 @@ /obj/item/pillow/random, /turf/open/floor/wood, /area/station/commons/dorms) -"cvp" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/camera{ - dir = 9; - network = list("ss13","minisat"); - c_tag = "Secure - AI Minisat Internal Power Access" - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/maint) "cvz" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -10166,14 +10213,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, /turf/open/floor/iron/dark, /area/station/science/xenobiology) -"cwm" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/turf/open/floor/iron/dark/herringbone, -/area/station/commons/vacant_room) "cwr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -10513,8 +10552,6 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation) "cAK" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, /obj/machinery/light/directional/north, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) @@ -10566,6 +10603,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison) +"cCZ" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/door/airlock/vault{ + name = "Bank of Cargo" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/mapping_helpers/airlock/access/all/supply/vault, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/miningdock/oresilo) "cDa" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -10796,15 +10850,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) -"cGm" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/structure/water_source/puddle, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "cGy" = ( /obj/structure/chair/stool/directional/north, /obj/structure/disposalpipe/segment{ @@ -10885,8 +10930,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, /obj/structure/cable, +/obj/machinery/atmospherics/components/binary/pump/off/dark{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) "cHZ" = ( @@ -12123,6 +12170,16 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/dark, /area/station/commons/lounge) +"ddB" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "ddM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -12190,6 +12247,14 @@ }, /turf/open/floor/plating, /area/station/medical/storage) +"deu" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/iron, +/area/station/commons/fitness) "dez" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -12528,22 +12593,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/office) -"dlv" = ( -/obj/structure/easel, -/obj/item/canvas/twentythree_twentythree, -/obj/item/canvas/twentythree_twentythree, -/obj/item/canvas, -/obj/item/canvas, -/obj/item/canvas, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/commons/storage/art) "dlL" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -12957,14 +13006,6 @@ "dsF" = ( /turf/open/floor/iron/smooth, /area/station/command/gateway) -"dsG" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 - }, -/obj/machinery/light/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "dsH" = ( /obj/structure/closet/secure_closet/atmospherics, /obj/effect/turf_decal/stripes/line{ @@ -13002,10 +13043,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/office) -"dtn" = ( -/obj/machinery/status_display/ai/directional/west, -/turf/open/floor/iron/smooth, -/area/station/command/gateway) "dtu" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -13132,6 +13169,13 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/security/prison/workout) +"dwj" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/machinery/vending/wallmed/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "dwk" = ( /obj/effect/mapping_helpers/airlock/access/all/service/general, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -13328,6 +13372,22 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/fitness) +"dzH" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Isolation Cell B"; + id = "Isolation_B" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "dzY" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -13416,27 +13476,13 @@ }, /turf/open/floor/iron, /area/station/engineering/break_room) +"dBc" = ( +/turf/open/water/no_planet_atmos, +/area/station/service/hydroponics/garden) "dBj" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/foyer) -"dBz" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/door/airlock/vault{ - name = "Bank of Cargo" - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/supply/vault, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/cargo/miningdock/oresilo) "dBM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/white/line{ @@ -14810,19 +14856,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"eam" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Prison Dorm 6"; - id_tag = "prisondorm" - }, -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/prison/safe) "eaq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -14910,6 +14943,22 @@ /obj/structure/cable, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) +"ebu" = ( +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/reagent_containers/spray/plantbgone, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 9 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/reagent_containers/cup/bottle/nutrient/rh, +/obj/item/reagent_containers/cup/watering_can, +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "ebL" = ( /obj/machinery/atmospherics/pipe/multiz/supply/visible/layer4{ dir = 4 @@ -14997,18 +15046,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/cafeteria, /area/station/security/prison/mess) -"edu" = ( -/obj/machinery/seed_extractor, -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = -8; - pixel_y = 23 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "edC" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -15539,24 +15576,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"epe" = ( -/obj/machinery/door/airlock/command{ - name = "Head of Personnel" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/hop, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - name = "Privacy Shutters"; - id = "hop" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hop) "epB" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 @@ -15595,14 +15614,6 @@ /obj/effect/landmark/navigate_destination/tcomms, /turf/open/floor/iron, /area/station/tcommsat/computer) -"eqF" = ( -/obj/structure/closet/wardrobe/white, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/cafeteria, -/area/station/commons/dorms/laundry) "eqK" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -16017,22 +16028,6 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron, /area/station/maintenance/port/central) -"eyc" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell B"; - id = "Isolation_B" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "eye" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -16349,6 +16344,15 @@ /obj/effect/spawner/random/decoration/lavalamp, /turf/open/floor/iron/dark, /area/station/service/bar) +"eDk" = ( +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "eDG" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -16662,6 +16666,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/execution/transfer) +"eLH" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/poddoor/shutters{ + id = "cargowarehouse"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "eMu" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -16847,19 +16863,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) -"ePd" = ( -/obj/structure/sink{ - pixel_y = 15 - }, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 5 - }, -/obj/machinery/light_switch/directional/east{ - pixel_x = 23; - pixel_y = -8 - }, -/turf/open/floor/iron/dark, -/area/station/service/hydroponics) "ePi" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, @@ -16980,6 +16983,17 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/garden) +"eRH" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 5 + }, +/obj/machinery/light_switch/directional/east{ + pixel_x = 23; + pixel_y = -8 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/dark, +/area/station/service/hydroponics) "eRI" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -17014,6 +17028,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"eSs" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "eSv" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 1 @@ -17265,23 +17287,6 @@ /obj/effect/turf_decal/trimline/white/warning, /turf/open/floor/iron, /area/station/maintenance/tram/left) -"eWl" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "HoP Queue Shutters"; - id = "hopqueueendbottom" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/loading_area/white{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hop) "eWr" = ( /obj/machinery/shower/directional/north, /turf/open/floor/iron/freezer, @@ -17305,6 +17310,10 @@ /obj/effect/mapping_helpers/airlock/red_alert_access, /turf/open/floor/iron/dark, /area/station/medical/storage) +"eWw" = ( +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/smooth, +/area/station/command/gateway) "eWx" = ( /obj/machinery/duct, /obj/effect/turf_decal/trimline/neutral/filled/line, @@ -17447,6 +17456,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/port/central) +"eZd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/warehouse) "eZE" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -17473,16 +17491,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron, /area/station/maintenance/tram/right) -"eZS" = ( -/obj/machinery/door/airlock/grunge{ - name = "Entertainment Center" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/commons/fitness/recreation/entertainment) "fad" = ( /obj/machinery/holopad, /turf/open/floor/iron/cafeteria, @@ -17869,18 +17877,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/tram/left) -"fii" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/commons/dorms) "fio" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 @@ -17907,6 +17903,14 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"fiS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Public Garden Maintenance Hatch" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron/smooth, +/area/station/service/hydroponics/garden) "fiW" = ( /turf/open/openspace, /area/station/hallway/secondary/exit) @@ -17946,15 +17950,12 @@ /turf/open/floor/iron, /area/station/maintenance/tram/left) "fjA" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, +/obj/machinery/door/window/elevator/right/directional/west{ + transport_linked_id = "tram_xeno_lift" + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "fjN" = ( @@ -18128,6 +18129,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/tram/right) +"fmG" = ( +/obj/machinery/light/directional/south, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "fmJ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -18146,13 +18152,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"fmX" = ( -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "fnb" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -18307,6 +18306,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) +"fpj" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/closet/crate/bin, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/food_packaging, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/iron/dark/herringbone, +/area/station/commons/vacant_room) "fpQ" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /obj/structure/cable, @@ -18833,6 +18843,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"fAP" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/photocopier/prebuilt, +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/machinery/firealarm/directional/west{ + pixel_y = -4 + }, +/obj/machinery/light_switch/directional/west{ + pixel_x = -27; + pixel_y = 5 + }, +/turf/open/floor/iron, +/area/station/cargo/sorting) "fAQ" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 @@ -18948,14 +18971,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"fEf" = ( -/obj/structure/table/wood, -/obj/item/papercutter{ - pixel_x = -4 - }, -/obj/item/paper/fluff/ids_for_dummies, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hop) "fEp" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -18999,6 +19014,19 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron/dark/herringbone, /area/station/commons/vacant_room) +"fEV" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/camera{ + dir = 9; + network = list("ss13","minisat"); + c_tag = "Secure - AI Minisat Internal Power Access" + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/maint) "fEZ" = ( /obj/structure/noticeboard/directional/north, /obj/item/fish_tank/lawyer, @@ -19160,25 +19188,6 @@ }, /turf/open/floor/engine/air, /area/station/engineering/atmos) -"fHD" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/right/directional/south{ - name = "Access Queue" - }, -/obj/machinery/door/window/brigdoor/left/directional/north{ - name = "Access Desk"; - req_access = list("hop") - }, -/obj/structure/desk_bell{ - pixel_x = -7 - }, -/obj/machinery/door/poddoor/preopen{ - name = "Privacy Shutters"; - id = "hop" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/command/heads_quarters/hop) "fHR" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -19516,24 +19525,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/sorting) -"fNb" = ( -/obj/effect/turf_decal/trimline/red/filled/corner, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/machinery/button/flasher{ - pixel_x = 9; - pixel_y = 27; - id = "permafrontdoor"; - req_access = list("brig") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/north{ - pixel_x = -3 - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "fNx" = ( /obj/structure/urinal/directional/north, /obj/effect/landmark/start/hangover, @@ -19663,16 +19654,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"fQv" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/item/reagent_containers/cup/bottle/multiver, -/obj/item/reagent_containers/cup/bottle/epinephrine, -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron/white, -/area/station/security/medical) "fQF" = ( /obj/machinery/newscaster/directional/east, /obj/structure/disposalpipe/segment{ @@ -19799,14 +19780,6 @@ "fSr" = ( /turf/closed/wall, /area/station/security/checkpoint/arrivals) -"fSM" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/obj/item/radio/intercom/directional/west, -/obj/structure/tank_holder/extinguisher, -/turf/open/floor/iron, -/area/station/cargo/office) "fSZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, @@ -19825,6 +19798,20 @@ }, /turf/open/floor/wood, /area/station/service/library) +"fTP" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/clipboard, +/obj/item/pen/red, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/office) "fUh" = ( /obj/structure/chair, /obj/structure/sign/poster/official/random/directional/north, @@ -20339,6 +20326,13 @@ /obj/machinery/air_sensor/nitrous_tank, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"gdz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "gdC" = ( /obj/machinery/door/airlock{ name = "Private Stall 2"; @@ -20449,6 +20443,19 @@ /obj/structure/fluff/iced_abductor, /turf/open/misc/asteroid/airless, /area/station/asteroid) +"gfY" = ( +/obj/item/experi_scanner{ + pixel_x = 5 + }, +/obj/item/experi_scanner, +/obj/item/experi_scanner{ + pixel_x = -5 + }, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/vending/wallmed/directional/east, +/turf/open/floor/iron/white, +/area/station/science/research) "gga" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Server Room" @@ -20458,15 +20465,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/tcommsat/computer) -"ggl" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/command/gateway) "ggm" = ( /obj/effect/turf_decal/delivery, /obj/machinery/atmospherics/components/trinary/filter{ @@ -20522,18 +20520,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/port/central) -"ggQ" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - network = list("ss13","rd"); - c_tag = "Science - Entrance Airlock" - }, -/obj/machinery/light/cold/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/white, -/area/station/science/research) "ggV" = ( /obj/structure/table/wood, /obj/item/food/grown/poppy{ @@ -20762,12 +20748,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"gkR" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "gkU" = ( /obj/effect/turf_decal/bot, /obj/machinery/power/shieldwallgen, @@ -20904,6 +20884,10 @@ /obj/structure/destructible/cult/item_dispenser/archives/library, /turf/open/floor/engine/cult, /area/station/service/library) +"gmK" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/security/brig) "gmN" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -21388,6 +21372,22 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"gwT" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/machinery/door/airlock/security/glass{ + name = "Isolation Cell D"; + id = "Isolation_D" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "gwY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, @@ -21514,18 +21514,6 @@ "gzw" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/office) -"gzI" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medical Freezer" - }, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/obj/structure/plasticflaps/kitchen, -/turf/open/floor/iron/freezer, -/area/station/medical/coldroom) "gzL" = ( /obj/structure/cable, /turf/open/floor/iron/white, @@ -21537,6 +21525,13 @@ /obj/structure/closet/secure_closet/hydroponics, /turf/open/floor/iron/dark, /area/station/service/hydroponics) +"gzU" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Recharge Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/minisat, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "gzY" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 @@ -22062,6 +22057,14 @@ }, /turf/open/floor/iron, /area/station/security/prison/garden) +"gJW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "gJY" = ( /obj/structure/railing{ dir = 8 @@ -22215,10 +22218,18 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/central/lesser) "gNr" = ( -/obj/machinery/processor/slime, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, +/obj/structure/table/glass, +/obj/item/storage/box/monkeycubes{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = 6; + pixel_y = 4 + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "gNy" = ( @@ -22252,6 +22263,13 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"gNT" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/security/prison) "gNX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -22625,6 +22643,16 @@ }, /turf/open/floor/glass/reinforced, /area/station/ai_monitored/turret_protected/aisat/hallway) +"gVu" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/structure/table, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/brig) "gVI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, @@ -22749,6 +22777,15 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"gXK" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/cargo/miningdock/oresilo) "gYd" = ( /obj/machinery/rnd/production/techfab/department/security, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -22776,6 +22813,14 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"gYq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "gYw" = ( /obj/machinery/power/shieldwallgen/xenobiologyaccess, /obj/structure/cable, @@ -22910,21 +22955,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/primary) -"hbF" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Security Post - Cargo"; - id_tag = "crgdoor" - }, -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/corner, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/checkpoint/supply) "hbQ" = ( /obj/machinery/camera/directional/north{ c_tag = "Civilian - Holodeck Controls" @@ -23143,25 +23173,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"hgo" = ( -/obj/structure/table, -/obj/machinery/status_display/supply{ - pixel_y = 32 - }, -/obj/machinery/camera{ - dir = 9; - network = list("ss13","cargo"); - c_tag = "Cargo - Main Office" - }, -/obj/item/multitool, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/light/directional/north, -/turf/open/floor/iron, -/area/station/cargo/office) "hgG" = ( /obj/structure/sign/warning/secure_area/directional/north, /obj/structure/disposalpipe/segment{ @@ -23351,14 +23362,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/tram/left) -"hjg" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/firealarm/directional/north, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/dark/herringbone, -/area/station/commons/vacant_room) "hjo" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 8 @@ -23639,12 +23642,16 @@ /turf/open/floor/iron/white, /area/station/medical/surgery/aft) "hox" = ( -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"hoA" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/commons/vacant_room) "hoB" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -23942,6 +23949,16 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"hwu" = ( +/obj/structure/railing, +/obj/machinery/door/firedoor/border_only, +/obj/effect/landmark/event_spawn, +/obj/machinery/light/cold/directional/north, +/obj/machinery/firealarm/directional/north{ + pixel_x = -6 + }, +/turf/open/floor/glass/reinforced, +/area/station/science/research) "hwv" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 @@ -23974,17 +23991,6 @@ dir = 1 }, /area/station/hallway/secondary/service) -"hxe" = ( -/obj/structure/table, -/obj/machinery/status_display/ai/directional/south, -/obj/machinery/camera{ - dir = 10; - network = list("ss13","minisat"); - c_tag = "Secure - AI Minisat Entry" - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "hxL" = ( /obj/structure/transport/linear/public, /obj/effect/turf_decal/caution/stand_clear/red, @@ -24015,6 +24021,12 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"hzl" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/escapepodbay) "hzC" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -24031,15 +24043,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"hzR" = ( -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "hAv" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/l3closet/scientist, @@ -24358,6 +24361,15 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"hFY" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue{ + pixel_y = 2 + }, +/obj/item/pen, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "hGd" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 @@ -24432,6 +24444,21 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"hHA" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + name = "HoP Queue Shutters"; + id = "hopqueuestart" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) "hHB" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -24501,6 +24528,19 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/table, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = 9 + }, +/obj/item/mmi{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/stock_parts/power_store/cell/high{ + pixel_x = 8; + pixel_y = -2 + }, /turf/open/floor/iron, /area/station/science/explab) "hJa" = ( @@ -24581,6 +24621,11 @@ /obj/machinery/transport/destination_sign/indicator/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/tram/left) +"hLj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "hLr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -24673,6 +24718,13 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) +"hNb" = ( +/obj/structure/table/wood, +/obj/item/papercutter{ + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) "hNe" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -24909,6 +24961,25 @@ /obj/structure/transport/linear/public, /turf/open/floor/plating/elevatorshaft, /area/station/maintenance/tram/mid) +"hQZ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/right/directional/south{ + name = "Access Queue" + }, +/obj/machinery/door/window/brigdoor/left/directional/north{ + name = "Access Desk"; + req_access = list("hop") + }, +/obj/structure/desk_bell{ + pixel_x = -7 + }, +/obj/machinery/door/poddoor/preopen{ + name = "Privacy Shutters"; + id = "hop" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/command/heads_quarters/hop) "hRi" = ( /obj/machinery/power/emitter, /obj/effect/turf_decal/stripes/corner{ @@ -25231,14 +25302,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/office) -"hYH" = ( -/obj/machinery/computer/slot_machine{ - pixel_y = 2 - }, -/obj/machinery/light/cold/directional/south, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/commons/lounge) "hYK" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, @@ -25295,6 +25358,19 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"hZb" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Dorm 6"; + id_tag = "prisondorm" + }, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/station/security/prison/safe) "hZc" = ( /obj/machinery/static_signal/northeast, /obj/effect/turf_decal/stripes/white/line, @@ -25552,16 +25628,6 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/engineering/atmos) -"idy" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/table/glass, -/obj/machinery/camera/directional/south{ - network = list("ss13","medbay"); - c_tag = "Medical - Main North" - }, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "idz" = ( /obj/effect/turf_decal/trimline/green/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -25740,10 +25806,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/cafeteria, /area/station/science/breakroom) -"igT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "igV" = ( /obj/structure/closet/emcloset/anchored, /obj/effect/turf_decal/sand/plating, @@ -25947,19 +26009,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/service/library) -"ilh" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Garden" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "ilj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26033,17 +26082,6 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"inJ" = ( -/obj/machinery/camera/directional/west{ - network = list("ss13","Security","prison"); - c_tag = "Security - Rec Room South" - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/security/prison/workout) "inK" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Recreation Area Maintenance Access" @@ -26151,21 +26189,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/misc/asteroid/airless, /area/station/asteroid) -"ioT" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 9 - }, -/obj/machinery/light_switch/directional/west{ - pixel_x = -25; - pixel_y = -7 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/firealarm/directional/west{ - pixel_y = 4 - }, -/turf/open/floor/iron, -/area/station/cargo/drone_bay) "ipe" = ( /obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ dir = 8 @@ -26181,15 +26204,6 @@ /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron, /area/station/cargo/sorting) -"ipz" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "ipC" = ( /obj/effect/turf_decal/stripes/white/line, /obj/machinery/transport/crossing_signal/northwest, @@ -26299,6 +26313,16 @@ /obj/structure/chair/comfy/black, /turf/open/floor/carpet, /area/station/command/bridge) +"irR" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/table/glass, +/obj/machinery/camera/directional/south{ + network = list("ss13","medbay"); + c_tag = "Medical - Main North" + }, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "isa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26377,6 +26401,10 @@ }, /turf/open/floor/iron, /area/station/escapepodbay) +"itS" = ( +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "itY" = ( /obj/structure/cable, /obj/machinery/light/floor, @@ -26502,16 +26530,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"ivy" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/cargo/office) "ivC" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -26832,6 +26850,17 @@ }, /turf/open/floor/iron/freezer, /area/station/commons/toilet) +"iCh" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/obj/machinery/camera/directional/west{ + network = list("ss13","Security","prison"); + c_tag = "Security - Prison Main North" + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/security/prison) "iCj" = ( /obj/structure/holosign/barrier/atmos/tram, /obj/structure/cable, @@ -26945,18 +26974,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"iEH" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw, -/obj/effect/turf_decal/trimline/dark_blue/arrow_cw{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hop) "iFb" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -27061,17 +27078,6 @@ /obj/machinery/light/floor, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"iHr" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "iHG" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -27359,6 +27365,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/main) +"iMI" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "iNc" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -27533,6 +27548,14 @@ }, /turf/open/floor/iron, /area/station/security/prison) +"iPT" = ( +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/machinery/vending/wallmed/directional/north, +/turf/open/floor/iron/cafeteria, +/area/station/commons/dorms/laundry) "iQC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/sorting/mail/flip{ @@ -27549,9 +27572,6 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "iQG" = ( -/obj/structure/railing{ - dir = 4 - }, /obj/machinery/button/elevator/directional/north{ id = "tram_xeno_lift" }, @@ -27562,6 +27582,9 @@ dir = 5 }, /obj/machinery/light/directional/north, +/obj/machinery/door/window/elevator/left/directional/east{ + transport_linked_id = "tram_xeno_lift" + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "iQH" = ( @@ -27724,6 +27747,13 @@ /obj/item/kirbyplants/photosynthetic, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) +"iTO" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/flora/bush/flowers_pp/style_random, +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "iTQ" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -27982,13 +28012,6 @@ }, /turf/open/floor/plating/airless, /area/station/asteroid) -"iYJ" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit) "iYO" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -28220,16 +28243,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/miningdock) -"jbt" = ( -/obj/structure/railing, -/obj/machinery/door/firedoor/border_only, -/obj/effect/landmark/event_spawn, -/obj/machinery/light/cold/directional/north, -/obj/machinery/firealarm/directional/north{ - pixel_x = -6 - }, -/turf/open/floor/glass/reinforced, -/area/station/science/research) "jbx" = ( /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 @@ -29166,6 +29179,18 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"jrg" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/commons/dorms) "jrz" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/dim/directional/north, @@ -29180,6 +29205,30 @@ }, /turf/closed/wall, /area/station/maintenance/disposal) +"jrJ" = ( +/obj/structure/closet, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) +"jrN" = ( +/obj/machinery/door/airlock/hatch{ + name = "MiniSat Teleporter" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/minisat, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "jrR" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 5 @@ -29743,6 +29792,22 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/port/central) +"jAo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/obj/item/extinguisher{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/extinguisher, +/obj/machinery/vending/wallmed/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "jAt" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, @@ -29800,15 +29865,13 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/engine, /area/station/engineering/supermatter) -"jBy" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/structure/extinguisher_cabinet/directional/west, +"jBp" = ( +/obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, +/obj/effect/turf_decal/siding/thinplating, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "jBC" = ( @@ -29995,33 +30058,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/grass, /area/station/medical/virology) -"jFs" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 - }, -/obj/structure/table, -/obj/item/radio/off, -/obj/item/screwdriver{ - pixel_y = 10 - }, -/obj/machinery/button/door/directional/north{ - name = "Atmospherics Lockdown"; - pixel_x = -6; - id = "atmos"; - req_access = list("atmospherics") - }, -/obj/machinery/button/door/directional/north{ - name = "Engineering Lockdown"; - desc = "A door remote control switch for the engineering security airlocks."; - pixel_x = 6; - id = "Engineering"; - req_access = list("engineering") - }, -/obj/machinery/firealarm/directional/north{ - pixel_y = 32 - }, -/turf/open/floor/iron, -/area/station/security/checkpoint/engineering) "jFt" = ( /obj/structure/railing{ dir = 4 @@ -30064,29 +30100,9 @@ }, /turf/open/space/openspace, /area/station/solars/starboard/fore) -"jGp" = ( -/obj/structure/closet, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_y = 7 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = 6; - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "jGx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 - }, -/obj/machinery/computer/atmos_control/ordnancemix{ - dir = 1 +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 8 }, /turf/open/floor/iron/white, /area/station/science/ordnance) @@ -30192,6 +30208,13 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/lobby) +"jIj" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "jIy" = ( /obj/structure/rack, /obj/effect/spawner/random/techstorage/rnd_all, @@ -30218,6 +30241,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/central/greater) +"jIO" = ( +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/glass/reinforced, +/area/station/science/research) "jJd" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -30536,19 +30566,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, /area/station/asteroid) -"jPl" = ( -/obj/item/experi_scanner{ - pixel_x = 5 - }, -/obj/item/experi_scanner, -/obj/item/experi_scanner{ - pixel_x = -5 - }, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/vending/wallmed/directional/east, -/turf/open/floor/iron/white, -/area/station/science/research) "jPo" = ( /obj/effect/turf_decal/trimline/white/warning{ dir = 4 @@ -31059,6 +31076,18 @@ }, /turf/open/floor/iron/dark, /area/station/medical/morgue) +"jYd" = ( +/obj/machinery/duct, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/vending/wallmed/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "jYe" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -31564,6 +31593,17 @@ /obj/effect/mapping_helpers/requests_console/assistance, /turf/open/floor/iron, /area/station/command/heads_quarters/rd) +"kep" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Civilian - Skill Games" + }, +/obj/effect/turf_decal/trimline/dark_green/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/dark_blue/corner, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/commons/lounge) "ket" = ( /obj/machinery/vending/wardrobe/atmos_wardrobe, /turf/open/floor/iron, @@ -31654,6 +31694,22 @@ /obj/machinery/photobooth/security, /turf/open/floor/iron, /area/station/security/execution/transfer) +"kfK" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Garden" + }, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "kfO" = ( /turf/open/floor/plating, /area/station/cargo/drone_bay) @@ -31963,6 +32019,16 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"kkz" = ( +/obj/machinery/door/airlock/grunge{ + name = "Entertainment Center" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/commons/fitness/recreation/entertainment) "kkF" = ( /obj/effect/turf_decal/stripes/white/line, /obj/machinery/transport/crossing_signal/northeast, @@ -32118,6 +32184,29 @@ /obj/structure/sink/kitchen/directional/south, /turf/open/floor/iron/white, /area/station/commons/vacant_room) +"knA" = ( +/obj/machinery/door/airlock/command{ + name = "Head of Personnel" + }, +/obj/effect/mapping_helpers/airlock/access/all/command/hop, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + name = "Privacy Shutters"; + id = "hop" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hop) +"knM" = ( +/obj/effect/turf_decal/trimline/neutral/warning, +/obj/machinery/smartfridge/organ, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "knO" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -32394,6 +32483,30 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"kse" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/light_switch/directional/west{ + pixel_x = -25; + pixel_y = -7 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west{ + pixel_y = 4 + }, +/turf/open/floor/iron, +/area/station/cargo/drone_bay) +"ksh" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "ksk" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32453,6 +32566,15 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/construction/engineering) +"ksV" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box, +/obj/item/hand_labeler{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/brown/fourcorners, +/turf/open/floor/iron, +/area/station/cargo/sorting) "ksW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -32665,6 +32787,20 @@ }, /turf/open/floor/tram/plate, /area/station/hallway/primary/tram/right) +"kxP" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/white/warning{ + dir = 1 + }, +/obj/machinery/light/small/dim/directional/south, +/turf/open/floor/iron, +/area/station/maintenance/tram/left) "kxV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/stripes/line{ @@ -32732,6 +32868,12 @@ }, /turf/open/space/openspace, /area/space) +"kza" = ( +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, +/turf/open/floor/iron/white, +/area/station/science/ordnance) "kzg" = ( /obj/structure/table, /obj/machinery/recharger, @@ -32878,6 +33020,13 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron, /area/station/cargo/warehouse) +"kBO" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/structure/table/glass, +/turf/open/floor/iron/white, +/area/station/security/medical) "kCm" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/structure/table, @@ -32903,6 +33052,15 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) +"kCM" = ( +/obj/structure/closet/secure_closet/quartermaster, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/command/heads_quarters/qm) "kCQ" = ( /obj/machinery/duct, /obj/structure/cable, @@ -33547,6 +33705,16 @@ }, /turf/open/floor/iron, /area/station/security/office) +"kMJ" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/cargo/office) "kMR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -34115,22 +34283,6 @@ /obj/effect/turf_decal/trimline/white/warning, /turf/open/floor/iron, /area/station/maintenance/tram/right) -"kVn" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell A"; - id = "Isolation_A" - }, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "kVs" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -34340,6 +34492,13 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white, /area/station/science/lower) +"kZa" = ( +/obj/machinery/camera/directional/south{ + pixel_x = 21; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "kZh" = ( /turf/open/floor/eighties/red, /area/station/commons/fitness/recreation/entertainment) @@ -34523,16 +34682,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"ldo" = ( -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters{ - id = "cargowarehouse"; - pixel_y = 0; - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "ldp" = ( /obj/machinery/status_display/door_timer{ name = "Cargo Cell"; @@ -34568,6 +34717,15 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos) +"ldM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/poddoor/shutters{ + id = "cargowarehouse"; + dir = 8 + }, +/turf/open/floor/plating, +/area/station/cargo/warehouse) "lej" = ( /obj/effect/turf_decal/trimline/tram/filled/line{ dir = 1 @@ -34647,6 +34805,18 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/lobby) +"lfW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/trimline/dark_blue/arrow_ccw, +/obj/effect/turf_decal/trimline/dark_blue/arrow_cw{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) "lgi" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Freezer Maintenance Hatch" @@ -34771,6 +34941,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"ljj" = ( +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "ljn" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/white/line{ @@ -34918,13 +35092,6 @@ }, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"llv" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/glass/reinforced, -/area/station/ai_monitored/turret_protected/aisat/hallway) "llE" = ( /obj/effect/landmark/event_spawn, /obj/effect/landmark/navigate_destination/kitchen, @@ -34994,6 +35161,20 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/white, /area/station/science/genetics) +"lmb" = ( +/obj/machinery/door/airlock/mining/glass{ + name = "Mining Dock" + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/supply/mining, +/turf/open/floor/iron, +/area/station/cargo/miningdock) "lml" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) @@ -35418,6 +35599,14 @@ }, /turf/open/floor/iron/dark, /area/station/commons/lounge) +"lsy" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/table, +/turf/open/floor/iron/dark/herringbone, +/area/station/commons/vacant_room) "lsJ" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/camera/directional/south{ @@ -35471,14 +35660,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"luk" = ( -/obj/machinery/power/solar_control{ - name = "AI Core Solar Control"; - id = "aicore" - }, -/obj/structure/cable, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) "lul" = ( /obj/structure/table, /obj/machinery/light/cold/directional/west, @@ -35648,7 +35829,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/machinery/computer/security/telescreen/aiupload, /turf/open/floor/iron/white, /area/station/science/xenobiology) "lxi" = ( @@ -35809,6 +35989,7 @@ /area/station/engineering/atmos) "lyQ" = ( /obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/processor/slime, /turf/open/floor/iron/white, /area/station/science/xenobiology) "lyR" = ( @@ -35845,6 +36026,20 @@ }, /turf/open/floor/iron, /area/station/escapepodbay) +"lzS" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "lAm" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -35881,6 +36076,14 @@ /obj/structure/chair/stool/bar/directional/west, /turf/open/floor/iron, /area/station/security/prison) +"lAB" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/light/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "lAC" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -36055,21 +36258,6 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"lDA" = ( -/obj/structure/closet/toolcloset, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/firealarm/directional/south{ - pixel_x = -3 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 6; - pixel_y = -27 - }, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "lDM" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/item/radio/intercom/directional/south, @@ -36488,10 +36676,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/violet/visible, /turf/open/floor/iron, /area/station/engineering/atmos) -"lLl" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) "lLq" = ( /obj/structure/bed{ dir = 8 @@ -36576,6 +36760,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"lMu" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 10 + }, +/obj/item/radio/intercom/directional/west, +/obj/structure/tank_holder/extinguisher, +/turf/open/floor/iron, +/area/station/cargo/office) "lMw" = ( /obj/machinery/door/airlock{ name = "Unit 3"; @@ -36668,11 +36860,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"lNN" = ( -/obj/machinery/firealarm/directional/north, -/obj/item/radio/intercom/prison/directional/south, -/turf/open/floor/iron/freezer, -/area/station/security/prison) "lNP" = ( /obj/structure/fluff/tram_rail, /turf/open/openspace, @@ -36891,6 +37078,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"lRR" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "lSo" = ( /turf/open/floor/glass/reinforced, /area/station/security/brig) @@ -36984,6 +37178,10 @@ }, /turf/open/floor/iron, /area/station/security/prison/safe) +"lTo" = ( +/obj/machinery/atmospherics/pipe/smart/simple/supply, +/turf/closed/wall, +/area/station/science/ordnance) "lTs" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/starboard/fore) @@ -37372,13 +37570,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron, /area/station/security/checkpoint/arrivals) -"lZJ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/ordnance) "lZW" = ( /turf/closed/wall, /area/station/maintenance/department/cargo) @@ -37422,6 +37613,24 @@ /obj/structure/sign/tram_plate/directional/south, /turf/open/openspace, /area/station/hallway/primary/tram/center) +"max" = ( +/obj/effect/turf_decal/trimline/red/filled/corner, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/machinery/button/flasher{ + pixel_x = 9; + pixel_y = 27; + id = "permafrontdoor"; + req_access = list("brig") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north{ + pixel_x = -3 + }, +/turf/open/floor/iron, +/area/station/security/execution/transfer) "may" = ( /turf/open/floor/plating, /area/station/hallway/secondary/exit/departure_lounge) @@ -37625,10 +37834,6 @@ "mdV" = ( /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) -"mdY" = ( -/obj/effect/turf_decal/trimline/neutral/line, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "meb" = ( /obj/effect/landmark/carpspawn, /turf/open/space/openspace, @@ -38220,10 +38425,6 @@ /obj/structure/cable, /turf/open/openspace, /area/station/maintenance/solars/starboard/fore) -"mpw" = ( -/obj/machinery/hydroponics/soil, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "mpx" = ( /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron/dark/smooth_edge{ @@ -38254,18 +38455,6 @@ desc = "A wall impregnated with Fixium, able to withstand massive explosions with ease" }, /area/station/science/ordnance/bomb) -"mpR" = ( -/obj/machinery/duct, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/vending/wallmed/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "mpX" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/table/wood, @@ -38276,6 +38465,13 @@ /obj/item/pen, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"mqb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/thinplating/corner, +/obj/effect/turf_decal/trimline/neutral/corner, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "mqq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/neutral/filled/line, @@ -38394,7 +38590,7 @@ /turf/open/floor/circuit, /area/station/command/teleporter) "msF" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/status_display/evac/directional/south, /turf/open/floor/carpet, /area/station/medical/psychology) @@ -38567,6 +38763,14 @@ /obj/structure/cable, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/aisat_interior) +"mxw" = ( +/obj/machinery/door/airlock/research{ + name = "Chemical Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/turf/open/floor/iron/textured, +/area/station/medical/medbay/central) "mxE" = ( /obj/structure/chair/office{ dir = 4 @@ -39444,21 +39648,6 @@ outbound = 2 }, /area/station/hallway/primary/tram/center) -"mNC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "mNV" = ( /obj/machinery/photocopier/prebuilt, /turf/open/floor/iron/grimy, @@ -39490,6 +39679,14 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"mOt" = ( +/obj/structure/closet/wardrobe/white, +/obj/effect/turf_decal/tile/blue/opposingcorners{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/cafeteria, +/area/station/commons/dorms/laundry) "mOB" = ( /obj/effect/turf_decal/trimline/yellow/filled/shrink_ccw{ dir = 8 @@ -39717,14 +39914,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/white, /area/station/medical/storage) -"mVM" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +"mVN" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 4 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white, -/area/station/service/theater) +/turf/open/floor/engine/xenobio, +/area/station/science/xenobiology) "mVS" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/door/window/left/directional/west{ @@ -40234,12 +40429,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"nfQ" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/station/holodeck/rec_center) "nfR" = ( /obj/structure/table/glass, /obj/machinery/coffeemaker, @@ -40351,24 +40540,6 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"nhz" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Tunnel Access" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/maintenance/tram/left) "nhJ" = ( /obj/structure/sign/poster/official/random/directional/south, /obj/machinery/light/blacklight/directional/south, @@ -40461,10 +40632,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) -"njd" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/science/xenobiology) "njf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, @@ -40616,14 +40783,6 @@ }, /turf/open/floor/plating, /area/station/cargo/sorting) -"nkB" = ( -/obj/machinery/door/airlock/research{ - name = "Chemical Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/pharmacy, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/turf/open/floor/iron/textured, -/area/station/medical/medbay/central) "nkF" = ( /obj/machinery/power/smes/engineering, /obj/structure/cable, @@ -40842,21 +41001,6 @@ /obj/structure/lattice, /turf/open/openspace, /area/station/hallway/primary/tram/center) -"nnC" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "HoP Queue Shutters"; - id = "hopqueueend" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/loading_area/white{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hop) "nnQ" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 8 @@ -40921,17 +41065,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/commons/fitness/recreation/entertainment) -"noE" = ( -/obj/structure/window/spawner/directional/south, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/bot, -/obj/structure/rack, -/obj/item/stack/sheet/plasteel{ - amount = 25 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/iron/dark, -/area/station/command/teleporter) "noI" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -41202,7 +41335,7 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "nuu" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) "nuw" = ( @@ -41417,6 +41550,21 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"nyI" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 10 + }, +/obj/item/radio/intercom/directional/west, +/obj/machinery/light/directional/west, +/obj/item/storage/medkit/regular, +/obj/item/storage/medkit/regular{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "nyM" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -41717,26 +41865,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/xenobiology) -"nDR" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/structure/table/reinforced, -/obj/item/stock_parts/matter_bin{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/stock_parts/matter_bin, -/obj/item/stock_parts/micro_laser, -/obj/item/multitool, -/obj/item/flatpack{ - board = /obj/item/circuitboard/machine/flatpacker - }, -/obj/machinery/light_switch/directional/west{ - pixel_y = -4 - }, -/turf/open/floor/iron/white, -/area/station/science/lab) "nDX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41757,6 +41885,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"nEh" = ( +/obj/structure/chair, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/checker, +/area/station/commons/lounge) "nEl" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -41799,21 +41932,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/side, /area/station/science/explab) -"nEF" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/spray/pestspray{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/reagent_containers/spray/plantbgone, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 9 - }, -/obj/item/reagent_containers/cup/bottle/nutrient/ez, -/obj/item/reagent_containers/cup/bottle/nutrient/rh, -/obj/item/reagent_containers/cup/watering_can, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "nES" = ( /obj/machinery/door/airlock/glass{ name = "Break Room" @@ -41844,10 +41962,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"nFE" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/commons/fitness/recreation) "nFL" = ( /obj/machinery/suit_storage_unit/atmos, /obj/effect/turf_decal/stripes/line{ @@ -42149,20 +42263,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/lobby) -"nLt" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/camera/directional/south{ - c_tag = "Secure - EVA Storage" - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 8; - pixel_y = -26 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) "nLK" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -42174,6 +42274,11 @@ }, /turf/open/floor/iron, /area/station/cargo/miningdock) +"nLU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "nMb" = ( /obj/structure/lattice/catwalk, /obj/effect/decal/cleanable/dirt, @@ -43085,15 +43190,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"obl" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/warehouse) "obq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/neutral/filled/corner{ @@ -43326,6 +43422,10 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron/white, /area/station/science/auxlab/firing_range) +"ogY" = ( +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "ohd" = ( /obj/structure/table, /turf/open/floor/iron/dark, @@ -43664,6 +43764,13 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden, /turf/open/floor/iron, /area/station/engineering/atmos) +"omS" = ( +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "onc" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 @@ -43697,6 +43804,23 @@ /obj/effect/mapping_helpers/airlock/access/all/science/research, /turf/open/floor/catwalk_floor, /area/station/science/auxlab/firing_range) +"onT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/machinery/door/poddoor/shutters/preopen{ + name = "HoP Queue Shutters"; + id = "hopqueueendbottom" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/loading_area/white{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) "onW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -43799,6 +43923,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) +"oqF" = ( +/obj/machinery/light/directional/south, +/turf/open/water/no_planet_atmos/deep, +/area/station/service/hydroponics/garden) "oqS" = ( /obj/structure/chair/pew/left, /turf/open/floor/iron/chapel{ @@ -43825,13 +43953,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/plating, /area/station/engineering/atmos) -"orN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/thinplating{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "orQ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -43962,14 +44083,6 @@ /obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/glass/reinforced, /area/station/science/genetics) -"otX" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "oum" = ( /obj/machinery/computer/security/qm{ dir = 4 @@ -44045,13 +44158,6 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"ovC" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/glass/reinforced, -/area/station/science/research) "ovL" = ( /turf/open/floor/iron, /area/station/hallway/secondary/service) @@ -44288,6 +44394,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/commissary) +"oBP" = ( +/obj/machinery/rnd/production/circuit_imprinter/department/science, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/firealarm/directional/south{ + pixel_x = 4 + }, +/turf/open/floor/iron, +/area/station/science/lab) "oBY" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -44388,6 +44502,26 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) +"oDB" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/structure/table/reinforced, +/obj/item/stock_parts/matter_bin{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/micro_laser, +/obj/item/multitool, +/obj/item/flatpack{ + board = /obj/item/circuitboard/machine/flatpacker + }, +/obj/machinery/light_switch/directional/west{ + pixel_y = -4 + }, +/turf/open/floor/iron/white, +/area/station/science/lab) "oDH" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -44737,6 +44871,14 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) +"oNn" = ( +/obj/machinery/power/solar_control{ + name = "AI Core Solar Control"; + id = "aicore" + }, +/obj/structure/cable, +/turf/open/floor/circuit, +/area/station/ai_monitored/turret_protected/ai) "oNp" = ( /obj/structure/sink{ pixel_y = 15 @@ -45311,6 +45453,19 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"oYi" = ( +/obj/item/crowbar, +/obj/item/storage/bag/plants, +/obj/item/hatchet, +/obj/item/plant_analyzer, +/obj/item/cultivator, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/newscaster/directional/north, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "oYE" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -45464,12 +45619,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/catwalk_floor, /area/station/maintenance/solars/port) -"pbL" = ( -/obj/machinery/door/airlock/maintenance_hatch, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/turf/open/floor/iron/smooth, -/area/station/commons/dorms) "pbM" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -45485,10 +45634,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"pbS" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/science/research) "pbV" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/musician/piano, @@ -45516,6 +45661,10 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/maintenance/tram/mid) +"pcA" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark/herringbone, +/area/station/commons/vacant_room) "pcE" = ( /obj/structure/chair{ dir = 8 @@ -45943,6 +46092,14 @@ /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/carpet, /area/station/command/bridge) +"pkQ" = ( +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/dark/herringbone, +/area/station/commons/vacant_room) "plh" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 4 @@ -46061,22 +46218,6 @@ /obj/machinery/light/warm/directional/east, /turf/open/floor/iron, /area/station/engineering/break_room) -"pnc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/reagent_dispensers/watertank, -/obj/item/extinguisher{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/extinguisher, -/obj/machinery/vending/wallmed/directional/south, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "pne" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ @@ -46154,6 +46295,12 @@ }, /turf/open/floor/iron/cafeteria, /area/station/command/heads_quarters/rd) +"poi" = ( +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron/smooth, +/area/station/commons/dorms) "pot" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -46889,15 +47036,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"pzw" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) +"pzz" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/deck, +/obj/machinery/newscaster/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/lounge) "pAo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/white/filled/line{ @@ -47863,19 +48007,16 @@ "pQy" = ( /obj/structure/table, /obj/item/multitool/circuit{ - pixel_x = -8 + pixel_x = -7; + pixel_y = 0 }, /obj/item/multitool/circuit{ - pixel_x = -4 - }, -/obj/item/multitool/circuit, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 8; - pixel_y = 9 + pixel_x = 0; + pixel_y = 0 }, -/obj/item/stock_parts/power_store/cell/high{ - pixel_x = 8; - pixel_y = -2 +/obj/item/multitool/circuit{ + pixel_x = 7; + pixel_y = 0 }, /obj/machinery/camera/directional/south{ network = list("ss13","rd"); @@ -47919,17 +48060,6 @@ }, /turf/open/floor/plating/airless, /area/station/ai_monitored/turret_protected/aisat_interior) -"pRh" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/obj/machinery/camera/directional/west{ - network = list("ss13","Security","prison"); - c_tag = "Security - Prison Main North" - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/security/prison) "pRm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -48010,15 +48140,12 @@ /turf/open/floor/iron, /area/station/hallway/secondary/exit) "pUi" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, +/obj/machinery/door/window/elevator/left/directional/east{ + transport_linked_id = "tram_xeno_lift" + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "pUj" = ( @@ -48028,6 +48155,13 @@ /obj/structure/rack, /turf/open/floor/iron/dark, /area/station/cargo/miningdock/oresilo) +"pUl" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit) "pUq" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, @@ -48116,13 +48250,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/surgery/fore) -"pVp" = ( -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/machinery/vending/wallmed/directional/east, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "pVD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/trimline/yellow/warning, @@ -48157,6 +48284,11 @@ }, /turf/open/floor/iron/stairs/medium, /area/station/commons/dorms) +"pWI" = ( +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "pWN" = ( /obj/structure/plaque/static_plaque/golden/commission/tram, /obj/structure/disposalpipe/segment{ @@ -48267,18 +48399,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"pYh" = ( -/obj/structure/table/glass, -/obj/item/crowbar, -/obj/item/hatchet, -/obj/item/plant_analyzer, -/obj/item/cultivator, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "pYt" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, @@ -48551,12 +48671,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"qds" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/hallway/secondary/service) "qdy" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -48624,16 +48738,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"qes" = ( -/obj/machinery/door/airlock/grunge{ - name = "Entertainment Center" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/commons/fitness/recreation/entertainment) "qeD" = ( /obj/effect/turf_decal/trimline/yellow/filled/shrink_cw{ dir = 8 @@ -48727,11 +48831,6 @@ /obj/machinery/power/apc/auto_name/directional/east, /turf/open/floor/catwalk_floor, /area/station/hallway/primary/tram/right) -"qfS" = ( -/obj/machinery/smartfridge/organ, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "qga" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 9 @@ -48921,11 +49020,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance/testlab) -"qjx" = ( -/obj/structure/chair, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/checker, -/area/station/commons/lounge) "qjA" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -48966,6 +49060,14 @@ }, /turf/open/floor/iron/showroomfloor, /area/station/security/warden) +"qjL" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/window/spawner/directional/west, +/obj/structure/window/spawner/directional/north, +/obj/structure/flora/bush/flowers_yw/style_random, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "qjT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -49097,15 +49199,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"qmH" = ( -/obj/structure/closet/secure_closet/quartermaster, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 10 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/command/heads_quarters/qm) "qmN" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -49209,10 +49302,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"qoZ" = ( -/obj/item/paper/fluff/ids_for_dummies, -/turf/open/misc/asteroid/airless, -/area/station/asteroid) "qpb" = ( /obj/structure/closet/secure_closet/exile, /obj/effect/turf_decal/bot, @@ -49279,10 +49368,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"qqh" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/commons/vacant_room) "qqi" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -49660,21 +49745,6 @@ /obj/effect/turf_decal/trimline/neutral/filled/corner, /turf/open/floor/iron, /area/station/security/courtroom) -"qyE" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/loading_area/white{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - name = "HoP Queue Shutters"; - id = "hopqueuestart" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hop) "qyK" = ( /obj/effect/turf_decal/siding/thinplating, /obj/effect/turf_decal/siding/thinplating{ @@ -50061,6 +50131,22 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/maintenance/tram/mid) +"qEb" = ( +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas, +/obj/item/canvas, +/obj/item/canvas, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/commons/storage/art) "qEl" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -50129,8 +50215,8 @@ /turf/open/floor/iron/smooth, /area/station/maintenance/disposal) "qHa" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/light/directional/east, +/obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) "qHe" = ( @@ -50170,6 +50256,17 @@ "qHs" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) +"qHv" = ( +/obj/machinery/door/airlock{ + name = "Theatre Backstage" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/station/service/theater) "qHF" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -50182,15 +50279,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/dorms) -"qHI" = ( -/obj/structure/table/reinforced, -/obj/item/storage/box, -/obj/item/hand_labeler{ - pixel_y = 8 - }, -/obj/effect/turf_decal/tile/brown/fourcorners, -/turf/open/floor/iron, -/area/station/cargo/sorting) "qHM" = ( /obj/structure/table/wood, /obj/effect/spawner/random/food_or_drink/refreshing_beverage, @@ -50600,17 +50688,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/large, /area/station/service/theater) -"qPu" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Civilian - Skill Games" - }, -/obj/effect/turf_decal/trimline/dark_green/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_blue/corner, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/commons/lounge) "qPE" = ( /obj/structure/chair/greyscale{ dir = 4 @@ -50702,12 +50779,6 @@ }, /turf/open/floor/wood, /area/station/commons/dorms) -"qRf" = ( -/obj/structure/table/wood/poker, -/obj/item/storage/dice, -/obj/machinery/computer/security/telescreen/entertainment/directional/west, -/turf/open/floor/iron/dark, -/area/station/commons/lounge) "qRn" = ( /obj/effect/turf_decal/trimline/white/filled/line, /obj/structure/sign/clock/directional/north, @@ -50990,6 +51061,10 @@ }, /obj/structure/cable, /obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/ordnance) "qWy" = ( @@ -51204,20 +51279,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) -"qZx" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/thinplating{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/white/warning{ - dir = 1 - }, -/obj/machinery/light/small/dim/directional/south, -/turf/open/floor/iron, -/area/station/maintenance/tram/left) "qZy" = ( /obj/structure/table/glass, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -51250,17 +51311,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"qZK" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/structure/closet/crate/bin, -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/spawner/random/trash/food_packaging, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/iron/dark/herringbone, -/area/station/commons/vacant_room) "qZZ" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -51354,14 +51404,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit) -"rbA" = ( -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/firealarm/directional/south{ - pixel_x = 4 - }, -/turf/open/floor/iron, -/area/station/science/lab) "rbC" = ( /obj/machinery/suit_storage_unit/cmo, /obj/effect/turf_decal/bot, @@ -51480,6 +51522,16 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron, /area/station/security/processing) +"rdr" = ( +/obj/effect/turf_decal/trimline/neutral/filled/corner, +/obj/effect/turf_decal/trimline/neutral/filled/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "rdJ" = ( /obj/structure/table/glass, /obj/item/stack/medical/mesh, @@ -51578,6 +51630,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) +"rfi" = ( +/obj/machinery/camera/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "rfQ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -52114,6 +52170,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/cargo/storage) +"rol" = ( +/obj/structure/table, +/obj/machinery/status_display/supply{ + pixel_y = 32 + }, +/obj/machinery/camera{ + dir = 9; + network = list("ss13","cargo"); + c_tag = "Cargo - Main Office" + }, +/obj/item/multitool, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 9 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/turf/open/floor/iron, +/area/station/cargo/office) "rom" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen/entertainment/directional/south, @@ -52176,6 +52251,14 @@ network = list("ss13","rd"); c_tag = "Science - Xenobiology South" }, +/obj/structure/closet{ + anchored = 1; + name = "Cold protection gear" + }, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, /turf/open/floor/iron/white, /area/station/science/xenobiology) "roR" = ( @@ -52280,6 +52363,12 @@ }, /turf/open/floor/iron/dark, /area/station/service/bar) +"rrC" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/stairs/medium{ + dir = 1 + }, +/area/station/hallway/secondary/service) "rrE" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 @@ -52343,13 +52432,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"rsQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "rsZ" = ( /obj/machinery/holopad/secure, /turf/open/floor/iron/dark, @@ -52597,6 +52679,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/hallway/primary/tram/right) +"rxU" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + network = list("ss13","rd"); + c_tag = "Science - Entrance Airlock" + }, +/obj/machinery/light/cold/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/white, +/area/station/science/research) "ryc" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating/airless, @@ -52681,6 +52775,16 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"rzG" = ( +/obj/machinery/door/airlock/grunge{ + name = "Entertainment Center" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/commons/fitness/recreation/entertainment) "rzO" = ( /obj/structure/chair, /obj/machinery/airalarm/directional/north, @@ -52718,16 +52822,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron, /area/station/command/bridge) -"rAP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/brown/opposingcorners{ - dir = 1 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/miningfoundry) "rAS" = ( /turf/closed/wall, /area/station/service/library/lounge) @@ -53198,10 +53292,6 @@ /turf/open/floor/plating, /area/station/commons/vacant_room) "rLG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/effect/turf_decal/box/red, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, @@ -53210,6 +53300,9 @@ areastring = "/area/station/science/ordnance/burnchamber" }, /obj/structure/sign/warning/hot_temp/directional/south, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/ordnance) "rLP" = ( @@ -53355,6 +53448,14 @@ }, /turf/open/floor/iron, /area/station/science/lab) +"rNW" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 5 + }, +/obj/machinery/vending/wallmed/directional/north, +/turf/open/floor/iron, +/area/station/engineering/break_room) "rOh" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -53473,6 +53574,7 @@ /area/station/construction/mining/aux_base) "rPv" = ( /obj/machinery/light/small/dim/directional/south, +/obj/machinery/camera/directional/south, /turf/open/floor/engine, /area/station/science/xenobiology) "rPH" = ( @@ -53590,12 +53692,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom/holding) -"rRb" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/security/prison) "rRc" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 @@ -53623,6 +53719,16 @@ }, /turf/open/floor/iron, /area/station/engineering/atmospherics_engine) +"rRp" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/brown/opposingcorners{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/miningfoundry) "rRy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/closed/wall/r_wall, @@ -53842,20 +53948,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"rVP" = ( -/obj/machinery/door/airlock/mining/glass{ - name = "Mining Dock" - }, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/all/supply/mining, -/turf/open/floor/iron, -/area/station/cargo/miningdock) "rWa" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -53865,6 +53957,33 @@ }, /turf/open/space/basic, /area/station/solars/port) +"rWb" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/structure/table, +/obj/item/radio/off, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/obj/machinery/button/door/directional/north{ + name = "Atmospherics Lockdown"; + pixel_x = -6; + id = "atmos"; + req_access = list("atmospherics") + }, +/obj/machinery/button/door/directional/north{ + name = "Engineering Lockdown"; + desc = "A door remote control switch for the engineering security airlocks."; + pixel_x = 6; + id = "Engineering"; + req_access = list("engineering") + }, +/obj/machinery/firealarm/directional/north{ + pixel_y = 32 + }, +/turf/open/floor/iron, +/area/station/security/checkpoint/engineering) "rWd" = ( /obj/structure/table, /obj/structure/window/reinforced/spawner/directional/west, @@ -53891,26 +54010,10 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/bitrunning/den) -"rWk" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/security/brig) "rWn" = ( /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron, /area/station/engineering/atmos) -"rWz" = ( -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters{ - id = "cargowarehouse"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "rWB" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -53989,6 +54092,14 @@ /obj/item/radio/intercom/prison/directional/east, /turf/open/floor/iron/cafeteria, /area/station/security/prison) +"rYB" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/commons/dorms) "rYE" = ( /turf/open/floor/plating/airless, /area/space/nearstation) @@ -54295,17 +54406,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit) -"seh" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "seG" = ( /obj/structure/ladder, /obj/effect/decal/cleanable/dirt, @@ -54386,26 +54486,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark/smooth_large, /area/station/cargo/bitrunning/den) -"sgz" = ( -/obj/structure/table, -/obj/item/stack/cable_coil{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/item/hfr_box/core, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/corner, -/obj/item/hfr_box/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/atmospherics_engine) "sgB" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /obj/structure/cable, @@ -54447,6 +54527,17 @@ dir = 4 }, /area/station/command/bridge) +"shy" = ( +/obj/structure/table, +/obj/machinery/status_display/ai/directional/south, +/obj/machinery/camera{ + dir = 10; + network = list("ss13","minisat"); + c_tag = "Secure - AI Minisat Entry" + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "shF" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/pump{ @@ -54902,6 +54993,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/greater) +"sob" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/radio/intercom/directional/west, +/obj/item/storage/medkit/advanced{ + pixel_x = -6 + }, +/turf/open/floor/iron, +/area/station/command/bridge) "soe" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -55098,19 +55201,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/construction/mining/aux_base) -"ssp" = ( -/obj/structure/table/reinforced, -/obj/item/folder/blue{ - pixel_y = 2 - }, -/obj/item/pen, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai) -"sst" = ( -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark/herringbone, -/area/station/commons/vacant_room) "ssv" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -55391,6 +55481,10 @@ req_access = list("science") }, /obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/door/window/left/directional/west{ + name = "Robotics Desk"; + req_access = list("robotics") + }, /turf/open/floor/iron/white/side{ dir = 4 }, @@ -55662,6 +55756,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/medical/virology) +"sAk" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/stairs/left, +/area/station/hallway/secondary/construction/engineering) "sAE" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, @@ -55676,15 +55777,6 @@ }, /turf/open/floor/iron, /area/station/security/prison) -"sAQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/trimline/white/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "sBt" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56054,21 +56146,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) -"sJh" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 10 - }, -/obj/item/radio/intercom/directional/west, -/obj/machinery/light/directional/west, -/obj/item/storage/medkit/regular, -/obj/item/storage/medkit/regular{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "sJi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56249,13 +56326,6 @@ /obj/structure/cable, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) -"sMX" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "sMZ" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -56366,14 +56436,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"sOx" = ( -/obj/structure/stairs/north, -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/stairs/medium, -/area/station/commons/dorms) "sOD" = ( /obj/structure/sign/directions/supply{ dir = 4; @@ -56838,10 +56900,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/execution/transfer) -"sXk" = ( -/obj/machinery/firealarm/directional/north, -/turf/open/floor/glass/reinforced, -/area/station/ai_monitored/turret_protected/aisat/hallway) "sXm" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -56862,6 +56920,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"sXJ" = ( +/obj/structure/window/spawner/directional/south, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/sheet/plasteel{ + amount = 25 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark, +/area/station/command/teleporter) "sXL" = ( /obj/effect/turf_decal/trimline/white/line{ dir = 10 @@ -56996,14 +57065,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"sZH" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Public Garden Maintenance Hatch" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/turf/open/floor/iron/smooth, -/area/station/service/hydroponics/garden) "taa" = ( /obj/structure/transport/linear/public, /obj/effect/turf_decal/trimline/dark_red/warning{ @@ -57231,13 +57292,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"teb" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner, -/turf/open/floor/iron, -/area/station/hallway/secondary/entry) "tel" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -57267,6 +57321,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) +"teO" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/effect/spawner/random/food_or_drink/plant_produce, +/obj/structure/table/wood, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "teQ" = ( /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, @@ -57284,15 +57347,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"tfj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/caution/stand_clear, -/obj/machinery/door/poddoor/shutters{ - id = "cargowarehouse"; - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "tfp" = ( /obj/structure/railing, /obj/effect/turf_decal/siding/thinplating{ @@ -57373,14 +57427,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) -"tgF" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/iron, -/area/station/commons/fitness) "tgN" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -57639,10 +57685,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/security/detectives_office) -"tlH" = ( -/obj/machinery/status_display/evac/directional/east, -/turf/open/floor/iron/smooth, -/area/station/command/gateway) "tlP" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 @@ -58153,12 +58195,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/general, /turf/open/floor/iron, /area/station/tcommsat/computer) -"tuJ" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/stairs/medium{ - dir = 1 - }, -/area/station/escapepodbay) "tuS" = ( /obj/effect/turf_decal/trimline/white/filled/line{ dir = 1 @@ -58224,7 +58260,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "twv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply, +/obj/machinery/atmospherics/pipe/smart/simple/supply{ + dir = 9 + }, /turf/closed/wall/r_wall, /area/station/science/ordnance) "twz" = ( @@ -58395,13 +58433,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"tyI" = ( -/obj/effect/turf_decal/trimline/white/filled/line{ - dir = 4 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "tyV" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock" @@ -58739,9 +58770,6 @@ network = list("ss13","rd","xeno"); c_tag = "Science - Xenobiology Lower Containment Chamber" }, -/obj/machinery/atmospherics/components/unary/outlet_injector/on{ - dir = 4 - }, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) "tED" = ( @@ -59066,6 +59094,12 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/security/checkpoint/supply) +"tJY" = ( +/obj/structure/table/wood/poker, +/obj/item/storage/dice, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/turf/open/floor/iron/dark, +/area/station/commons/lounge) "tKa" = ( /obj/machinery/door/window/right/directional/south{ name = "Suit Storage" @@ -59157,6 +59191,10 @@ /obj/effect/landmark/start/chemist, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"tMu" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/commons/fitness/recreation) "tMw" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 1 @@ -59299,6 +59337,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor, /area/station/hallway/primary/tram/center) +"tOQ" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/security/prison) "tPb" = ( /obj/structure/table, /obj/item/storage/dice, @@ -59551,6 +59595,21 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"tTw" = ( +/obj/structure/closet/toolcloset, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 10 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/firealarm/directional/south{ + pixel_x = -3 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = 6; + pixel_y = -27 + }, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "tTJ" = ( /obj/structure/railing{ dir = 8 @@ -59644,11 +59703,6 @@ }, /turf/open/floor/iron, /area/station/science/explab) -"tVO" = ( -/obj/machinery/hydroponics/soil, -/obj/machinery/light/directional/south, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "tWb" = ( /obj/machinery/camera/directional/east{ c_tag = "Civilian - Theatre Stage" @@ -59706,6 +59760,16 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/garden) +"tWO" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/item/reagent_containers/cup/bottle/multiver, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron/white, +/area/station/security/medical) "tWX" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -59854,15 +59918,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison) -"tZa" = ( -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/poddoor/shutters{ - id = "cargowarehouse"; - dir = 8 - }, -/turf/open/floor/plating, -/area/station/cargo/warehouse) "tZf" = ( /obj/structure/rack, /obj/item/pickaxe, @@ -60036,6 +60091,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/execution/transfer) +"udg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/science/explab) "udk" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -60043,6 +60107,10 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/commons/vacant_room/office) +"udm" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/science/research) "udq" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 @@ -60188,15 +60256,6 @@ /obj/machinery/chem_master, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"ufK" = ( -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "ufM" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/machinery/shower/directional/west, @@ -60835,6 +60894,13 @@ /obj/structure/cable, /turf/open/floor/iron/grimy, /area/station/ai_monitored/turret_protected/aisat/foyer) +"upf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "upj" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/item/radio/intercom/directional/south, @@ -61998,19 +62064,6 @@ /obj/machinery/transport/tram_controller/tcomms, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"uHb" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/photocopier/prebuilt, -/obj/effect/turf_decal/tile/brown/fourcorners, -/obj/machinery/firealarm/directional/west{ - pixel_y = -4 - }, -/obj/machinery/light_switch/directional/west{ - pixel_x = -27; - pixel_y = 5 - }, -/turf/open/floor/iron, -/area/station/cargo/sorting) "uHj" = ( /obj/machinery/duct, /obj/machinery/light/directional/west, @@ -62187,6 +62240,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/station/maintenance/tram/left) +"uJi" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/glass/reinforced, +/area/station/ai_monitored/turret_protected/aisat/hallway) "uJk" = ( /obj/structure/easel, /obj/item/canvas/nineteen_nineteen, @@ -62393,6 +62453,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"uMW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/white/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "uNa" = ( /obj/machinery/computer/security/mining{ dir = 4 @@ -62624,6 +62693,13 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/cargo/miningdock/cafeteria) +"uRW" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/vending/wallmed/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/exit/departure_lounge) "uSe" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -62870,9 +62946,6 @@ /turf/open/floor/iron/grimy, /area/station/service/library/lounge) "uXn" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8 - }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, @@ -62887,8 +62960,31 @@ /obj/effect/mapping_helpers/airalarm/link{ chamber_id = "ordnanceburn" }, +/obj/machinery/computer/atmos_control/ordnancemix{ + dir = 1 + }, /turf/open/floor/iron/white, /area/station/science/ordnance) +"uXr" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 6 + }, +/obj/item/hfr_box/core, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/item/hfr_box/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "uXv" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -63180,6 +63276,21 @@ /obj/machinery/light/small/dim/directional/south, /turf/open/floor/iron/freezer, /area/station/science/lower) +"vbQ" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + name = "HoP Queue Shutters"; + id = "hopqueueend" + }, +/obj/effect/turf_decal/trimline/neutral/filled/line, +/obj/effect/turf_decal/loading_area/white{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hop) "vbT" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -63307,6 +63418,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit) +"veH" = ( +/obj/structure/stairs/north, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms) "veV" = ( /turf/closed/wall, /area/station/commons/toilet) @@ -63752,13 +63871,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"vlr" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/structure/table/glass, -/turf/open/floor/iron/white, -/area/station/security/medical) "vly" = ( /obj/effect/landmark/start/medical_doctor, /obj/machinery/duct, @@ -63971,23 +64083,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/engineering/main) -"vpS" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 8 - }, -/obj/machinery/door/airlock/public/glass{ - name = "Garden" - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) "vqa" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 6 @@ -64066,7 +64161,7 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/office) "vro" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/brown/fourcorners, /turf/open/floor/iron, @@ -64321,13 +64416,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"vvp" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Recharge Bay" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/minisat, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "vvt" = ( /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 6 @@ -64354,20 +64442,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/commons/storage/art) -"vvN" = ( -/obj/structure/table, -/obj/effect/turf_decal/trimline/brown/filled/line{ - dir = 6 - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/clipboard, -/obj/item/pen/red, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/office) "vvS" = ( /obj/effect/turf_decal/caution/stand_clear/white{ dir = 1 @@ -64428,13 +64502,6 @@ /obj/structure/railing/corner, /turf/open/space/openspace, /area/station/solars/starboard/fore) -"vwR" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/stairs/left, -/area/station/hallway/secondary/construction/engineering) "vwT" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -64656,20 +64723,12 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/tram/mid) "vBl" = ( -/obj/structure/table/glass, -/obj/item/storage/box/monkeycubes{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/storage/box/monkeycubes{ - pixel_x = -5; - pixel_y = 1 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, /obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/light/directional/east, +/obj/machinery/smartfridge/extract/preloaded, /turf/open/floor/iron/white, /area/station/science/xenobiology) "vBn" = ( @@ -64728,6 +64787,12 @@ /obj/machinery/light/cold/directional/south, /turf/open/openspace, /area/station/science/research) +"vCl" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "vCt" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -64938,6 +65003,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/parquet, /area/station/service/library) +"vFL" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "vFQ" = ( /obj/machinery/duct, /obj/structure/cable, @@ -65434,6 +65511,16 @@ /obj/machinery/telecomms/server/presets/supply, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) +"vOW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/camera/directional/north{ + pixel_x = 21; + pixel_y = 0 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vPg" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 1 @@ -65586,6 +65673,14 @@ dir = 1 }, /area/station/commons/fitness) +"vSy" = ( +/obj/structure/stairs/north, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/stairs/medium, +/area/station/commons/dorms) "vSI" = ( /turf/open/openspace, /area/station/cargo/storage) @@ -65815,6 +65910,11 @@ dir = 6 }, /obj/structure/ladder, +/obj/machinery/elevator_control_panel/directional/south{ + linked_elevator_id = "tram_xeno_lift"; + pixel_x = 31; + pixel_y = -31 + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "vXL" = ( @@ -65824,6 +65924,10 @@ "vXM" = ( /turf/open/space/basic, /area/space) +"vXS" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/science/xenobiology) "vXT" = ( /obj/structure/chair/sofa/corp/left, /obj/item/radio/intercom/directional/east, @@ -65908,21 +66012,6 @@ }, /turf/open/floor/iron/stairs/medium, /area/station/commons/dorms) -"vYG" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Medical Freezer" - }, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/access/all/medical/surgery, -/obj/structure/cable, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/plasticflaps/kitchen, -/turf/open/floor/iron/freezer, -/area/station/medical/coldroom) "vYX" = ( /obj/machinery/atmospherics/components/trinary/mixer{ name = "plasma mixer"; @@ -66120,6 +66209,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"wcW" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 6 + }, +/obj/machinery/light/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/entry) "wda" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -66451,6 +66548,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/tram/right) +"wiZ" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/command/gateway) "wjk" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Security Maintenance Hatch" @@ -66732,18 +66838,13 @@ /obj/machinery/light/floor, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) -"wpu" = ( -/obj/structure/table/glass, -/obj/item/radio/intercom/directional/north, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 +"wpr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/iron, -/area/station/service/hydroponics/garden) +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/iron/dark, +/area/station/science/ordnance/storage) "wpH" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 8 @@ -66846,10 +66947,6 @@ /obj/structure/rack, /obj/structure/table, /obj/machinery/computer/security/telescreen/test_chamber/directional/north, -/obj/item/storage/box/beakers{ - pixel_x = 5; - pixel_y = 3 - }, /obj/item/grenade/chem_grenade{ pixel_x = -7; pixel_y = 7 @@ -66858,6 +66955,10 @@ pixel_x = -7; pixel_y = 1 }, +/obj/item/storage/box/beakers{ + pixel_x = 5; + pixel_y = 3 + }, /turf/open/floor/iron/dark, /area/station/science/explab) "wrJ" = ( @@ -67076,6 +67177,14 @@ /obj/item/gun/ballistic/shotgun/doublebarrel, /turf/open/floor/wood, /area/station/service/bar/backroom) +"wwj" = ( +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/machinery/light/cold/directional/south, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/commons/lounge) "wwA" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/structure/closet/wardrobe/mixed, @@ -67103,6 +67212,21 @@ "wwP" = ( /turf/closed/wall, /area/station/science/lab) +"wwS" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Security Post - Cargo"; + id_tag = "crgdoor" + }, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/filled/corner, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/security/checkpoint/supply) "wxa" = ( /obj/structure/closet, /obj/item/clothing/head/soft/red, @@ -67461,13 +67585,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"wBF" = ( -/obj/machinery/door/airlock/hatch{ - name = "MiniSat Teleporter" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/minisat, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "wBV" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -67599,6 +67716,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/brig) +"wEJ" = ( +/obj/machinery/status_display/ai/directional/west, +/turf/open/floor/iron/smooth, +/area/station/command/gateway) "wEO" = ( /obj/structure/cable, /obj/structure/disposalpipe/sorting/mail{ @@ -67673,18 +67794,6 @@ /obj/effect/turf_decal/siding/thinplating/dark, /turf/open/floor/iron/white, /area/station/science/research) -"wFK" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/cup/glass/coffee{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/item/radio/intercom/directional/west, -/obj/item/storage/medkit/advanced{ - pixel_x = -6 - }, -/turf/open/floor/iron, -/area/station/command/bridge) "wFR" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/structure/sign/gym/mirrored{ @@ -67953,6 +68062,10 @@ }, /turf/open/floor/wood/large, /area/station/service/theater) +"wLe" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/glass/reinforced, +/area/station/ai_monitored/turret_protected/aisat/hallway) "wLl" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -68112,16 +68225,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/miningdock) -"wOn" = ( -/obj/effect/turf_decal/trimline/white/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "wOs" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -68320,6 +68423,13 @@ /obj/structure/weightmachine, /turf/open/floor/iron, /area/station/security/prison/workout) +"wTa" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/security/prison) "wTi" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68464,13 +68574,6 @@ }, /turf/open/floor/iron, /area/station/security/prison) -"wWT" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/glass/reinforced, -/area/station/science/research) "wXi" = ( /obj/machinery/hydroponics/soil, /turf/open/floor/grass, @@ -69669,6 +69772,20 @@ "xvd" = ( /turf/closed/wall, /area/station/commons/storage/art) +"xvf" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "Garden" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/service/hydroponics/garden) "xvl" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/foyer) @@ -69721,6 +69838,16 @@ "xwf" = ( /turf/closed/wall/r_wall, /area/station/maintenance/central/greater) +"xwg" = ( +/obj/effect/turf_decal/trimline/white/line{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/yellow/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "xwi" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 5 @@ -69951,13 +70078,11 @@ /turf/open/floor/iron, /area/station/cargo/storage) "xAM" = ( -/obj/machinery/elevator_control_panel{ - pixel_y = 2; - linked_elevator_id = "tram_xeno_lift"; - preset_destination_names = list("2"="Lower Deck", "3"="Upper Deck") +/obj/machinery/atmospherics/pipe/smart/simple/supply{ + dir = 6 }, /turf/closed/wall/r_wall, -/area/station/science/xenobiology) +/area/station/science/ordnance/burnchamber) "xAR" = ( /obj/machinery/door/airlock/security{ name = "Prison Workshop" @@ -70070,14 +70195,13 @@ /turf/open/floor/iron, /area/station/hallway/primary/tram/center) "xCr" = ( -/obj/structure/railing{ - dir = 8 - }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 9 }, -/obj/machinery/smartfridge/extract/preloaded, /obj/machinery/light/directional/north, +/obj/machinery/door/window/elevator/right/directional/west{ + transport_linked_id = "tram_xeno_lift" + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "xCs" = ( @@ -70245,6 +70369,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"xIU" = ( +/obj/effect/turf_decal/trimline/white/filled/line{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "xIV" = ( /obj/structure/table, /obj/item/stock_parts/micro_laser{ @@ -70434,14 +70565,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"xMv" = ( -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/obj/machinery/vending/wallmed/directional/north, -/turf/open/floor/iron/cafeteria, -/area/station/commons/dorms/laundry) "xMz" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -70504,16 +70627,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/checker, /area/station/commons/lounge) -"xNj" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/structure/table, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/security/brig) "xNk" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -70774,6 +70887,19 @@ "xRx" = ( /turf/closed/wall, /area/station/medical/surgery/fore) +"xRG" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/camera/directional/south{ + c_tag = "Secure - EVA Storage" + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/ai_monitored/command/storage/eva) "xRI" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 6 @@ -70884,16 +71010,6 @@ /obj/effect/turf_decal/tile/blue/opposingcorners, /turf/open/floor/iron/kitchen_coldroom, /area/station/medical/coldroom) -"xUu" = ( -/obj/machinery/button/door/directional/east{ - name = "Privacy Shutters Control"; - id = "ceprivacy" - }, -/obj/machinery/firealarm/directional/east{ - pixel_x = 33 - }, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/ce) "xUC" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, @@ -71042,22 +71158,6 @@ /obj/machinery/status_display/shuttle, /turf/closed/wall, /area/station/hallway/secondary/exit/departure_lounge) -"xWK" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell D"; - id = "Isolation_D" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/security/execution/transfer) "xXe" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71516,6 +71616,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/service/bar) +"yfe" = ( +/obj/machinery/button/door/directional/east{ + name = "Privacy Shutters Control"; + id = "ceprivacy" + }, +/obj/machinery/firealarm/directional/east{ + pixel_x = 33 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/ce) "yfw" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -76271,7 +76381,7 @@ aaa gcp gcp gcp -qoZ +aac aac aaa aaa @@ -77034,7 +77144,7 @@ aaa aaa aaa gcp -sst +pcA gnq gNy teo @@ -77292,7 +77402,7 @@ aaa aaa gcp aan -cwm +lsy agz agz agz @@ -77549,7 +77659,7 @@ aaa aaa gcp cKm -qZK +fpj agz gNy auz @@ -85138,11 +85248,11 @@ aaa jWs ems pJb -asq +aPg tnB eTl wei -xWK +gwT eOc ong jWs @@ -85909,11 +86019,11 @@ aaa jWs ems pJb -kVn +bYh tnB eTl wei -eyc +dzH eOc ong jWs @@ -86457,7 +86567,7 @@ bGu abJ abO acb -tuJ +hzl acs pZW qLD @@ -87972,7 +88082,7 @@ mXD jiF fea jWs -fNb +max amU amM jWs @@ -89050,7 +89160,7 @@ elr elr fFi apC -fii +jrg apC awh wBc @@ -89251,7 +89361,7 @@ smj ryo ozX gvI -lNN +aFl gvI ozX gvI @@ -89574,7 +89684,7 @@ wbb xFx tAs aTt -tgF +deu eOv jVT aTt @@ -89762,13 +89872,13 @@ lFk lFk jZM fls -inJ +bUH gvI -caZ +wTa fqn -pRh +iCh gvI -rRb +tOQ hst rBz wyM @@ -90080,7 +90190,7 @@ apC apC eAE apC -sOx +vSy vYD vYD jAK @@ -90322,7 +90432,7 @@ cVo nQE nQE uHm -nhz +amh yjz yjz yjz @@ -90578,7 +90688,7 @@ qQq hvm qQq qQq -qZx +kxP ncF apC apC @@ -90594,7 +90704,7 @@ apC apC lgu apC -bYC +veH pWC pWC nyV @@ -90792,11 +90902,11 @@ lFk kvd aaT gvI -cjF +gNT rZF kDo gvI -cjF +gNT rmm rBz fdr @@ -91620,7 +91730,7 @@ elr elr kXZ apC -pbL +poi apC gnQ liN @@ -93167,7 +93277,7 @@ jwq toy elr wsZ -ain +rYB elr bPz oar @@ -93423,8 +93533,8 @@ hft fOs qRc oTA -qes -eZS +rzG +kkz oTA kYL pKZ @@ -93871,7 +93981,7 @@ vzY xwf pxW isW -eam +hZb isW isW isW @@ -102407,7 +102517,7 @@ abM abM jnq kTr -vwR +sAk pXG hfW oFd @@ -103406,7 +103516,7 @@ snQ iRL oXU gRY -mpR +jYd cWZ cWZ lbL @@ -104229,7 +104339,7 @@ iHK bAK jsW vTc -xUu +yfe qcw sHH bXp @@ -104469,7 +104579,7 @@ fal aks lJv ulV -bcS +rNW rsz sjM unn @@ -104734,7 +104844,7 @@ vOE pmO bbj roB -jFs +rWb ohY roB roB @@ -104931,7 +105041,7 @@ nUP sTz nUP nUP -ePd +eRH vCt jQS adi @@ -105730,7 +105840,7 @@ xpb sKN xJG vsn -qds +rrC bHn lTP qjU @@ -111688,9 +111798,9 @@ ibY ibY ibY hiT -sgz +uXr rCd -aJl +ajj gEs nXQ rnA @@ -115290,7 +115400,7 @@ rwb qVr bfH bfH -jTC +upf qVr aaa aaa @@ -116053,7 +116163,7 @@ oNT dUT gdC qVr -bfH +rfi oxe ahk hdA @@ -116067,7 +116177,7 @@ sml bfH bfH oxe -jTC +upf qVr aaa aaa @@ -117292,7 +117402,7 @@ lGz kaF hOd vWx -amd +gXK vjZ fca imn @@ -117530,7 +117640,7 @@ xdZ mTg meg nxN -fmX +omS unl ikc bvk @@ -117548,7 +117658,7 @@ qCR pIb ubD jbp -dBz +cCZ sfE xBU aSi @@ -118059,7 +118169,7 @@ uGW uGW njI kjN -pVp +dwj qxm iLu oys @@ -118122,7 +118232,7 @@ xCr gJY coM bgH -pnc +jAo qVr qVr qVr @@ -119074,7 +119184,7 @@ kxV nXb wAB nzF -jGp +jrJ xdZ dci pni @@ -119137,7 +119247,7 @@ ebs hFH tYB qVr -jTC +vOW oxe bfH bfH @@ -119151,7 +119261,7 @@ uAF ahk hdA oxe -bfH +kZa qVr aaa aaa @@ -119331,7 +119441,7 @@ cZQ jwy sUC pIF -rAP +rRp ujf sDG oVg @@ -119631,7 +119741,7 @@ owO owO cJS rKD -cVU +udg cFW cFW nEB @@ -119851,7 +119961,7 @@ uGW uGW uGW uGW -rVP +lmb uGW uGW uGW @@ -119914,7 +120024,7 @@ bOi dUT aaa qVr -jTC +vOW bfH bfH qVr @@ -119947,7 +120057,7 @@ xvl xvl xvl xvl -wBF +jrN oXq xvl xvl @@ -120206,7 +120316,7 @@ xly xvl odF bya -hxe +shy xvl xhB nNk @@ -120222,7 +120332,7 @@ aUw tsc cex oqp -tyI +xIU nBY fFL oqp @@ -120467,9 +120577,9 @@ uxL xvl sRL nNk -wOn +xwg waj -cvp +fEV bKK xYZ pIp @@ -120479,7 +120589,7 @@ nss dKV jrR oqp -orN +jIj tyE grN fFL @@ -121250,7 +121360,7 @@ hXJ bcO sEh oqp -sAQ +uMW pAo jid oqp @@ -121489,7 +121599,7 @@ xvl xvl xvl xvl -vvp +gzU xvl xvl xvl @@ -122734,7 +122844,7 @@ dfz xVv qOo qOo -lZJ +xZs yei gBr hee @@ -122985,7 +123095,7 @@ dhM pUC fXK lyC -hox +wpr hox dfz vqO @@ -123761,7 +123871,7 @@ lkK aeg gPB qOo -qOo +kza jGx aej oAn @@ -124020,7 +124130,7 @@ xwi vJC qWf rLG -eOZ +xAM eOZ gkD gkD @@ -124276,7 +124386,7 @@ frV frT ryK jLH -jLH +lTo twv aaa aaa @@ -139268,209 +139378,209 @@ pMW pMW pMW pMW -"} -(8,1,2) = {" -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -cAd -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW -pMW +"} +(8,1,2) = {" +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW +pMW pMW pMW pMW @@ -139646,7 +139756,6 @@ pMW pMW pMW pMW -wIP pMW pMW pMW @@ -139666,7 +139775,8 @@ pMW pMW pMW pMW -cAd +pMW +pMW pMW pMW pMW @@ -139901,9 +140011,10 @@ pMW pMW pMW pMW +pMW +pMW cAd pMW -wIP pMW pMW pMW @@ -139923,7 +140034,6 @@ pMW pMW pMW pMW -wIP pMW pMW pMW @@ -140158,10 +140268,9 @@ pMW pMW pMW pMW -wIP pMW -wIP pMW +wIP pMW pMW pMW @@ -140180,7 +140289,6 @@ pMW pMW pMW pMW -wIP pMW cAd pMW @@ -140230,6 +140338,8 @@ pMW pMW pMW pMW +pMW +pMW aac aac aaa @@ -140415,8 +140525,8 @@ pMW pMW pMW pMW -wIP -wIP +cAd +pMW wIP pMW pMW @@ -140439,7 +140549,7 @@ pMW pMW wIP pMW -wIP +pMW pMW pMW pMW @@ -140672,7 +140782,7 @@ pMW pMW pMW pMW -pMW +wIP pMW wIP pMW @@ -140695,8 +140805,8 @@ pMW pMW pMW wIP -wIP -wIP +pMW +cAd pMW pMW pMW @@ -140929,8 +141039,8 @@ pMW pMW pMW pMW -pMW -pMW +wIP +wIP wIP pMW pMW @@ -140953,7 +141063,7 @@ pMW pMW wIP pMW -pMW +wIP pMW pMW pMW @@ -141209,8 +141319,8 @@ pMW pMW pMW wIP -pMW -pMW +wIP +wIP pMW pMW pMW @@ -143084,7 +143194,7 @@ pMW aaa aaa gcp -qqh +hoA exv gNy ydj @@ -143341,7 +143451,7 @@ pMW aaa aaa gcp -hjg +pkQ gNy gNy mVj @@ -148398,7 +148508,7 @@ dFP dFP dFP dFP -rsQ +gdz dFP ste mtr @@ -148921,11 +149031,11 @@ rWB dkD udZ nQM -tPE -tPE -tPE -tPE -tPE +ckM +ckM +ckM +ckM +ckM tdx tdx nqb @@ -149165,7 +149275,7 @@ rlv oca uhv vyI -lDA +tTw oca jNb qsa @@ -149179,10 +149289,10 @@ fLN tRo jNb ckM -nEF -jBy -iHr -mpw +ebu +eSs +jBp +ogY tdx mQa aju @@ -149436,10 +149546,10 @@ aGx cvz blu ckM -pYh -aow -mdY -tVO +oYi +lRR +pWI +fmG tdx mQa tdx @@ -149693,10 +149803,10 @@ aGx uAp hTa ckM -wpu -igT -mdY -mpw +teO +nLU +pWI +ogY tdx mQa tdx @@ -149948,12 +150058,12 @@ mWK xQS aGx uAp -teb -ilh -ufK -igT -mdY -mpw +gJW +xvf +ddB +nLU +pWI +ogY tdx mQa tdx @@ -150209,9 +150319,9 @@ hTa uIo maz wwI -bZG -hzR -sZH +bgE +eDk +fiS mQa tdx gmH @@ -150462,12 +150572,12 @@ wml xQS aGx kgr -seh -vpS -mNC -gkR -mdY -mpw +rdr +kfK +lzS +mqb +vFL +aqC tdx tdx tdx @@ -150721,10 +150831,10 @@ aGx uzt hTa ckM -edu -aUh -mdY -mpw +bal +vCl +dBc +dBc ckM bbM puN @@ -150979,9 +151089,9 @@ kly hTa ckM uOQ -sMX -mdY -tVO +gYq +dBc +oqF ckM aHD iOi @@ -151223,7 +151333,7 @@ kaD qYj ceW oca -dsG +lAB dDi jWg tPE @@ -151233,12 +151343,12 @@ jNb tPE bhY emO -otX +wcW ckM pMz -pzw -cGm -mpw +iMI +dBc +beN ckM kwo iOi @@ -151464,7 +151574,7 @@ hzN hzN kQP asI -nLt +xRG hzN xQv xQv @@ -151492,9 +151602,9 @@ fLN icl jNb ckM -ckM -ckM -ckM +qjL +iTO +aQF ckM ckM dNa @@ -151707,16 +151817,16 @@ aBK rGN dTL mjM -vlr +kBO tBO -fQv +tWO qZy run ayR gKX ayR dsF -dtn +wEJ idW hzN hzN @@ -151726,8 +151836,8 @@ hzN gkU gkU eaU -lLl -noE +ljj +sXJ aBV aBV aBV @@ -151976,7 +152086,7 @@ eeL kHZ pEM lOK -ggl +wiZ dxC nTm eja @@ -152515,7 +152625,7 @@ fKO fKO jvf fKO -qyE +hHA jvf tPE tPE @@ -153029,7 +153139,7 @@ jmR oxf qit qIN -iEH +lfW jvf tkv lGp @@ -153258,7 +153368,7 @@ nca nca yji dsF -tlH +eWw eQR dxC dxC @@ -153274,14 +153384,14 @@ aBV aBV aBV wHT -fEf +hNb yhe vBn tRV sik iOm ofA -fHD +hQZ vhG jSd nXI @@ -153533,17 +153643,17 @@ ief wHT tKK sNr -epe +knA wHT wHT wHT wHT wHT -nnC +vbQ fKO jvf fKO -eWl +onT jvf loc syX @@ -154067,14 +154177,14 @@ ujs kGA tDT tDT -nFE +tMu tDT tDT gTJ kGA tDT tDT -nFE +tMu tDT tDT gTJ @@ -154816,7 +154926,7 @@ aQO gPA hbV dbJ -wFK +sob eSH wJy xgZ @@ -155049,7 +155159,7 @@ udq awz rOh tfp -rWk +gmK nca nca neC @@ -155351,7 +155461,7 @@ lyx rIg qIs fSr -xMv +iPT rVp rVp vgZ @@ -155570,7 +155680,7 @@ ruA nyt phB qdY -xNj +gVu qyZ ouQ wWe @@ -156639,7 +156749,7 @@ fSr qOF aSe mXY -eqF +mOt tdR qOF aKZ @@ -156848,7 +156958,7 @@ iUh iUh aFV tfp -rWk +gmK nca nca neC @@ -157922,14 +158032,14 @@ cLs kGA tDT tDT -nFE +tMu tDT tDT gTJ kGA tDT tDT -nFE +tMu tDT tDT gTJ @@ -158962,7 +159072,7 @@ ndb fsC vaR ebq -dlv +qEb apC abM abM @@ -159210,7 +159320,7 @@ ndb ndb ndb ndb -nfQ +bEy ndb ndb ndb @@ -165640,11 +165750,11 @@ hVZ jWe kRL kRL -vYG +baQ xRx xRx lBQ -gzI +bQb apC apC abM @@ -166119,8 +166229,8 @@ abM abM omm mvm -qRf -bvb +tJY +pzz roi bhs aaa @@ -166635,7 +166745,7 @@ omm vzp vhA jLI -qPu +kep bhs izU izU @@ -166893,7 +167003,7 @@ jEL hht nTz rQl -hYH +wwj izU swd izU @@ -168438,7 +168548,7 @@ wmz aZo wev mHc -qjx +nEh vmH vyH pSr @@ -168471,14 +168581,14 @@ dZX lxI xNq jts -sJh +nyI jtr pCV jtr jtr tLE aON -nkB +mxw aPJ pFX jYS @@ -170004,7 +170114,7 @@ rjx nhc eYP tIX -idy +irR jtr vWR oIU @@ -172539,7 +172649,7 @@ jSK atr siv cRF -bIj +qHv mwA mwA arY @@ -173052,7 +173162,7 @@ abM lZW oQt wRR -mVM +aKx dME dME eOL @@ -173860,7 +173970,7 @@ wTP sFA uKP wdx -qfS +itS gNN whz ulm @@ -174116,7 +174226,7 @@ ePi bZI fuo nXh -axE +knM ugP ddn whz @@ -181028,7 +181138,7 @@ dAx oum nAH wuC -qmH +kCM whL eKt btV @@ -181579,7 +181689,7 @@ ngA tby tby bJp -pbS +udm dLO vCh pMk @@ -181799,7 +181909,7 @@ bXv kOl jAU psU -ipz +ksh whL nqh dgt @@ -182059,7 +182169,7 @@ uWn oAV whL ged -hbF +wwS ged whL bMb @@ -182100,7 +182210,7 @@ tYp pbH pbH pbH -pbH +qVr qVr qVr qVr @@ -182309,11 +182419,11 @@ dzw sxR skb oAV -hgo +rol uWi rpY -ivy -fSM +kMJ +lMu vYl pDa tZP @@ -182341,7 +182451,7 @@ oxL fJQ mlM bxG -nDR +oDB fFR tPZ pqV @@ -182358,7 +182468,7 @@ pbH uvU umu qVr -qVr +tBo mFh tBo tBo @@ -182603,7 +182713,7 @@ vNk kTU xyt rpq -ovC +bre dCq uiV rGj @@ -182616,7 +182726,7 @@ mAL nKU qVr tEx -tBo +mVN tBo tBo qVr @@ -182872,8 +182982,8 @@ pbH bmz pIx qVr -ttj tBo +ttj tBo tBo tBo @@ -182885,7 +182995,7 @@ eJQ bNx aSt aSt -xAM +qVr aaa aaa aaa @@ -183113,10 +183223,10 @@ lEU ios aKz mai -rbA +oBP wwP -jbt -pbS +hwu +udm jwe iij yaB @@ -183131,7 +183241,7 @@ pHX qVr cAK ttj -ttj +hLj ttj ttj nzg @@ -183140,7 +183250,7 @@ ksk bsh rQr aMh -njd +vXS aSt qVr aaa @@ -183629,7 +183739,7 @@ vTb vTb rbn crj -wWT +jIO bCx uvB rBb @@ -183855,7 +183965,7 @@ lvK ryS dkf xtD -vvN +fTP vYl vhn lSM @@ -183900,7 +184010,7 @@ pbH vSa cJR qVr -qVr +tBo tBo tBo tBo @@ -184100,11 +184210,11 @@ bYR haS udQ udQ -tfj -ldo -tZa -tZa -rWz +ldM +bha +bha +bha +eLH udQ pRM pRM @@ -184156,7 +184266,7 @@ tYp pbH pbH pbH -pbH +qVr qVr qVr qVr @@ -184364,12 +184474,12 @@ eVn eCw urf pRM -uHb +fAP aAN aBe vCv mAS -qHI +ksV fur cJm jjS @@ -184395,7 +184505,7 @@ sSr sSr pFe dPe -ggQ +rxU xti bNa jpV @@ -184663,7 +184773,7 @@ qsg qsg qsg bJp -pbS +udm dLO vCh pMk @@ -185174,7 +185284,7 @@ dpB nZO kvt wtw -jPl +gfY syv hrh ieV @@ -185487,9 +185597,9 @@ vUu gFf gFf oMI -llv +uJi dVM -luk +oNn jkc cOc jYn @@ -185644,7 +185754,7 @@ udQ aWL tft ttS -obl +eZd utY fHV qar @@ -186155,7 +186265,7 @@ aac aac aaa xxZ -ioT +kse bYD axz uwE @@ -186786,7 +186896,7 @@ dVM cHZ oMI gFf -sXk +wLe uqS uqS gFf @@ -187031,7 +187141,7 @@ gFf oMI bZA dVM -ssp +hFY lSG xsW jJv @@ -187221,7 +187331,7 @@ geG rls twO eBd -iYJ +pUl kro nQr aKU @@ -189270,7 +189380,7 @@ kIo kIo qSm orX -bns +uRW fmy aac aac diff --git a/_maps/map_files/wawastation/wawastation.dmm b/_maps/map_files/wawastation/wawastation.dmm index 066c4bbf51db..ebc3a7088447 100644 --- a/_maps/map_files/wawastation/wawastation.dmm +++ b/_maps/map_files/wawastation/wawastation.dmm @@ -221,20 +221,6 @@ }, /turf/open/openspace, /area/station/maintenance/port/greater) -"adQ" = ( -/obj/structure/cable, -/obj/structure/closet/l3closet/scientist, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","rd","xeno") - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/textured_large, -/area/station/science/xenobiology) "adV" = ( /obj/effect/turf_decal/tile/yellow, /obj/machinery/light/dim/directional/east, @@ -486,6 +472,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"ahz" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/engineering/atmos/upper) "ahE" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) @@ -632,6 +629,11 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"ako" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plating, +/area/station/service/theater) "aks" = ( /obj/machinery/light/directional/north, /obj/structure/stairs/east, @@ -820,12 +822,6 @@ /mob/living/basic/mimic/crate, /turf/open/floor/iron/white, /area/station/maintenance/aft/upper) -"ank" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/engine{ - name = "Holodeck Projector Floor" - }, -/area/station/holodeck/rec_center) "anu" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/junction, /turf/closed/wall/r_wall, @@ -868,6 +864,10 @@ "aod" = ( /turf/open/floor/iron/herringbone, /area/station/hallway/primary/central) +"aof" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/cargo/storage) "aor" = ( /obj/structure/frame/machine, /obj/item/stack/cable_coil/five, @@ -909,6 +909,13 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/plating, /area/station/cargo/storage) +"aoP" = ( +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/science/xenobiology) "apb" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, @@ -1032,8 +1039,7 @@ /turf/open/floor/wood, /area/station/commons/lounge) "aqT" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/emergency, +/mob/living/basic/bot/cleanbot, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat/foyer) "arl" = ( @@ -1041,6 +1047,18 @@ /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"arq" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Gravity Generator Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/heavy, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "arr" = ( /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) @@ -1110,18 +1128,16 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "asP" = ( -/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/radio/intercom/directional/south, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/xenobiology/hallway) +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/paramedic) "asZ" = ( /turf/open/floor/glass/airless, /area/space/nearstation) @@ -1132,6 +1148,15 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/white, /area/station/hallway/secondary/entry) +"atb" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/exit/departure_lounge) "ath" = ( /obj/machinery/door/window/left/directional/west, /turf/open/floor/grass, @@ -1181,18 +1206,6 @@ /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"auo" = ( -/obj/structure/table, -/obj/item/cultivator, -/obj/item/hatchet, -/obj/item/paper/guides/jobs/hydroponics, -/obj/effect/spawner/random/entertainment/coin{ - spawn_loot_count = 2; - spawn_random_offset = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "auB" = ( /turf/open/floor/engine, /area/station/medical/chemistry) @@ -1435,10 +1448,6 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central) -"axO" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/maintenance/central/greater) "axQ" = ( /obj/effect/turf_decal/stripes, /obj/machinery/atmospherics/components/binary/valve/digital/on{ @@ -1638,14 +1647,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) -"aBe" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ - dir = 1 - }, -/obj/item/storage/medkit/advanced, -/turf/open/floor/iron/dark, -/area/station/command/bridge) "aBM" = ( /obj/structure/table/wood, /obj/item/food/carneburrito{ @@ -1776,6 +1777,15 @@ /obj/effect/spawner/random/structure/closet_empty/crate, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) +"aEd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/item/storage/toolbox/fishing, +/obj/item/storage/toolbox/fishing, +/obj/item/fishing_rod, +/obj/item/fishing_rod, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "aEh" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -2340,6 +2350,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/xenobiology) +"aMg" = ( +/obj/machinery/light/cold/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table/reinforced, +/obj/item/electronics/apc, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "aMx" = ( /obj/structure/cable, /obj/machinery/camera/autoname/motion/directional/south{ @@ -2658,12 +2676,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/parquet, /area/station/service/theater) -"aSv" = ( -/obj/effect/turf_decal/tile/brown/anticorner/contrasted, -/obj/effect/spawner/random/clothing/wardrobe_closet_colored, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/cargo/boutique) "aSx" = ( /obj/machinery/door/airlock/atmos{ name = "Incinerator" @@ -2990,6 +3002,11 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/storage) +"aZw" = ( +/obj/item/radio/intercom/directional/south, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "aZK" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -3146,6 +3163,11 @@ /obj/machinery/byteforge, /turf/open/floor/iron/dark/textured, /area/station/cargo/bitrunning/den) +"bcm" = ( +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/textured, +/area/station/engineering/storage/tech) "bco" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port) @@ -3234,6 +3256,12 @@ /obj/machinery/light/floor, /turf/open/floor/iron/textured, /area/station/command/heads_quarters/qm) +"beA" = ( +/obj/machinery/door/airlock/research{ + name = "Restroom" + }, +/turf/open/floor/iron/showroomfloor, +/area/station/science/research) "beE" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/iron/dark/textured_large, @@ -3663,6 +3691,19 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/carpet, /area/station/service/theater) +"bmO" = ( +/obj/machinery/vending/clothing, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood/parquet, +/area/station/service/theater) +"bmV" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "bnb" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/valve{ @@ -4049,6 +4090,16 @@ /obj/machinery/defibrillator_mount/directional/south, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"bvj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/corner{ + dir = 1 + }, +/area/station/service/hydroponics/garden) "bvl" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -4753,6 +4804,17 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) +"bGF" = ( +/obj/effect/turf_decal/tile/red/half/contrasted{ + dir = 4 + }, +/obj/structure/chair{ + dir = 1; + name = "Prosecution" + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/security/courtroom) "bGL" = ( /obj/machinery/button/door/directional/north{ id = "Xenolab"; @@ -4770,6 +4832,14 @@ dir = 8 }, /area/station/science/xenobiology) +"bGU" = ( +/obj/machinery/computer/atmos_alert/station_only{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron, +/area/station/engineering/atmos/upper) "bGW" = ( /obj/structure/cable, /obj/effect/spawner/random/engineering/tracking_beacon, @@ -4896,12 +4966,6 @@ /obj/machinery/door/window/right/directional/west, /turf/open/floor/grass, /area/station/service/hydroponics/garden) -"bJc" = ( -/obj/structure/railing/corner, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lobby) "bJo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/kitchen, @@ -4938,15 +5002,6 @@ }, /turf/open/misc/asteroid, /area/station/asteroid) -"bKP" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/turf_decal/tile/brown/half/contrasted, -/obj/structure/table, -/obj/structure/cable, -/obj/item/healthanalyzer/simple, -/obj/effect/mapping_helpers/apc/full_charge, -/turf/open/floor/iron, -/area/station/cargo/storage) "bKQ" = ( /obj/structure/cable, /turf/open/floor/iron/dark/textured_large, @@ -5020,6 +5075,13 @@ dir = 4 }, /area/station/hallway/secondary/exit/departure_lounge) +"bMZ" = ( +/obj/machinery/ore_silo, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/ai/directional/north, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) "bNp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -5293,6 +5355,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"bSY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "bTm" = ( /obj/effect/spawner/structure/window, /obj/structure/curtain/cloth/fancy/mechanical{ @@ -5444,18 +5514,6 @@ /obj/structure/flora/tree/palm/style_random, /turf/open/floor/grass, /area/station/medical/chemistry) -"bVa" = ( -/obj/structure/table/wood, -/obj/item/storage/crayons, -/obj/item/toy/crayon/spraycan{ - pixel_x = -4 - }, -/obj/item/toy/crayon/spraycan{ - pixel_x = -4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/purple, -/area/station/service/library) "bVg" = ( /obj/structure/chair/comfy/brown, /obj/effect/landmark/start/clown, @@ -5488,14 +5546,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"bVB" = ( -/obj/effect/spawner/structure/window, -/obj/structure/curtain/cloth/fancy/mechanical{ - id = "law" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/service/lawoffice) "bVY" = ( /obj/machinery/holopad{ pixel_x = 1 @@ -5651,15 +5701,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"bYH" = ( -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/machinery/light/warm/dim/directional/north, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/herringbone, -/area/station/hallway/primary/central) "bYP" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -5951,13 +5992,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"cdV" = ( -/obj/structure/stairs/east, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/stairs/medium{ - dir = 8 - }, -/area/station/medical/storage) "cdW" = ( /obj/structure/table/wood, /obj/machinery/fax/auto_name, @@ -6011,12 +6045,6 @@ /obj/structure/bookcase/random/nonfiction, /turf/open/floor/wood, /area/station/service/library) -"ceF" = ( -/obj/structure/table, -/obj/item/paper_bin/carbon, -/obj/machinery/light_switch/directional/east, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "ceN" = ( /obj/item/wallframe/apc, /turf/open/misc/asteroid, @@ -6126,14 +6154,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"che" = ( -/obj/machinery/light/cold/directional/south, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "chm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/smooth_large, @@ -6157,17 +6177,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/large, /area/station/cargo/boutique) -"chM" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lobby) "chU" = ( /obj/effect/turf_decal/tile/red/diagonal_edge, /obj/effect/decal/cleanable/dirt, @@ -6261,10 +6270,21 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ciZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/turret_protected/ai_upload) "cjp" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"cjK" = ( +/obj/structure/lattice, +/obj/structure/cable, +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/command/meeting_room) "cjV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/delivery, @@ -6368,13 +6388,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/command/heads_quarters/rd) -"clX" = ( -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "clY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -6474,15 +6487,12 @@ }, /turf/open/floor/plating, /area/station/cargo/storage) -"cou" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Blast Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/engine, -/area/station/medical/chemistry) +"coF" = ( +/obj/effect/turf_decal/tile/purple/fourcorners, +/obj/machinery/light/small/directional/north, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron, +/area/station/science/ordnance) "coQ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, @@ -6872,6 +6882,17 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/central/lesser) +"cwR" = ( +/obj/structure/sign/warning/yes_smoking/circle/directional/west, +/obj/item/cigbutt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/dark/textured_corner{ + dir = 4 + }, +/area/station/science/breakroom) "cxg" = ( /turf/open/misc/asteroid/airless, /area/space/nearstation) @@ -6914,6 +6935,12 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) +"cxP" = ( +/obj/structure/table, +/obj/machinery/light_switch/directional/east, +/obj/item/flashlight/lamp, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "cya" = ( /obj/machinery/computer/operating{ dir = 4 @@ -6930,6 +6957,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/lobby) +"cyp" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/corner{ + dir = 4 + }, +/area/station/service/hydroponics/garden) "cyw" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, @@ -7284,6 +7322,15 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"cFF" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/effect/turf_decal/tile/brown/half/contrasted, +/obj/structure/table, +/obj/structure/cable, +/obj/item/healthanalyzer/simple, +/obj/effect/mapping_helpers/apc/full_charge, +/turf/open/floor/iron, +/area/station/cargo/storage) "cFH" = ( /obj/effect/turf_decal/tile/blue/half/contrasted, /obj/structure/cable, @@ -7389,24 +7436,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"cHu" = ( -/obj/item/reagent_containers/spray/plantbgone, -/obj/item/reagent_containers/spray/pestspray{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/reagent_containers/cup/bottle/nutrient/ez, -/obj/item/reagent_containers/cup/bottle/nutrient/rh{ - pixel_x = 2; - pixel_y = 1 - }, -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "cHP" = ( /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) @@ -7454,6 +7483,12 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) +"cIM" = ( +/obj/effect/turf_decal/siding, +/obj/structure/table, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/large, +/area/station/commons/locker) "cIN" = ( /obj/structure/barricade/wooden/crude, /turf/open/misc/asteroid, @@ -7507,11 +7542,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"cJM" = ( -/obj/structure/cable, -/obj/machinery/vending/wallmed/directional/north, -/turf/open/floor/iron/white, -/area/station/science/research) "cJO" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral{ @@ -7797,16 +7827,13 @@ dir = 4 }, /area/station/science/research) -"cPp" = ( -/obj/machinery/ore_silo, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/bot_white, -/obj/machinery/status_display/ai/directional/north, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) "cPt" = ( /turf/closed/wall/r_wall, /area/station/science/lab) +"cPz" = ( +/mob/living/basic/axolotl, +/turf/open/water/no_planet_atmos, +/area/station/service/hydroponics/garden) "cPE" = ( /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid, @@ -8013,6 +8040,13 @@ }, /turf/open/floor/wood, /area/station/service/theater) +"cSy" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/half, +/area/station/service/hydroponics/garden) "cSC" = ( /obj/machinery/pdapainter/engineering, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -8067,6 +8101,17 @@ /obj/machinery/light/dim/directional/south, /turf/open/floor/wood, /area/station/service/library) +"cTX" = ( +/obj/machinery/computer/crew{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","medbay") + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/paramedic) "cUe" = ( /obj/machinery/rnd/production/protolathe/department/science, /turf/open/floor/iron/white, @@ -8166,6 +8211,21 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/white/small, /area/station/science/lobby) +"cVF" = ( +/obj/machinery/disposal/bin{ + desc = "A pneumatic waste disposal unit. This one leads into space!"; + name = "deathsposal unit" + }, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "cVL" = ( /obj/structure/closet/firecloset, /turf/open/floor/iron/textured, @@ -8314,6 +8374,16 @@ /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating/airless, /area/station/maintenance/department/medical/central) +"cYq" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Primary Tool Storage" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "cYs" = ( /obj/effect/spawner/random/structure/crate, /obj/effect/spawner/random/maintenance, @@ -8653,28 +8723,12 @@ }, /turf/open/floor/engine, /area/station/science/explab) -"dek" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "des" = ( /obj/structure/closet/lasertag/blue, /obj/effect/turf_decal/tile/blue/fourcorners, /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"deR" = ( -/obj/machinery/computer/atmos_alert/station_only{ - dir = 4 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron, -/area/station/engineering/atmos/upper) "deY" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/firealarm/directional/east, @@ -8767,6 +8821,14 @@ }, /turf/open/floor/plating, /area/station/medical/storage) +"dgG" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/gravity_generator) "dgS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -9083,6 +9145,11 @@ dir = 1 }, /area/station/command/bridge) +"dlg" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/lavendergrass, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "dlp" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/green/full, @@ -9286,6 +9353,10 @@ /obj/item/pickaxe/improvised, /turf/open/misc/asteroid, /area/station/maintenance/department/medical) +"dpb" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/command/corporate_showroom) "dpc" = ( /obj/structure/table/wood, /obj/structure/railing{ @@ -9393,19 +9464,26 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"dqJ" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/light/dim/directional/west, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "dqK" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/manifold4w, /turf/open/space/basic, /area/space/nearstation) +"dqU" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","rd") + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white/smooth_edge{ + dir = 1 + }, +/area/station/science/research) "dqW" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -9516,6 +9594,18 @@ "dsy" = ( /turf/open/floor/iron/dark/textured_large, /area/station/security/interrogation) +"dsB" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect1"; + name = "Security Shutters" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "dsF" = ( /obj/item/flashlight/lantern, /turf/open/misc/asteroid, @@ -9589,6 +9679,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) +"dtI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/item/radio/intercom/directional/south, +/obj/item/storage/box/bandages, +/turf/open/floor/iron, +/area/station/command/gateway) "dtQ" = ( /obj/structure/cable, /turf/open/misc/asteroid, @@ -9934,11 +10034,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"dAa" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "dAe" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -10269,42 +10364,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor, /area/station/maintenance/central/lesser) -"dGf" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/turf/open/floor/iron/corner{ - dir = 4 - }, -/area/station/service/hydroponics/garden) "dGh" = ( /obj/structure/cable, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"dGi" = ( -/obj/structure/lattice, -/obj/structure/cable, -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/command/meeting_room) "dGq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, /turf/open/floor/carpet/orange, /area/station/service/theater) -"dGr" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron/white, -/area/station/medical/paramedic) "dGs" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -10365,6 +10434,15 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"dGO" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood, +/area/station/service/lawoffice) "dGR" = ( /obj/structure/fluff/minepost, /obj/machinery/light/small/dim/directional/north, @@ -10437,15 +10515,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"dIc" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch/directional/north{ - pixel_x = 12 - }, -/obj/structure/cable, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "dIe" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/dark{ @@ -10453,11 +10522,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/chapel) -"dIi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "dIn" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10541,12 +10605,6 @@ }, /turf/open/floor/iron, /area/station/commons/locker) -"dJI" = ( -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron/white/smooth_half{ - dir = 8 - }, -/area/station/science/xenobiology) "dJJ" = ( /obj/structure/plasticflaps, /obj/machinery/navbeacon{ @@ -10569,6 +10627,19 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) +"dKo" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Secure Pen" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Xenolab"; + name = "Test Chamber Blast Door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "dKp" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10735,6 +10806,14 @@ }, /turf/open/floor/iron/dark/small, /area/station/science/cytology) +"dOl" = ( +/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ + name = "chimpanzee filth exhaust" + }, +/obj/machinery/light/directional/north, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/science/research) "dOv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -10790,23 +10869,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/hallway/primary/starboard) -"dPe" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Xenobiology Space Bridge" - }, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/xenobiology/hallway) "dPf" = ( /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) @@ -10858,6 +10920,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/service/chapel) +"dPF" = ( +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "dPG" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/cable, @@ -11122,6 +11188,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"dTR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/iron/corner, +/area/station/service/hydroponics/garden) "dTU" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -11234,10 +11307,6 @@ /area/station/service/janitor) "dWb" = ( /obj/structure/window/reinforced/spawner/directional/west, -/mob/living/basic/bot/repairbot, -/obj/effect/turf_decal/stripes{ - dir = 6 - }, /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) @@ -11845,10 +11914,6 @@ /obj/structure/filingcabinet/chestdrawer, /turf/open/floor/iron, /area/station/security/brig/entrance) -"ehq" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/science/research) "ehs" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -11975,14 +12040,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"ejk" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark/textured, -/area/station/command/heads_quarters/cmo) "ejl" = ( /obj/machinery/holopad/secure, /turf/open/floor/carpet/red, @@ -12122,16 +12179,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/upper) -"elm" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/north{ - network = list("ss13","medbay") - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "ely" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -12176,6 +12223,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"emO" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/vending/wallmed/directional/east, +/turf/open/floor/iron, +/area/station/engineering/lobby) "eng" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12322,10 +12379,6 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/main) -"epI" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/hallway/secondary/entry) "epK" = ( /turf/closed/wall/r_wall, /area/station/cargo/warehouse/upper) @@ -12381,10 +12434,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, /area/station/science/robotics/lab) -"eqZ" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "era" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -12492,14 +12541,26 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"esV" = ( +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/railing, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/light/dim/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/dark/corner{ + dir = 1 + }, +/area/station/engineering/atmos/upper) "esX" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/power_store/cell/high{ - pixel_x = 0; pixel_y = 7 }, /obj/item/stock_parts/power_store/cell/high{ - pixel_x = 0; pixel_y = 4 }, /obj/item/stock_parts/power_store/cell/high, @@ -12967,14 +13028,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/science/lab) -"eBD" = ( -/obj/item/kirbyplants/random, -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/iron/white, -/area/station/science/research) "eBE" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -13331,6 +13384,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/storage/art) +"eGM" = ( +/obj/machinery/light/directional/north, +/obj/structure/cable, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/radio/intercom/directional/south, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology/hallway) "eGN" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -13394,6 +13460,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"eIM" = ( +/obj/effect/turf_decal/siding/dark, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/corporate_showroom) "eIO" = ( /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall, @@ -13459,6 +13532,14 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/carpet/executive, /area/station/command/corporate_showroom) +"eJM" = ( +/obj/effect/spawner/structure/window, +/obj/structure/curtain/cloth/fancy/mechanical{ + id = "law" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/service/lawoffice) "eJQ" = ( /obj/structure/flora/bush/flowers_pp/style_random, /obj/structure/window/spawner/directional/south, @@ -13772,6 +13853,12 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/science) +"eRy" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/engine{ + name = "Holodeck Projector Floor" + }, +/area/station/holodeck/rec_center) "eRA" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -13807,12 +13894,6 @@ dir = 4 }, /area/station/engineering/atmos) -"eSc" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron/corner{ - dir = 8 - }, -/area/station/service/hydroponics/garden) "eSe" = ( /obj/structure/chair/sofa/bench, /obj/effect/spawner/random/trash/mess, @@ -13908,16 +13989,6 @@ /obj/structure/table, /turf/open/floor/iron, /area/station/hallway/primary/central) -"eTH" = ( -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/airalarm/directional/east, -/obj/structure/sign/departments/chemistry/pharmacy/directional/north, -/obj/item/storage/box/bandages, -/turf/open/floor/iron/white, -/area/station/medical/medbay/lobby) "eTZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 8 @@ -13951,6 +14022,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/engineering/main) +"eVl" = ( +/obj/machinery/light/warm/directional/south, +/obj/structure/flora/grass/jungle, +/turf/open/water/no_planet_atmos, +/area/station/service/hydroponics/garden) "eVq" = ( /obj/structure/cable, /obj/machinery/power/terminal{ @@ -14069,6 +14145,17 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/commons/locker) +"eXW" = ( +/obj/machinery/fax{ + fax_name = "Psychology Office"; + name = "Psychology Office Fax Machine" + }, +/obj/structure/table/wood, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood/parquet, +/area/station/medical/psychology) "eYd" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /obj/machinery/button/door/directional/south{ @@ -14148,13 +14235,6 @@ "eYP" = ( /turf/closed/wall/rust, /area/station/medical/chemistry/minisat) -"eYS" = ( -/obj/structure/closet/secure_closet/warden, -/obj/item/gun/energy/laser, -/obj/item/radio/intercom/directional/north, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/carpet/red, -/area/station/security/warden) "eYT" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/radio/intercom/prison/directional/north, @@ -14278,18 +14358,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/mid_joiner, /turf/open/floor/iron/white/smooth_edge, /area/station/medical/pharmacy) -"faF" = ( -/obj/structure/cable, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/xenobiology/hallway) "faK" = ( /turf/open/floor/glass/reinforced, /area/station/ai_monitored/turret_protected/ai_upload_foyer) @@ -14511,26 +14579,6 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) -"ffP" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/engineering/atmos/upper) -"ffT" = ( -/obj/structure/rack, -/obj/effect/spawner/random/maintenance/no_decals/two, -/obj/machinery/camera/autoname/motion/directional/east{ - network = list("minisat") - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/turret_protected/aisat/uppersouth) "fgi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14628,6 +14676,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science) +"fhP" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lobby) "fib" = ( /obj/machinery/conveyor/auto{ id = "hoptroll" @@ -15081,10 +15137,6 @@ /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron, /area/station/service/hydroponics) -"fre" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/command/corporate_showroom) "frh" = ( /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, @@ -15116,6 +15168,10 @@ }, /turf/open/floor/plating, /area/station/science/genetics) +"frv" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/iron/dark, +/area/station/medical/morgue) "fry" = ( /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) @@ -15284,15 +15340,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/asteroid) -"fuc" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/cargo/storage) "fuk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -15786,10 +15833,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"fCI" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/command/meeting_room) "fCR" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 1 @@ -16014,11 +16057,6 @@ /obj/effect/decal/cleanable/rubble, /turf/open/misc/asteroid, /area/station/cargo/miningoffice) -"fFQ" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "fFT" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, @@ -16031,6 +16069,16 @@ /obj/structure/disposalpipe/trunk/multiz/down, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"fGj" = ( +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/medical/treatment_center) "fGm" = ( /obj/effect/landmark/event_spawn, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -16427,13 +16475,6 @@ /obj/structure/closet/secure_closet/freezer/meat, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) -"fNH" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark/corner, -/area/station/engineering/atmos) "fNW" = ( /obj/effect/landmark/carpspawn, /turf/open/space/openspace, @@ -16622,6 +16663,14 @@ }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain/private) +"fQm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/spawner/random/entertainment/arcade{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) "fQp" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -16673,6 +16722,11 @@ }, /turf/open/floor/iron, /area/station/engineering/lobby) +"fQX" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "fQZ" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/portable_atmospherics/canister/nitrogen, @@ -16710,6 +16764,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/aft/upper) +"fRX" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/light_switch/directional/north{ + pixel_x = 12 + }, +/obj/structure/cable, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "fSb" = ( /obj/structure/tank_dispenser/oxygen, /obj/machinery/light/directional/north, @@ -16984,26 +17047,6 @@ /obj/item/sticker/clown, /turf/open/misc/asteroid, /area/station/asteroid) -"fWU" = ( -/obj/item/reagent_containers/spray/plantbgone{ - pixel_y = 3 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 8; - pixel_y = 8 - }, -/obj/item/reagent_containers/spray/plantbgone{ - pixel_x = 13; - pixel_y = 5 - }, -/obj/item/watertank, -/obj/item/grenade/chem_grenade/antiweed, -/obj/structure/table/glass, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/service/hydroponics) "fWZ" = ( /obj/structure/girder, /obj/structure/lattice/catwalk, @@ -17283,6 +17326,14 @@ }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"gbR" = ( +/obj/item/kirbyplants/random, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) "gbS" = ( /obj/effect/landmark/start/botanist, /turf/open/floor/glass/reinforced, @@ -17488,11 +17539,6 @@ dir = 1 }, /area/station/science/research) -"ggl" = ( -/obj/machinery/camera/autoname/directional/west, -/obj/structure/water_source/puddle, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "ggu" = ( /obj/machinery/door/airlock/public/glass{ name = "Library" @@ -17871,6 +17917,12 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/engine, /area/station/command/heads_quarters/rd) +"gmX" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "gnh" = ( /obj/item/knife/kitchen, /turf/open/misc/asteroid, @@ -17969,6 +18021,14 @@ /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) +"gpT" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/dark_blue/half/contrasted{ + dir = 1 + }, +/obj/item/storage/medkit/advanced, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "gpV" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/red/opposingcorners, @@ -18015,6 +18075,23 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"gqB" = ( +/obj/machinery/door/airlock{ + name = "Law Office" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/lawyer, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/station/service/lawoffice) "gqN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /turf/closed/wall/r_wall, @@ -18139,11 +18216,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"gsm" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "gsn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -18197,16 +18269,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lobby) -"gtC" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Primary Tool Storage" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "gtE" = ( /obj/machinery/door/poddoor/shutters/window/preopen{ dir = 8; @@ -18238,14 +18300,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig/entrance) -"gtY" = ( -/obj/machinery/rnd/production/techfab/department/service, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light/directional/south, -/obj/effect/turf_decal/tile/dark_green/opposingcorners, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "gub" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18443,16 +18497,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) -"gwF" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/old, -/obj/machinery/airalarm/directional/north, -/obj/machinery/camera/autoname/motion/directional/east{ - network = list("minisat") - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/uppernorth) "gwS" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -18782,6 +18826,19 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/safe) +"gBW" = ( +/obj/machinery/disposal/bin{ + desc = "A pneumatic waste disposal unit. This one leads into space!"; + name = "deathsposal unit" + }, +/obj/effect/turf_decal/stripes/end, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "gBY" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 5 @@ -19153,6 +19210,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig/entrance) +"gIq" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "gIw" = ( /obj/machinery/door/airlock/research/glass{ name = "Robotics Lab" @@ -19222,6 +19289,13 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/catwalk_floor/iron_dark, /area/station/cargo/bitrunning/den) +"gJC" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/white{ + dir = 8 + }, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "gJE" = ( /obj/machinery/door/poddoor/shutters{ id = "maintbridge" @@ -19257,9 +19331,7 @@ /turf/closed/wall, /area/station/science/auxlab/firing_range) "gKu" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ - initialize_directions = 15 - }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) @@ -19281,13 +19353,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"gLa" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/lobby) "gLp" = ( /obj/structure/closet/secure_closet/personal, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -19410,13 +19475,6 @@ }, /turf/open/floor/wood/tile, /area/station/service/chapel) -"gNu" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 4 - }, -/obj/machinery/vending/wallmed/directional/east, -/turf/open/floor/iron, -/area/station/cargo/storage) "gNB" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -19515,8 +19573,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/flesh_shears{ - pixel_y = 10; - pixel_x = -5 + pixel_x = -5; + pixel_y = 10 }, /turf/open/floor/iron/white/textured, /area/station/science/genetics) @@ -19593,14 +19651,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/tile, /area/station/commons/dorms) -"gQu" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lobby) "gQK" = ( /obj/structure/cable, /obj/effect/landmark/event_spawn, @@ -19820,35 +19870,6 @@ dir = 10 }, /area/station/command/meeting_room) -"gUI" = ( -/obj/machinery/light/directional/west, -/obj/machinery/button/door/directional/north{ - id = "Xenolab"; - name = "Test Chamber Blast Doors"; - pixel_x = 6; - pixel_y = -2; - req_access = list("xenobiology") - }, -/obj/machinery/button/ignition{ - id = "Xenobio"; - pixel_x = -6 - }, -/obj/structure/table/reinforced/plastitaniumglass, -/obj/machinery/firealarm/directional/west{ - pixel_y = -4 - }, -/turf/open/floor/iron/dark/textured_corner, -/area/station/science/xenobiology) -"gUK" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) "gUY" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -20436,6 +20457,18 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, /area/station/medical/medbay/central) +"heC" = ( +/obj/item/cultivator, +/obj/item/hatchet, +/obj/item/paper/guides/jobs/hydroponics, +/obj/effect/spawner/random/entertainment/coin{ + spawn_loot_count = 2; + spawn_random_offset = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/table/wood, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "heP" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -20446,6 +20479,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"heZ" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/cargo/storage) "hfd" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ @@ -20503,15 +20545,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"hfQ" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/effect/spawner/random/vending/colavend, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/exit/departure_lounge) "hfS" = ( /obj/machinery/door/airlock{ id_tag = "Cabin5"; @@ -20529,6 +20562,16 @@ }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"hfV" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north{ + network = list("ss13","medbay") + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "hgi" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -20726,17 +20769,6 @@ dir = 4 }, /area/station/medical/pharmacy) -"hkb" = ( -/mob/living/basic/parrot/poly, -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 - }, -/obj/item/paper/monitorkey, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/command/heads_quarters/ce) "hkc" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -20746,6 +20778,14 @@ /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/white, /area/station/science/lobby) +"hkd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/junction/yjunction, +/obj/effect/turf_decal/siding/white/corner{ + dir = 8 + }, +/turf/open/floor/iron/half, +/area/station/service/hydroponics/garden) "hkm" = ( /obj/machinery/door/airlock/medical, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, @@ -20996,21 +21036,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating/airless, /area/station/maintenance/department/science) -"hoh" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical, -/obj/item/geiger_counter{ - pixel_x = 7; - pixel_y = 3 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/engineering) "hon" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -21235,10 +21260,6 @@ /obj/item/stock_parts/subspace/treatment, /turf/open/floor/iron/dark, /area/station/engineering/storage/tcomms) -"hrq" = ( -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) "hru" = ( /obj/effect/landmark/start/coroner, /obj/effect/turf_decal/trimline/neutral/filled/warning{ @@ -21617,11 +21638,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"hzh" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "hzn" = ( /obj/machinery/power/port_gen/pacman/pre_loaded, /obj/effect/mapping_helpers/burnt_floor, @@ -21743,6 +21759,15 @@ }, /turf/open/floor/engine/cult, /area/station/service/library) +"hCc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/wood/parquet, +/area/station/cargo/boutique) "hCs" = ( /turf/closed/wall, /area/station/service/hydroponics) @@ -21905,21 +21930,17 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"hEX" = ( +/obj/machinery/light/small/dim/directional/south, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron, +/area/station/security/warden) "hFa" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/tank/plasma, /turf/open/misc/asteroid, /area/station/maintenance/disposal/incinerator) -"hFu" = ( -/obj/structure/transport/linear/public{ - base_icon_state = "catwalk"; - icon = 'icons/obj/smooth_structures/catwalk.dmi'; - icon_state = "catwalk-255" - }, -/obj/effect/turf_decal/caution/stand_clear, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/plating/elevatorshaft, -/area/station/cargo/storage) "hFz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/cable, @@ -21986,6 +22007,12 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"hGC" = ( +/obj/structure/filingcabinet/white, +/obj/effect/turf_decal/bot_red, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/textured_large, +/area/station/cargo/sorting) "hGE" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -22071,6 +22098,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"hHO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "hHS" = ( /obj/machinery/airalarm/directional/north, /obj/structure/cable, @@ -22233,14 +22267,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) -"hLy" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/tile/blue/opposingcorners{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/cafeteria, -/area/station/commons/locker) "hLA" = ( /obj/machinery/smartfridge/extract/preloaded, /turf/open/floor/iron/white/textured_large, @@ -23075,16 +23101,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"iaa" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/vending/wallmed/directional/east, -/turf/open/floor/iron, -/area/station/engineering/lobby) "iac" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -23094,6 +23110,9 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"iak" = ( +/turf/open/water/no_planet_atmos, +/area/station/service/hydroponics/garden) "iau" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/sign/poster/contraband/random/directional/south, @@ -23108,18 +23127,16 @@ "iaN" = ( /turf/closed/wall, /area/station/cargo/miningoffice) -"ibb" = ( -/obj/machinery/disposal/bin{ - desc = "A pneumatic waste disposal unit. This one leads into space!"; - name = "deathsposal unit" - }, -/obj/effect/turf_decal/stripes/end, -/obj/machinery/light/directional/north, -/obj/structure/disposalpipe/trunk{ - dir = 8 +"iaP" = ( +/obj/machinery/door/airlock/research{ + glass = 1; + name = "Slime Euthanization Chamber"; + opacity = 0 }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white/textured_large, +/obj/effect/turf_decal/tile/blue/fourcorners, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/structure/plasticflaps/kitchen, +/turf/open/floor/glass/reinforced, /area/station/science/xenobiology) "ibi" = ( /obj/structure/cable, @@ -23415,6 +23432,21 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/iron/white, /area/station/medical/storage) +"ifP" = ( +/obj/machinery/camera/autoname/directional/west, +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light_switch/directional/west{ + pixel_y = 4 + }, +/obj/machinery/firealarm/directional/west{ + pixel_y = -5 + }, +/turf/open/floor/iron, +/area/station/security/brig) "ifV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -23793,15 +23825,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"iop" = ( -/obj/structure/showcase/cyborg/old{ - dir = 8; - pixel_x = 9; - pixel_y = 2 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "iov" = ( /obj/structure/chair/office{ name = "grimy chair" @@ -24000,10 +24023,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/carpet, /area/station/commons/dorms) -"irD" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/medical/medbay/central) "irJ" = ( /turf/open/floor/iron/white, /area/station/science/lab) @@ -24100,10 +24119,6 @@ dir = 1 }, /area/station/medical/chemistry/minisat) -"isP" = ( -/obj/machinery/firealarm/directional/west, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/command/nuke_storage) "isT" = ( /turf/open/openspace, /area/station/engineering/break_room) @@ -24186,12 +24201,11 @@ /area/station/ai_monitored/turret_protected/aisat_interior) "iuU" = ( /obj/structure/window/reinforced/spawner/directional/west, -/mob/living/basic/bot/cleanbot, -/obj/effect/turf_decal/stripes{ - dir = 5 - }, /obj/machinery/airalarm/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/obj/item/stack/cable_coil, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) "iuV" = ( @@ -24225,6 +24239,16 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"ivD" = ( +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/white, +/area/station/medical/paramedic) "ivR" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -24769,6 +24793,21 @@ /obj/effect/landmark/blobstart, /turf/open/floor/carpet/purple, /area/station/service/library) +"iGg" = ( +/obj/structure/closet{ + anchored = 1; + name = "Cold protection gear" + }, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/shoes/winterboots, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/obj/item/clothing/suit/hooded/wintercoat/science, +/turf/open/floor/iron/white/smooth_corner{ + dir = 1 + }, +/area/station/science/xenobiology) "iGo" = ( /obj/structure/cable, /obj/machinery/door/airlock{ @@ -24849,10 +24888,6 @@ /obj/effect/mapping_helpers/mail_sorting/medbay/virology, /turf/open/floor/iron/white/smooth_large, /area/station/medical/virology) -"iHN" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/cargo/storage) "iHO" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -25111,19 +25146,6 @@ /obj/machinery/recharger, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/hop) -"iLH" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, -/obj/machinery/door/airlock/engineering/glass{ - name = "Material Storage" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/engineering/storage) "iLZ" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -25429,6 +25451,15 @@ }, /turf/open/floor/iron/textured, /area/station/security/warden) +"iSw" = ( +/obj/machinery/computer/bank_machine{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/bot_white, +/obj/machinery/status_display/evac/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) "iSz" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash, @@ -25528,11 +25559,6 @@ /obj/effect/spawner/random/structure/grille, /turf/open/space/basic, /area/space/nearstation) -"iUJ" = ( -/turf/open/floor/iron/stairs/right{ - dir = 8 - }, -/area/station/science/lab) "iUP" = ( /obj/structure/railing/corner{ dir = 1 @@ -25552,11 +25578,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"iVg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/circuit/green, -/area/station/ai_monitored/turret_protected/ai_upload) "iVk" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -25598,6 +25619,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) +"iVL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/item/storage/bag/plants, +/obj/structure/table/wood, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "iVY" = ( /obj/structure/lattice/catwalk, /obj/machinery/light/directional/east, @@ -25916,6 +25945,13 @@ /obj/structure/cable, /turf/open/floor/carpet, /area/station/security/detectives_office) +"jcQ" = ( +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/command/corporate_showroom) "jcR" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -26240,11 +26276,6 @@ /obj/docking_port/stationary/syndicate, /turf/open/space/openspace, /area/space) -"jjb" = ( -/obj/machinery/vending/clothing, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood/parquet, -/area/station/service/theater) "jjp" = ( /obj/item/reagent_containers/cup/bottle/fake_gbs, /turf/closed/mineral/random/stationside/asteroid/porus{ @@ -26419,6 +26450,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/education) +"jld" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) "jle" = ( /obj/structure/chair{ dir = 4 @@ -26454,6 +26489,28 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) +"jlJ" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Primary Tool Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/commons/storage/primary) +"jlL" = ( +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/no_decals/two, +/obj/machinery/camera/autoname/motion/directional/east{ + network = list("minisat") + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/turret_protected/aisat/uppersouth) +"jlU" = ( +/obj/machinery/newscaster/directional/south, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "jlW" = ( /turf/open/floor/iron/freezer, /area/station/security/prison/shower) @@ -26642,6 +26699,14 @@ }, /turf/open/floor/iron, /area/station/commons/locker) +"jpv" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/cmo) "jpx" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/shreds, @@ -26683,6 +26748,20 @@ /obj/item/food/sandwich/philly_cheesesteak, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"jqf" = ( +/obj/structure/railing{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lobby) "jqj" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -26757,6 +26836,18 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/teleporter) +"jqG" = ( +/obj/machinery/computer/security{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/machinery/light/directional/east, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","rd") + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/science) "jqT" = ( /obj/structure/chair{ dir = 4 @@ -27001,6 +27092,14 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/wood/tile, /area/station/security/courtroom) +"jwF" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/light/dim/directional/west, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "jwI" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/dark_red/opposingcorners, @@ -27118,11 +27217,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/smooth_edge, /area/station/science/lab) -"jyV" = ( -/obj/machinery/hydroponics/constructable, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "jza" = ( /turf/closed/wall/r_wall, /area/station/security/lockers) @@ -27409,14 +27503,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_white, /area/station/hallway/secondary/entry) -"jCR" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white, -/area/station/medical/medbay/central) "jCT" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/purple{ @@ -27996,14 +28082,6 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"jLA" = ( -/obj/structure/table, -/obj/item/stack/arcadeticket, -/obj/item/stack/arcadeticket, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) "jLC" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/parquet, @@ -28069,8 +28147,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/medical) "jNg" = ( -/obj/structure/table/reinforced, -/obj/item/stack/cable_coil, +/mob/living/basic/bot/repairbot, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat/foyer) "jNh" = ( @@ -28456,6 +28533,17 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"jUz" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/starboard) "jUD" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 @@ -28544,6 +28632,10 @@ /obj/structure/lattice, /turf/open/space/openspace, /area/space/nearstation) +"jVY" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "jWb" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 1"; @@ -28612,12 +28704,6 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"jWM" = ( -/obj/structure/cable/layer3, -/obj/structure/cable, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "jWP" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -28752,17 +28838,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"jZK" = ( -/obj/effect/spawner/random/food_or_drink/seed{ - spawn_all_loot = 1; - spawn_random_offset = 1 - }, -/obj/structure/table, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "jZN" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ @@ -28830,16 +28905,6 @@ /obj/machinery/light/small/dim/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"kap" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/medical/treatment_center) "kaz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -28858,6 +28923,13 @@ }, /turf/open/floor/iron, /area/station/security/breakroom) +"kbe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "kbg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, @@ -28902,6 +28974,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"kcc" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/door/airlock/engineering/glass{ + name = "Supermatter Engine Room" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/layer1, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "kcd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29234,17 +29318,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/hallway/primary/central) -"kgt" = ( -/obj/machinery/door/airlock/research{ - glass = 1; - name = "Slime Euthanization Chamber"; - opacity = 0 - }, -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/plasticflaps/kitchen, -/turf/open/floor/glass/reinforced, -/area/station/science/xenobiology) "kgA" = ( /obj/structure/table/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -29259,11 +29332,6 @@ }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) -"kgM" = ( -/obj/structure/lattice/catwalk, -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace/xenobio, -/area/station/science/xenobiology) "kgT" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/door/firedoor, @@ -29453,6 +29521,19 @@ /obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/iron/dark/smooth_large, /area/station/science/ordnance) +"kjI" = ( +/obj/effect/mapping_helpers/airlock/access/all/engineering/general, +/obj/machinery/door/airlock/engineering/glass{ + name = "Material Storage" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/iron, +/area/station/engineering/storage) "kjR" = ( /obj/item/radio/intercom/directional/north, /obj/structure/rack, @@ -29648,6 +29729,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/large, /area/station/cargo/boutique) +"kmo" = ( +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/textured_edge{ + dir = 4 + }, +/area/station/science/xenobiology) "kmu" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -29678,10 +29768,6 @@ /obj/structure/disposalpipe/trunk/multiz/down, /turf/open/floor/iron, /area/station/cargo/storage) -"kmZ" = ( -/obj/structure/lattice, -/turf/open/space, -/area/space/nearstation) "kno" = ( /obj/structure/chair/sofa/bench{ dir = 8 @@ -29765,6 +29851,25 @@ /obj/effect/turf_decal/bot_white/left, /turf/open/floor/iron/dark, /area/station/command/gateway) +"koK" = ( +/obj/machinery/light/directional/west, +/obj/machinery/button/door/directional/north{ + id = "Xenolab"; + name = "Test Chamber Blast Doors"; + pixel_x = 6; + pixel_y = -2; + req_access = list("xenobiology") + }, +/obj/machinery/button/ignition{ + id = "Xenobio"; + pixel_x = -6 + }, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/firealarm/directional/west{ + pixel_y = -4 + }, +/turf/open/floor/iron/dark/textured_corner, +/area/station/science/xenobiology) "koM" = ( /obj/structure/table, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -30530,10 +30635,13 @@ /obj/machinery/light/small/dim/directional/west, /turf/open/floor/glass, /area/station/ai_monitored/turret_protected/ai) -"kBm" = ( -/obj/structure/cable, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) +"kBo" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white/smooth_half, +/area/station/science/research) "kBt" = ( /obj/machinery/modular_computer/preset/civilian, /obj/machinery/button/door/directional/north{ @@ -30740,6 +30848,10 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"kEs" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/hallway/secondary/entry) "kEt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30891,18 +31003,6 @@ "kGS" = ( /turf/closed/wall/rust, /area/station/maintenance/department/medical) -"kGT" = ( -/obj/machinery/computer/security{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red/opposingcorners, -/obj/machinery/light/directional/east, -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","rd") - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/science) "kGZ" = ( /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -31096,6 +31196,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/aft/upper) +"kKU" = ( +/obj/structure/ladder, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/machinery/vending/wallmed/directional/north, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "kLi" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/station/maintenance/department/medical/central) @@ -31286,17 +31393,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/project) -"kPb" = ( -/obj/effect/turf_decal/tile/red/half/contrasted{ - dir = 4 - }, -/obj/structure/chair{ - dir = 1; - name = "Prosecution" - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/security/courtroom) "kPc" = ( /obj/structure/table/wood, /obj/item/camera_film{ @@ -31333,17 +31429,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) -"kQt" = ( -/obj/structure/sign/warning/yes_smoking/circle/directional/west, -/obj/item/cigbutt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/dark/textured_corner{ - dir = 4 - }, -/area/station/science/breakroom) "kQv" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -31495,6 +31580,15 @@ /obj/machinery/light/dim/directional/north, /turf/open/floor/iron, /area/station/security/prison) +"kSq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/light/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/openspace, +/area/station/science/xenobiology) "kSy" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -31692,6 +31786,15 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) +"kUR" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "kUW" = ( /obj/structure/chair/pew{ dir = 4 @@ -31943,8 +32046,8 @@ "kZS" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/right/directional/north{ - req_access = list("hydroponics"); - name = "Hydroponics Desk" + name = "Hydroponics Desk"; + req_access = list("hydroponics") }, /obj/machinery/door/firedoor, /turf/open/floor/iron, @@ -32089,18 +32192,6 @@ /obj/machinery/camera/autoname/directional/south, /turf/open/floor/glass/reinforced, /area/station/engineering/lobby) -"lcE" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "Gravity Generator Room" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "lcM" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /obj/effect/turf_decal/tile/blue/fourcorners, @@ -32518,8 +32609,8 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/item/holosign_creator/robot_seat/bar{ - pixel_y = 4; - pixel_x = 6 + pixel_x = 6; + pixel_y = 4 }, /obj/item/clothing/head/hats/tophat, /turf/open/floor/iron/dark, @@ -32730,8 +32821,8 @@ }, /obj/machinery/airalarm/directional/south, /obj/item/toy/figure/ian{ - pixel_y = 15; - pixel_x = 7 + pixel_x = 7; + pixel_y = 15 }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) @@ -32784,11 +32875,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/purple, /area/station/service/library) -"lpE" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "lpF" = ( /obj/machinery/fax{ fax_name = "Medical"; @@ -32922,6 +33008,15 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/service/cafeteria) +"lsT" = ( +/obj/machinery/door/airlock/highsecurity{ + name = "Blast Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/engine, +/area/station/medical/chemistry) "lta" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -32957,21 +33052,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ltO" = ( -/obj/structure/closet{ - anchored = 1; - name = "Cold protection gear" - }, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/shoes/winterboots, -/obj/item/clothing/suit/hooded/wintercoat/science, -/obj/item/clothing/suit/hooded/wintercoat/science, -/obj/item/clothing/suit/hooded/wintercoat/science, -/turf/open/floor/iron/white/smooth_corner{ - dir = 1 - }, -/area/station/science/xenobiology) "ltS" = ( /turf/closed/wall, /area/station/hallway/primary/starboard) @@ -33252,6 +33332,11 @@ /obj/structure/sign/poster/official/report_crimes/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) +"lyL" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/style_2, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "lyN" = ( /turf/open/openspace, /area/station/engineering/lobby) @@ -33403,12 +33488,6 @@ dir = 4 }, /area/station/command/meeting_room) -"lAX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark, -/area/station/science/xenobiology) "lBu" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -33730,10 +33809,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) -"lFZ" = ( -/mob/living/basic/axolotl, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "lGe" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -33794,20 +33869,6 @@ /obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, /turf/open/floor/engine/xenobio, /area/station/science/xenobiology) -"lHx" = ( -/obj/machinery/door/airlock/engineering{ - name = "Auxiliary Base Construction" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, -/obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/effect/landmark/navigate_destination, -/obj/effect/decal/cleanable/dirt, -/obj/structure/barricade/wooden, -/turf/open/floor/iron, -/area/station/construction/mining/aux_base) "lHy" = ( /obj/machinery/button/door/directional/west{ id = "Cabin6"; @@ -33919,6 +33980,13 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) +"lJT" = ( +/obj/machinery/photocopier/prebuilt, +/obj/machinery/light_switch/directional/east, +/obj/structure/cable, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/carpet/black, +/area/station/command/heads_quarters/hos) "lKh" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -33966,16 +34034,14 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"lLa" = ( -/obj/machinery/light/small/dim/directional/south, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron, -/area/station/security/warden) "lLk" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron, /area/station/cargo/warehouse) +"lLm" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "lLo" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -34128,6 +34194,12 @@ /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/space/basic, /area/space/nearstation) +"lNV" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/stairs/left{ + dir = 8 + }, +/area/station/science/lab) "lOa" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Crystallizer Room" @@ -34245,18 +34317,23 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/hallway/secondary/command) +"lQA" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology/hallway) "lQD" = ( /obj/effect/turf_decal/tile/dark_blue/half/contrasted, /obj/machinery/airalarm/directional/south, /turf/open/floor/iron, /area/station/command/bridge) -"lQH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/turret_protected/aisat_interior) "lQL" = ( /turf/open/openspace, /area/station/hallway/primary/starboard) @@ -34332,6 +34409,26 @@ /obj/machinery/light_switch/directional/west, /turf/open/floor/iron, /area/station/security/warden) +"lRN" = ( +/obj/item/reagent_containers/spray/plantbgone{ + pixel_y = 3 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 13; + pixel_y = 5 + }, +/obj/item/watertank, +/obj/item/grenade/chem_grenade/antiweed, +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/service/hydroponics) "lRU" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -34723,13 +34820,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"lYw" = ( -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "lYA" = ( /obj/effect/spawner/random/maintenance/two, /obj/machinery/airalarm/directional/south, @@ -34819,10 +34909,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"lZO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/corner, -/area/station/service/hydroponics/garden) "mam" = ( /obj/structure/closet/secure_closet/personal, /obj/machinery/power/apc/auto_name/directional/east, @@ -34830,13 +34916,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security) -"maz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/sink/kitchen/directional/north, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "maA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -35182,14 +35261,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/warden) -"mil" = ( -/obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2{ - name = "chimpanzee filth exhaust" - }, -/obj/machinery/light/directional/north, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/white, -/area/station/science/research) "mio" = ( /obj/machinery/computer/station_alert/station_only, /turf/open/floor/iron, @@ -35465,6 +35536,17 @@ "mmh" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/engineering) +"mmi" = ( +/obj/structure/closet/secure_closet/security/med, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/item/radio/intercom/directional/north, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/machinery/firealarm/directional/north{ + pixel_x = -28 + }, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/medical) "mml" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -35513,6 +35595,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"mnj" = ( +/obj/structure/table, +/obj/item/stack/arcadeticket, +/obj/item/stack/arcadeticket, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) "mnk" = ( /obj/effect/spawner/random/structure/tank_holder, /obj/effect/decal/cleanable/dirt, @@ -35796,7 +35886,6 @@ "msr" = ( /obj/structure/table, /obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_x = 0; pixel_y = -1 }, /turf/open/floor/iron, @@ -35901,6 +35990,12 @@ }, /turf/open/floor/wood, /area/station/security/detectives_office/private_investigators_office) +"mtT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "mua" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/old, @@ -36364,15 +36459,6 @@ }, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) -"mCc" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/photocopier/prebuilt, -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/station/service/library) "mCm" = ( /obj/effect/turf_decal/stripes, /obj/item/radio/intercom/directional/south, @@ -36465,12 +36551,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"mDK" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/stairs/left{ - dir = 8 - }, -/area/station/science/lab) "mDP" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "antesat" @@ -36613,15 +36693,6 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"mGU" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "mGV" = ( /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /obj/machinery/door/firedoor, @@ -37005,6 +37076,17 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"mMO" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lobby) "mMS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/sand/plating, @@ -37016,13 +37098,6 @@ "mMZ" = ( /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"mNc" = ( -/obj/machinery/photocopier/prebuilt, -/obj/machinery/light_switch/directional/east, -/obj/structure/cable, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/black, -/area/station/command/heads_quarters/hos) "mNl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, @@ -37043,17 +37118,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"mNw" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect"; - name = "Security Shutters" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "mNF" = ( /obj/machinery/light/directional/west, /turf/open/floor/catwalk_floor/iron_dark, @@ -37066,11 +37130,6 @@ /obj/effect/mapping_helpers/airalarm/surgery, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/theatre) -"mNR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lobby) "mNZ" = ( /turf/closed/mineral/random/stationside/asteroid/porus, /area/station/asteroid) @@ -37324,21 +37383,16 @@ /obj/item/pen, /turf/open/floor/carpet, /area/station/service/lawoffice) -"mTZ" = ( -/obj/structure/closet/secure_closet/security/med, -/obj/structure/cable, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/item/radio/intercom/directional/north, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/firealarm/directional/north{ - pixel_x = -28 - }, -/turf/open/floor/iron/dark, -/area/station/security/checkpoint/medical) "mUg" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron, /area/station/engineering/break_room) +"mUh" = ( +/mob/living/basic/deer, +/obj/structure/flora/bush/sparsegrass/style_3, +/obj/structure/flora/bush/flowers_pp/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "mUi" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37493,10 +37547,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"mWu" = ( -/obj/machinery/firealarm/directional/north, -/turf/open/floor/catwalk_floor/iron_dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "mWB" = ( /obj/machinery/requests_console/auto_name/directional/south, /obj/effect/mapping_helpers/requests_console/supplies, @@ -37618,17 +37668,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/gateway) -"mYx" = ( -/obj/structure/closet/crate/goldcrate, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/bot_white, -/obj/machinery/camera/motion/directional/south{ - c_tag = "Vault"; - network = list("vault") - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) "mYD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/purple/visible, /obj/effect/turf_decal/stripes, @@ -37716,6 +37755,14 @@ }, /turf/open/space/openspace, /area/space/nearstation) +"mZK" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/obj/effect/turf_decal/tile/red/fourcorners, +/turf/open/floor/iron, +/area/station/security/warden) "mZL" = ( /obj/effect/spawner/random/structure/chair_flipped, /turf/open/floor/plating, @@ -38291,9 +38338,7 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 4 }, -/obj/machinery/computer/cargo{ - dir = 2 - }, +/obj/machinery/computer/cargo, /turf/open/floor/iron, /area/station/cargo/storage) "nje" = ( @@ -38496,11 +38541,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security) -"nnc" = ( -/obj/structure/table/wood, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "nne" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39425,14 +39465,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"nFu" = ( -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/structure/cable, -/turf/open/floor/iron/kitchen, -/area/station/service/kitchen) "nFI" = ( /obj/effect/landmark/start/chief_medical_officer, /obj/effect/turf_decal/trimline/blue/filled/corner{ @@ -39764,6 +39796,20 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"nKV" = ( +/obj/structure/cable, +/obj/structure/closet/l3closet/scientist, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","rd","xeno") + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white/textured_large, +/area/station/science/xenobiology) "nLb" = ( /obj/structure/closet/wardrobe/grey, /obj/effect/landmark/start/hangover/closet, @@ -39787,6 +39833,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"nLg" = ( +/obj/structure/cable, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology/hallway) "nLi" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -39917,8 +39976,7 @@ pixel_y = 8 }, /obj/item/stock_parts/power_store/cell/high{ - pixel_x = -9; - pixel_y = 0 + pixel_x = -9 }, /obj/item/stack/sheet/iron/fifty{ pixel_x = 6; @@ -40098,6 +40156,11 @@ dir = 4 }, /area/station/engineering/atmos/project) +"nSf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/white, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "nSn" = ( /obj/structure/cable, /obj/machinery/firealarm/directional/south, @@ -40119,6 +40182,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/storage/primary) +"nSN" = ( +/mob/living/basic/parrot/poly, +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/item/paper/monitorkey, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/command/heads_quarters/ce) "nSP" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 4 @@ -40299,6 +40373,10 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/iron, /area/station/cargo/warehouse/upper) +"nXt" = ( +/obj/structure/flora/bush/large, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "nXw" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/green/fourcorners, @@ -40408,6 +40486,12 @@ /obj/item/radio/intercom/command/directional/west, /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) +"nZL" = ( +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/effect/spawner/random/clothing/wardrobe_closet_colored, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/cargo/boutique) "nZW" = ( /obj/structure/barricade/wooden, /obj/machinery/atmospherics/components/binary/pump/on/green/visible{ @@ -40471,14 +40555,6 @@ /obj/machinery/meter, /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) -"oaJ" = ( -/obj/machinery/door/airlock/engineering/glass{ - name = "Primary Tool Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "oaP" = ( /turf/open/floor/plating, /area/station/maintenance/department/medical/central) @@ -40671,15 +40747,6 @@ }, /turf/open/floor/plating, /area/station/security/courtroom) -"oei" = ( -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark/textured_edge{ - dir = 4 - }, -/area/station/science/xenobiology) "oel" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white/smooth_large, @@ -40790,6 +40857,13 @@ /obj/structure/railing/corner, /turf/open/floor/iron/dark/textured_large, /area/station/science/xenobiology) +"ohe" = ( +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 9 + }, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron, +/area/station/engineering/lobby) "ohh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/hangover, @@ -40810,27 +40884,17 @@ /obj/structure/disposalpipe/junction/flip, /turf/open/floor/iron, /area/station/hallway/primary/central) -"ohx" = ( -/obj/structure/cable, -/obj/machinery/door/airlock/engineering{ - name = "Tech Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination/techstorage, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/textured, -/area/station/engineering/storage/tech) "ohz" = ( /obj/structure/railing{ dir = 8 }, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"ohA" = ( +/obj/structure/urinal/directional/north, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/showroomfloor, +/area/station/engineering/main) "ohF" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -40850,35 +40914,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/security/prison/work) -"oia" = ( -/obj/machinery/door/airlock/research/glass{ - name = "Secure Pen" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Xenolab"; - name = "Test Chamber Blast Door" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "oix" = ( /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) +"oiC" = ( +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/airalarm/directional/east, +/obj/structure/sign/departments/chemistry/pharmacy/directional/north, +/obj/item/storage/box/bandages, +/turf/open/floor/iron/white, +/area/station/medical/medbay/lobby) "ojc" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/plasma_input, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) -"ojj" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood, -/area/station/service/lawoffice) "ojv" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/effect/turf_decal/tile/neutral/diagonal_centre, @@ -41476,22 +41528,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/service/cafeteria) -"ouQ" = ( -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/mineral/plasma/five, -/obj/item/stack/sheet/mineral/plasma/five, -/obj/structure/sign/poster/official/random/directional/west, -/obj/item/storage/toolbox/emergency, -/obj/machinery/light_switch/directional/south{ - pixel_x = 4 - }, -/obj/machinery/firealarm/directional/south{ - pixel_x = -6 - }, -/turf/open/floor/iron/dark/side{ - dir = 10 - }, -/area/station/command/emergency_closet) "ovj" = ( /obj/effect/turf_decal/trimline/yellow/arrow_cw{ dir = 1 @@ -41595,6 +41631,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"oxe" = ( +/obj/item/radio/intercom/directional/north, +/obj/machinery/modular_computer/preset/id, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/hos) "oxh" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/girder/displaced, @@ -41645,14 +41686,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood/tile, /area/station/service/bar) -"oyq" = ( -/obj/machinery/light/cold/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/table/reinforced, -/obj/item/electronics/apc, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "oyC" = ( /obj/structure/table, /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -41691,6 +41724,13 @@ }, /turf/open/floor/plating/elevatorshaft, /area/station/ai_monitored/turret_protected/aisat_interior) +"ozx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/corner, +/area/station/engineering/atmos) "ozy" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -41834,6 +41874,10 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron, /area/station/security) +"oBo" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/engineering/atmos/upper) "oBt" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/cable, @@ -41920,6 +41964,13 @@ /obj/machinery/meter, /turf/open/floor/engine, /area/station/engineering/supermatter/room) +"oDo" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/obj/machinery/vending/wallmed/directional/east, +/turf/open/floor/iron, +/area/station/cargo/storage) "oDC" = ( /obj/effect/turf_decal/trimline/blue/filled/corner, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42171,6 +42222,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/lobby) +"oHh" = ( +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron/white/smooth_half{ + dir = 8 + }, +/area/station/science/xenobiology) "oHi" = ( /obj/structure/cable, /turf/open/floor/grass, @@ -42291,6 +42348,11 @@ }, /turf/open/floor/iron/large, /area/station/engineering/atmos) +"oJr" = ( +/obj/structure/sign/poster/random/directional/north, +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/science/research) "oJt" = ( /obj/structure/lattice, /obj/structure/disposaloutlet{ @@ -42649,6 +42711,18 @@ dir = 8 }, /area/station/security/courtroom) +"oPD" = ( +/obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/toy/crayon/spraycan{ + pixel_x = -4 + }, +/obj/item/toy/crayon/spraycan{ + pixel_x = -4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/carpet/purple, +/area/station/service/library) "oPL" = ( /obj/item/clothing/head/chameleon/broken, /turf/open/misc/asteroid/airless, @@ -42662,6 +42736,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security) +"oPO" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/turf/open/floor/iron/corner{ + dir = 8 + }, +/area/station/service/hydroponics/garden) "oPT" = ( /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, @@ -42878,6 +42961,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/central/greater) +"oTh" = ( +/obj/structure/cable/layer3, +/obj/structure/cable, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/turret_protected/aisat_interior) "oTv" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, @@ -43000,15 +43089,6 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron, /area/station/engineering/lobby) -"oVj" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/iron/white/smooth_corner, -/area/station/science/research) "oVn" = ( /obj/structure/bed/dogbed/runtime, /mob/living/basic/pet/cat/runtime, @@ -43085,11 +43165,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) -"oWu" = ( -/obj/structure/urinal/directional/north, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/showroomfloor, -/area/station/engineering/main) "oWv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43203,21 +43278,6 @@ }, /turf/open/floor/iron/large, /area/station/hallway/secondary/exit/departure_lounge) -"oYm" = ( -/obj/machinery/camera/autoname/directional/west, -/obj/item/radio/intercom/directional/east, -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/cable, -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light_switch/directional/west{ - pixel_y = 4 - }, -/obj/machinery/firealarm/directional/west{ - pixel_y = -5 - }, -/turf/open/floor/iron, -/area/station/security/brig) "oYu" = ( /obj/machinery/mech_bay_recharge_port{ dir = 2 @@ -43487,13 +43547,6 @@ }, /turf/open/floor/iron/large, /area/station/hallway/secondary/exit/departure_lounge) -"pdi" = ( -/obj/structure/railing, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lobby) "pdo" = ( /obj/structure/cable/multilayer/multiz, /turf/open/floor/glass, @@ -43667,6 +43720,17 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"pha" = ( +/obj/structure/closet/crate/goldcrate, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/bot_white, +/obj/machinery/camera/motion/directional/south{ + c_tag = "Vault"; + network = list("vault") + }, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/nuke_storage) "phi" = ( /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43693,15 +43757,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"phH" = ( -/obj/machinery/duct, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/machinery/light/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/freezer, -/area/station/commons/toilet/restrooms) "phJ" = ( /obj/structure/closet/secure_closet{ name = "contraband locker"; @@ -43938,25 +43993,6 @@ }, /turf/open/floor/iron/white/herringbone, /area/station/science/breakroom) -"plz" = ( -/obj/structure/window/spawner/directional/east, -/obj/structure/table, -/obj/item/reagent_containers/spray/cleaner{ - pixel_x = -14 - }, -/obj/item/storage/medkit/regular{ - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/trunk/multiz{ - dir = 8 - }, -/obj/machinery/vending/wallmed/directional/north, -/turf/open/floor/iron/white, -/area/station/security/medical) "plA" = ( /turf/closed/wall/r_wall, /area/station/security/office) @@ -44052,16 +44088,6 @@ /obj/machinery/atmospherics/pipe/multiz/scrubbers/visible/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) -"pnO" = ( -/obj/structure/closet/radiation{ - anchored = 1 - }, -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 4 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/engineering/main) "pnQ" = ( /obj/effect/turf_decal/sand/plating, /obj/machinery/door/airlock/external, @@ -44075,6 +44101,11 @@ "pnS" = ( /turf/closed/mineral/random/stationside/asteroid, /area/station/asteroid) +"pof" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lobby) "pog" = ( /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/teleporter) @@ -44212,12 +44243,10 @@ dir = 1 }, /area/station/engineering/atmos/pumproom) -"ppU" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/station/security/warden) +"pqd" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "pql" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/effect/mapping_helpers/airlock/locked, @@ -44293,6 +44322,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) +"prB" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/hallway/secondary/exit/departure_lounge) "prI" = ( /obj/item/kirbyplants/random, /obj/machinery/light_switch/directional/west, @@ -44535,6 +44568,20 @@ dir = 1 }, /area/station/science/research) +"pve" = ( +/obj/structure/cable, +/obj/machinery/light/floor, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/research) "pvo" = ( /obj/machinery/firealarm/directional/north, /obj/structure/table, @@ -45359,6 +45406,12 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/storage) +"pJt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/science/xenobiology) "pJw" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, /turf/open/floor/iron, @@ -45417,6 +45470,14 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"pKA" = ( +/obj/machinery/light_switch/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "pKH" = ( /obj/effect/landmark/start/hangover, /obj/machinery/duct, @@ -46408,6 +46469,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/service/janitor) +"qaF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/siding/white/corner, +/turf/open/floor/iron/half, +/area/station/service/hydroponics/garden) "qaI" = ( /obj/structure/chair{ dir = 4 @@ -46657,6 +46727,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"qfr" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/science/research) "qfu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/textured_large, @@ -46670,6 +46744,21 @@ /obj/item/flashlight/lamp, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/qm) +"qgc" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/engineering{ + name = "Tech Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tech_storage, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination/techstorage, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/textured, +/area/station/engineering/storage/tech) "qgd" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/dark_blue, @@ -47170,6 +47259,16 @@ /obj/structure/cable, /turf/open/floor/iron/large, /area/station/engineering/atmos/mix) +"qoC" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/old, +/obj/machinery/airalarm/directional/north, +/obj/machinery/camera/autoname/motion/directional/east{ + network = list("minisat") + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/uppernorth) "qoJ" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -47438,24 +47537,18 @@ /obj/machinery/holopad, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) -"qtm" = ( -/obj/machinery/door/poddoor/shutters/window/preopen{ - dir = 8; - id = "xbprotect1"; - name = "Security Shutters" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/xenobiology) "qtx" = ( /obj/effect/turf_decal/siding/purple{ dir = 4 }, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) +"qtA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/engineering/atmos/upper) "qtP" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -48094,13 +48187,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/glass/reinforced, /area/station/security/prison) -"qGd" = ( -/obj/effect/turf_decal/siding/purple{ - dir = 1 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/white/smooth_half, -/area/station/science/research) "qGk" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/command) @@ -48227,6 +48313,12 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/iron, /area/station/maintenance/central/greater) +"qIt" = ( +/obj/effect/turf_decal/siding/purple, +/obj/machinery/light/dim/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/white, +/area/station/science/ordnance/testlab) "qIw" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -48287,19 +48379,6 @@ }, /turf/open/floor/plating, /area/station/hallway/primary/central) -"qJv" = ( -/obj/structure/cable, -/obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/xenobiology/hallway) "qJB" = ( /obj/machinery/power/tracker, /obj/structure/cable, @@ -48409,12 +48488,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/service/bar/backroom) -"qMl" = ( -/obj/effect/turf_decal/siding, -/obj/structure/table, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron/large, -/area/station/commons/locker) +"qMf" = ( +/obj/structure/closet/crate/engineering, +/obj/item/stack/sheet/mineral/plasma/five, +/obj/item/stack/sheet/mineral/plasma/five, +/obj/structure/sign/poster/official/random/directional/west, +/obj/item/storage/toolbox/emergency, +/obj/machinery/light_switch/directional/south{ + pixel_x = 4 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = -6 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/command/emergency_closet) "qMn" = ( /obj/structure/bodycontainer/morgue, /turf/open/floor/iron/dark/textured, @@ -48586,20 +48675,6 @@ dir = 9 }, /area/station/command/meeting_room) -"qQi" = ( -/obj/structure/cable, -/obj/machinery/light/floor, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/research) "qQm" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -48833,6 +48908,18 @@ dir = 1 }, /area/station/engineering/atmos) +"qVe" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/machinery/light_switch/directional/east{ + pixel_y = 5 + }, +/obj/machinery/firealarm/directional/east{ + pixel_y = -5 + }, +/turf/open/floor/iron, +/area/station/commons/storage/tools) "qVn" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -49299,18 +49386,6 @@ dir = 8 }, /area/station/hallway/secondary/exit/departure_lounge) -"rbY" = ( -/obj/machinery/disposal/bin, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark/textured_edge{ - dir = 1 - }, -/area/station/medical/pharmacy) "rce" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ @@ -49322,10 +49397,6 @@ "rcl" = ( /turf/closed/wall/r_wall, /area/station/security/execution/transfer) -"rcq" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/engineering/atmos/upper) "rcs" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -49541,18 +49612,6 @@ /obj/machinery/door/firedoor/border_only, /turf/open/floor/iron, /area/station/command/corporate_showroom) -"reU" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron, -/area/station/service/hydroponics) "rfd" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/structure/cable, @@ -49610,6 +49669,14 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) +"rgN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/siding/white{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "rgT" = ( /obj/machinery/seed_extractor, /obj/effect/turf_decal/tile/blue, @@ -49886,8 +49953,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/greenscreen_camera{ dir = 8; - pixel_y = 6; - pixel_x = -4 + pixel_x = -4; + pixel_y = 6 }, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) @@ -50138,6 +50205,14 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) +"rnY" = ( +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/effect/spawner/random/food_or_drink/seed_flowers, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "rox" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Pure to Port" @@ -50177,6 +50252,26 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/iron/dark/textured, /area/station/security/execution/transfer) +"rpM" = ( +/obj/structure/table/wood/fancy/red, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/recharger{ + pixel_x = 16; + pixel_y = 3 + }, +/obj/item/folder/red{ + pixel_x = 2; + pixel_y = 9 + }, +/obj/item/stamp/head/hos{ + pixel_x = 2; + pixel_y = 11 + }, +/obj/machinery/computer/records/security/laptop{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/hos) "rpP" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -50202,6 +50297,11 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"rqc" = ( +/obj/machinery/camera/autoname/directional/west, +/obj/structure/flora/grass/jungle, +/turf/open/water/no_planet_atmos, +/area/station/service/hydroponics/garden) "rqe" = ( /obj/structure/table, /obj/item/stock_parts/scanning_module{ @@ -50507,6 +50607,12 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) +"rvp" = ( +/obj/machinery/light/warm/directional/south, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood/tile, +/area/station/service/bar) "rwf" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, @@ -50570,6 +50676,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) +"rwG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/spawner/random/structure/table, +/obj/machinery/airalarm/directional/south, +/obj/item/stack/medical/bruise_pack, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) "rwU" = ( /obj/structure/sign/painting/large/library{ dir = 4 @@ -50773,6 +50886,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/cargo/storage) +"rzI" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("ss13","rd") + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/ordnance/testlab) "rzJ" = ( /obj/machinery/door/airlock/maintenance_hatch, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -50832,21 +50952,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/upper) -"rAz" = ( -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","rd") - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/smooth_edge{ - dir = 1 - }, -/area/station/science/research) "rAK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50918,6 +51023,20 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark/small, /area/station/engineering/transit_tube) +"rBU" = ( +/obj/machinery/door/airlock/engineering{ + name = "Auxiliary Base Construction" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/effect/landmark/navigate_destination, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, +/turf/open/floor/iron, +/area/station/construction/mining/aux_base) "rBZ" = ( /obj/structure/cable, /obj/machinery/turretid{ @@ -51362,6 +51481,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"rKH" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/machinery/light/cold/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "rKW" = ( /obj/machinery/photocopier/prebuilt, /obj/effect/turf_decal/bot_red, @@ -51399,10 +51528,6 @@ /obj/structure/cable/layer1, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"rLE" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/hallway/secondary/exit/departure_lounge) "rLJ" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/spawner/random/structure/girder, @@ -51415,6 +51540,10 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) +"rLQ" = ( +/obj/structure/flora/bush/flowers_yw/style_random, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "rLT" = ( /obj/machinery/door/window/left/directional/east, /obj/effect/decal/cleanable/ash, @@ -51470,12 +51599,31 @@ "rNJ" = ( /turf/open/misc/asteroid, /area/station/maintenance/department/medical) +"rOe" = ( +/obj/structure/table/reinforced, +/obj/machinery/coffeemaker{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/half, +/area/station/security/breakroom) "rOq" = ( /obj/structure/chair{ dir = 1 }, /turf/open/floor/iron/textured, /area/station/hallway/primary/central) +"rOD" = ( +/obj/structure/lattice/catwalk, +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace/xenobio, +/area/station/science/xenobiology) "rOF" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -51522,6 +51670,15 @@ /obj/structure/window/spawner/directional/north, /turf/open/misc/grass, /area/station/ai_monitored/turret_protected/aisat/foyer) +"rPk" = ( +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/light/warm/dim/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/herringbone, +/area/station/hallway/primary/central) "rPt" = ( /obj/structure/toilet{ dir = 8 @@ -51578,12 +51735,6 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/white, /area/station/maintenance/department/medical) -"rPV" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/small/directional/north, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/iron, -/area/station/science/ordnance) "rQe" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -52358,13 +52509,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/science/xenobiology) -"sal" = ( -/obj/structure/ladder, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/tile/dark_green/opposingcorners, -/obj/machinery/vending/wallmed/directional/north, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "sap" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52420,6 +52564,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, /area/station/science/robotics/lab) +"saY" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "sbc" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/stripes/line{ @@ -52530,6 +52679,24 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/dark, /area/station/security/warden) +"scU" = ( +/obj/item/reagent_containers/spray/plantbgone, +/obj/item/reagent_containers/spray/pestspray{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/reagent_containers/cup/bottle/nutrient/ez, +/obj/item/reagent_containers/cup/bottle/nutrient/rh{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/table/wood, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "sdc" = ( /turf/closed/wall, /area/station/cargo/storage) @@ -52723,14 +52890,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/main) -"sgR" = ( -/obj/effect/turf_decal/tile/brown/half/contrasted{ - dir = 1 - }, -/obj/machinery/requests_console/auto_name/directional/north, -/obj/effect/mapping_helpers/requests_console/assistance, -/turf/open/floor/iron, -/area/station/cargo/storage) "sgW" = ( /obj/structure/chair/office/tactical{ dir = 8 @@ -52868,6 +53027,12 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/commons/storage/art) +"sjB" = ( +/obj/machinery/light/cold/directional/west, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "sjD" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 4 @@ -53071,12 +53236,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"smz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/engineering/atmos/upper) "smD" = ( /obj/machinery/door/airlock/external{ name = "Atmospherics External Airlock" @@ -53135,17 +53294,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"smW" = ( -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/starboard) "smZ" = ( /obj/effect/turf_decal/tile/red/half/contrasted, /obj/structure/cable, @@ -53419,6 +53567,14 @@ /obj/machinery/suit_storage_unit/industrial/loader, /turf/open/floor/iron, /area/station/cargo/warehouse) +"srO" = ( +/obj/machinery/light/cold/directional/south, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "srR" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -53568,15 +53724,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"sue" = ( -/obj/structure/lattice/catwalk, -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/light/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/openspace, -/area/station/science/xenobiology) "sug" = ( /obj/machinery/sparker/directional/south{ id = "Xenobio" @@ -53684,20 +53831,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"svB" = ( -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/structure/railing, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/machinery/light/dim/directional/north, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/iron/dark/corner{ - dir = 1 - }, -/area/station/engineering/atmos/upper) "svF" = ( /obj/structure/closet/secure_closet/hop, /obj/effect/turf_decal/siding/dark_blue{ @@ -53715,6 +53848,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine) +"svL" = ( +/turf/open/floor/iron/stairs/right{ + dir = 8 + }, +/area/station/science/lab) "svS" = ( /obj/machinery/newscaster/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53852,13 +53990,6 @@ /obj/effect/turf_decal/sand/plating, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"syT" = ( -/obj/effect/turf_decal/siding/dark, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/command/corporate_showroom) "syX" = ( /obj/effect/decal/cleanable/greenglow/radioactive, /turf/open/misc/asteroid, @@ -53961,6 +54092,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) +"sAD" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/command/meeting_room) "sAI" = ( /obj/machinery/door/airlock/atmos/glass{ name = "Atmospherics" @@ -54230,6 +54365,17 @@ }, /turf/open/floor/iron, /area/station/security) +"sFz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/spawner/random/food_or_drink/plant_produce, +/obj/structure/table/wood, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "sFB" = ( /obj/item/bedsheet/hop, /obj/structure/bed, @@ -54324,12 +54470,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical) -"sHf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) "sHg" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -54436,12 +54576,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/lobby) -"sIA" = ( -/obj/structure/filingcabinet/filingcabinet, -/obj/effect/turf_decal/bot_red, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/textured_large, -/area/station/cargo/sorting) "sIJ" = ( /obj/machinery/light/small/directional/north{ bulb_power = 0.8 @@ -54709,6 +54843,13 @@ }, /turf/open/floor/grass, /area/station/service/hydroponics/garden) +"sNh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) "sNi" = ( /obj/machinery/light/directional/north, /obj/effect/mapping_helpers/broken_floor, @@ -54969,12 +55110,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/locker) -"sSn" = ( -/obj/effect/turf_decal/siding/purple, -/obj/machinery/light/dim/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/white, -/area/station/science/ordnance/testlab) "sSL" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -55054,6 +55189,23 @@ }, /turf/open/floor/engine, /area/station/hallway/secondary/entry) +"sTC" = ( +/obj/item/hatchet, +/obj/item/cultivator, +/obj/item/crowbar, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/plant_analyzer, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/obj/structure/table/wood, +/turf/open/floor/iron/textured_large, +/area/station/service/hydroponics/garden) +"sTS" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/security/warden) "sUc" = ( /obj/item/bodypart/arm/left, /turf/open/floor/plating/airless, @@ -55349,13 +55501,15 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"sYV" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/spawner/random/structure/table, -/obj/machinery/airalarm/directional/south, -/obj/item/stack/medical/bruise_pack, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) +"sYZ" = ( +/obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/light/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/freezer, +/area/station/commons/toilet/restrooms) "sZl" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -55518,6 +55672,14 @@ }, /turf/open/floor/plating, /area/station/science/xenobiology) +"tbV" = ( +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/machinery/door/airlock{ + name = "Kitchen" + }, +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/service/kitchen) "tbZ" = ( /obj/structure/chair/comfy/brown{ dir = 4; @@ -55572,6 +55734,11 @@ "tdq" = ( /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"tdH" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/flora/bush/lavendergrass/style_2, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "tdW" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -55920,8 +56087,8 @@ "tkR" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north{ - req_access = list("hydroponics"); - name = "Hydroponics Desk" + name = "Hydroponics Desk"; + req_access = list("hydroponics") }, /obj/structure/desk_bell, /obj/machinery/door/firedoor, @@ -56174,6 +56341,13 @@ }, /turf/open/floor/carpet/executive, /area/station/command/heads_quarters/captain/private) +"toN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "toT" = ( /obj/machinery/telecomms/bus/preset_two, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -56450,14 +56624,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/central/greater) -"ttP" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/spawner/random/entertainment/arcade{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) "ttT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -56614,11 +56780,6 @@ /obj/effect/turf_decal/caution/stand_clear, /turf/open/floor/engine, /area/station/command/corporate_dock) -"txq" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/textured, -/area/station/engineering/storage/tech) "txw" = ( /obj/structure/table, /obj/effect/spawner/round_default_module, @@ -57281,6 +57442,15 @@ dir = 8 }, /area/station/command/meeting_room) +"tIk" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron, +/area/station/hallway/primary/central) "tIr" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -57330,23 +57500,6 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) -"tJn" = ( -/obj/machinery/door/airlock{ - name = "Law Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/lawyer, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/station/service/lawoffice) "tJx" = ( /obj/structure/chair/plastic{ dir = 4 @@ -57413,6 +57566,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron, /area/station/engineering/atmos) +"tKm" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/floor/circuit/green, +/area/station/ai_monitored/command/nuke_storage) "tKX" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical{ @@ -57748,16 +57905,6 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/openspace, /area/station/engineering/storage/tech) -"tPr" = ( -/obj/structure/sign/poster/random/directional/north, -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/science/research) -"tPJ" = ( -/obj/machinery/light_switch/directional/west, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "tPW" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/circuit/green, @@ -57821,6 +57968,16 @@ }, /turf/open/floor/glass, /area/station/command/meeting_room) +"tQX" = ( +/obj/structure/closet/radiation{ + anchored = 1 + }, +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/engineering/main) "tQY" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -57978,15 +58135,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"tTQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/corner{ +"tTS" = ( +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/area/station/service/hydroponics/garden) +/obj/machinery/photocopier/prebuilt, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/wood, +/area/station/service/library) "tUb" = ( /obj/structure/railing{ dir = 4 @@ -58207,17 +58364,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit/green, /area/station/ai_monitored/command/nuke_storage) -"tXs" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ +"tXt" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white{ dir = 8 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/paramedic) +/turf/open/floor/iron/large, +/area/station/service/hydroponics/garden) "tXM" = ( /obj/structure/disposalpipe/segment{ dir = 8 @@ -58431,6 +58584,13 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) +"ubl" = ( +/obj/structure/stairs/east, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/iron/stairs/medium{ + dir = 8 + }, +/area/station/medical/storage) "ubm" = ( /turf/closed/wall/r_wall, /area/station/security/prison/work) @@ -58511,6 +58671,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/service/theater) +"udu" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/stripes{ + dir = 5 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "udG" = ( /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, @@ -58993,6 +59162,10 @@ /obj/effect/turf_decal/tile/bar/opposingcorners, /turf/open/floor/iron, /area/station/service/bar) +"ulU" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/service/bar) "ulV" = ( /obj/machinery/door/airlock/grunge{ name = "Chapel" @@ -59151,20 +59324,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/service/hydroponics) -"upq" = ( -/obj/structure/table/reinforced, -/obj/machinery/coffeemaker{ - pixel_y = 5 - }, -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/half, -/area/station/security/breakroom) "ups" = ( /obj/docking_port/stationary/escape_pod, /turf/open/space/basic, @@ -59388,10 +59547,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/tile, /area/station/service/bar) -"uss" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/plating, -/area/station/maintenance/central/greater) "usF" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -59493,6 +59648,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/wood/parquet, /area/station/service/theater) +"uuh" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/obj/machinery/requests_console/auto_name/directional/north, +/obj/effect/mapping_helpers/requests_console/assistance, +/turf/open/floor/iron, +/area/station/cargo/storage) "uuu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59546,11 +59709,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"uvn" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/turf/open/floor/iron/dark, -/area/station/medical/morgue) "uvx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59649,12 +59807,6 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"uyc" = ( -/obj/machinery/light/cold/directional/west, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/aisat/foyer) "uyj" = ( /obj/structure/cable, /obj/machinery/door/airlock/atmos/glass{ @@ -59914,6 +60066,23 @@ dir = 9 }, /area/station/command/emergency_closet) +"uCp" = ( +/obj/machinery/door/airlock/research/glass{ + name = "Xenobiology Space Bridge" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/purple/filled/arrow_ccw{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology/hallway) "uCr" = ( /obj/structure/table, /obj/machinery/fax{ @@ -60003,12 +60172,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"uDQ" = ( -/obj/machinery/door/airlock/research{ - name = "Restroom" - }, -/turf/open/floor/iron/showroomfloor, -/area/station/science/research) "uDZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -60204,15 +60367,6 @@ /obj/machinery/recharger, /turf/open/floor/iron/textured, /area/station/security/warden) -"uId" = ( -/obj/machinery/computer/bank_machine{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/effect/turf_decal/bot_white, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/nuke_storage) "uIj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -60488,14 +60642,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) -"uNl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/iron/half, -/area/station/service/hydroponics/garden) "uNt" = ( /obj/effect/turf_decal/siding/wideplating_new, /obj/effect/turf_decal/siding/white, @@ -60572,10 +60718,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/misc/asteroid, /area/station/maintenance/department/science) -"uOv" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/service/bar) "uOx" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -60797,15 +60939,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security) -"uTS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood/large, -/area/station/cargo/boutique) "uUj" = ( /obj/machinery/door/airlock/highsecurity{ name = "AI Chamber" @@ -60837,6 +60970,17 @@ /obj/structure/sign/poster/contraband/random/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"uUt" = ( +/obj/machinery/door/poddoor/shutters/window/preopen{ + dir = 8; + id = "xbprotect"; + name = "Security Shutters" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/xenobiology) "uUx" = ( /obj/machinery/dna_infuser, /obj/item/infuser_book, @@ -60921,6 +61065,10 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/storage) +"uWb" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/hallway/primary/central) "uWj" = ( /obj/effect/landmark/start/chaplain, /obj/machinery/holopad, @@ -60980,10 +61128,6 @@ }, /turf/open/space/basic, /area/space) -"uXt" = ( -/obj/machinery/hydroponics/constructable, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "uXw" = ( /obj/machinery/camera/autoname/directional/west{ network = list("ss13","engine") @@ -61159,13 +61303,6 @@ "vaC" = ( /turf/open/floor/catwalk_floor/iron_dark, /area/station/command/corporate_dock) -"vaS" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron, -/area/station/hallway/primary/central) "vaU" = ( /obj/item/toy/plush/lizard_plushie/space/green{ name = "Delaminates-The-Supermatter" @@ -61253,6 +61390,23 @@ /obj/structure/closet/wardrobe/white/medical, /turf/open/floor/iron/white, /area/station/medical/paramedic) +"vdD" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_corner, +/area/station/science/research) +"vdJ" = ( +/obj/structure/cable, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/treatment_center) "vdO" = ( /obj/effect/turf_decal/tile/dark_red/opposingcorners, /obj/machinery/light_switch/directional/north, @@ -61312,13 +61466,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"vex" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "veW" = ( /obj/structure/extinguisher_cabinet/directional/north, /turf/closed/wall, @@ -61329,10 +61476,6 @@ }, /turf/open/floor/catwalk_floor/iron_dark/telecomms, /area/station/ai_monitored/turret_protected/ai) -"vft" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/security/warden) "vfy" = ( /obj/machinery/door/airlock/medical/glass{ name = "Pharmacy" @@ -61520,6 +61663,13 @@ /obj/structure/flora/bush/grassy/style_random, /turf/open/floor/grass, /area/station/science/research) +"vja" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1 + }, +/turf/open/floor/iron/half, +/area/station/service/hydroponics/garden) "vjm" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -61647,14 +61797,6 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) -"vkU" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/armory, -/obj/effect/turf_decal/tile/red/fourcorners, -/turf/open/floor/iron, -/area/station/security/warden) "vla" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -61802,6 +61944,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/research) +"vog" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/security/warden) "voq" = ( /obj/structure/closet/crate/secure/science, /obj/effect/spawner/random/entertainment/money_medium, @@ -62104,10 +62252,6 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/iron/white, /area/station/science/lobby) -"vuI" = ( -/obj/effect/landmark/firealarm_sanity, -/turf/open/openspace, -/area/station/hallway/primary/central) "vuZ" = ( /obj/structure/bookcase/random/reference, /turf/open/floor/wood/parquet, @@ -62140,16 +62284,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"vvQ" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/machinery/light/cold/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/white, -/area/station/medical/treatment_center) "vvY" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ dir = 9 @@ -62604,6 +62738,13 @@ /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/plasma_output, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) +"vED" = ( +/obj/structure/closet/secure_closet/warden, +/obj/item/gun/energy/laser, +/obj/item/radio/intercom/directional/north, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet/red, +/area/station/security/warden) "vEE" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -63188,25 +63329,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white/smooth_large, /area/station/science/research) -"vNO" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron, -/area/station/engineering/gravity_generator) "vNT" = ( /obj/machinery/computer/slot_machine, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/iron/grimy, /area/station/maintenance/central/lesser) -"vNY" = ( -/obj/machinery/firealarm/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/large, -/area/station/service/hydroponics/garden) "vNZ" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -63233,18 +63360,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/hallway/primary/central) -"vOk" = ( -/obj/effect/mapping_helpers/airlock/access/all/engineering/general, -/obj/machinery/door/airlock/engineering/glass{ - name = "Supermatter Engine Room" - }, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable/layer1, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) "vOs" = ( /obj/machinery/airalarm/directional/south, /obj/structure/tank_holder/extinguisher, @@ -63371,6 +63486,15 @@ "vQB" = ( /turf/closed/wall, /area/station/cargo/boutique) +"vQR" = ( +/obj/effect/turf_decal/tile/neutral/half{ + dir = 8 + }, +/obj/machinery/vending/wallmed/directional/west, +/turf/open/floor/iron/edge{ + dir = 8 + }, +/area/station/hallway/secondary/exit/departure_lounge) "vQT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64085,12 +64209,6 @@ /obj/structure/sign/poster/random/directional/west, /turf/open/floor/plating, /area/station/maintenance/department/medical) -"wdU" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/commons/storage/primary) "wdV" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt/dust, @@ -64180,8 +64298,8 @@ pixel_y = 9 }, /obj/item/holosign_creator/atmos{ - pixel_y = 11; - pixel_x = 9 + pixel_x = 9; + pixel_y = 11 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/item/pipe_dispenser, @@ -64283,16 +64401,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wit" = ( -/obj/effect/turf_decal/tile/red/anticorner/contrasted{ +"wiy" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, -/obj/machinery/digital_clock/directional/north, -/obj/item/kirbyplants/random, -/obj/machinery/camera/autoname/directional/west, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/security/brig/entrance) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/cafeteria, +/area/station/commons/locker) "wiA" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -64468,20 +64584,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"wlN" = ( -/obj/structure/table, -/obj/item/hatchet, -/obj/item/cultivator, -/obj/item/crowbar, -/obj/item/reagent_containers/cup/watering_can, -/obj/item/plant_analyzer, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/item/storage/bag/plants/portaseeder, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "wlO" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -64533,6 +64635,15 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"wmN" = ( +/obj/effect/turf_decal/stripes{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/cable/layer1, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/engine, +/area/station/engineering/supermatter/room) "wmO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/glass/reinforced, @@ -64546,10 +64657,6 @@ }, /turf/open/floor/wood/tile, /area/station/security/courtroom) -"wnj" = ( -/mob/living/basic/deer, -/turf/open/floor/grass, -/area/station/service/hydroponics/garden) "wnw" = ( /obj/effect/spawner/structure/window/hollow/reinforced/middle, /obj/machinery/door/poddoor/shutters/preopen{ @@ -64578,7 +64685,7 @@ /turf/open/floor/plating, /area/station/maintenance/central/lesser) "wnT" = ( -/obj/structure/filingcabinet/filingcabinet, +/obj/structure/filingcabinet/white, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/camera/autoname/directional/south{ network = list("ss13","medbay") @@ -64668,6 +64775,13 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/teleporter) +"wpG" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lobby) "wpH" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/crayon, @@ -64690,13 +64804,6 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"wpQ" = ( -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/command/corporate_showroom) "wpU" = ( /obj/machinery/door/airlock/medical/glass{ name = "Waiting Room" @@ -64727,11 +64834,6 @@ /obj/structure/lattice/catwalk, /turf/open/openspace/telecomms, /area/station/science/xenobiology) -"wqH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plating, -/area/station/service/theater) "wqK" = ( /obj/structure/table, /obj/item/circular_saw, @@ -64870,6 +64972,14 @@ }, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"wsX" = ( +/obj/machinery/duct, +/obj/structure/cable, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "wtf" = ( /obj/machinery/camera/autoname/directional/north{ network = list("ss13","rd") @@ -65087,6 +65197,21 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/smooth_large, /area/station/science/xenobiology/hallway) +"wwe" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/geiger_counter{ + pixel_x = 7; + pixel_y = 3 + }, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 9 + }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/checkpoint/engineering) "wwj" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -65170,21 +65295,6 @@ }, /turf/open/floor/carpet/executive, /area/station/command/meeting_room) -"wxO" = ( -/obj/machinery/disposal/bin{ - desc = "A pneumatic waste disposal unit. This one leads into space!"; - name = "deathsposal unit" - }, -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, -/obj/machinery/light/directional/south, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white/textured_large, -/area/station/science/xenobiology) "wxQ" = ( /obj/machinery/computer/operating{ dir = 8 @@ -65264,6 +65374,10 @@ /obj/item/pai_card, /turf/open/floor/iron, /area/station/hallway/primary/central) +"wyK" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/plating, +/area/station/maintenance/central/greater) "wyZ" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ dir = 4 @@ -65592,18 +65706,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"wDU" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, -/obj/machinery/light_switch/directional/east{ - pixel_y = 5 - }, -/obj/machinery/firealarm/directional/east{ - pixel_y = -5 - }, -/turf/open/floor/iron, -/area/station/commons/storage/tools) "wDW" = ( /obj/machinery/modular_computer/preset/id{ dir = 1 @@ -65613,6 +65715,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) +"wDX" = ( +/obj/machinery/firealarm/directional/north, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "wEc" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -65749,6 +65856,12 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"wFR" = ( +/obj/structure/railing/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/catwalk_floor/iron_white, +/area/station/science/lobby) "wFS" = ( /obj/machinery/portable_atmospherics/canister, /obj/effect/turf_decal/bot, @@ -65907,6 +66020,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"wKJ" = ( +/obj/structure/showcase/cyborg/old{ + dir = 8; + pixel_x = 9; + pixel_y = 2 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/station/ai_monitored/turret_protected/aisat/foyer) "wKO" = ( /turf/open/floor/glass, /area/station/maintenance/department/medical) @@ -66127,26 +66249,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/central) -"wOm" = ( -/obj/structure/table, -/obj/item/food/grown/wheat, -/obj/item/food/grown/watermelon, -/obj/item/food/grown/citrus/orange, -/obj/item/food/grown/grapes, -/obj/item/food/grown/cocoapod, -/obj/item/food/grown/apple, -/obj/item/food/grown/chili, -/obj/item/food/grown/cherries, -/obj/item/food/grown/soybeans, -/obj/item/food/grown/citrus/lime, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/iron/textured_large, -/area/station/service/hydroponics/garden) "wOn" = ( /obj/machinery/door/airlock/research/glass{ name = "Ordnance Lab" @@ -66197,6 +66299,16 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"wPk" = ( +/obj/structure/transport/linear/public{ + base_icon_state = "catwalk"; + icon = 'icons/obj/smooth_structures/catwalk.dmi'; + icon_state = "catwalk-255" + }, +/obj/effect/turf_decal/caution/stand_clear, +/obj/effect/landmark/firealarm_sanity, +/turf/open/floor/plating/elevatorshaft, +/area/station/cargo/storage) "wPn" = ( /obj/structure/girder, /turf/open/floor/plating, @@ -66205,16 +66317,6 @@ /obj/effect/landmark/atmospheric_sanity/ignore_area, /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/ai_upload_foyer) -"wPD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/table, -/obj/machinery/light/directional/south, -/obj/item/radio/intercom/directional/south, -/obj/item/storage/box/bandages, -/turf/open/floor/iron, -/area/station/command/gateway) "wPE" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -66224,6 +66326,14 @@ }, /turf/open/floor/iron, /area/station/security/office) +"wPP" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/medbay/central) "wPU" = ( /obj/machinery/light/small/directional/west, /turf/open/misc/asteroid, @@ -66288,17 +66398,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) -"wRi" = ( -/obj/machinery/computer/crew{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","medbay") - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/white, -/area/station/medical/paramedic) "wRm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, @@ -66333,6 +66432,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"wRM" = ( +/obj/structure/water_source/puddle, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "wRN" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ @@ -66763,26 +66866,6 @@ /obj/effect/turf_decal/tile/blue/half/contrasted, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"wZK" = ( -/obj/structure/table/wood/fancy/red, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/recharger{ - pixel_x = 16; - pixel_y = 3 - }, -/obj/item/folder/red{ - pixel_x = 2; - pixel_y = 9 - }, -/obj/item/stamp/head/hos{ - pixel_y = 11; - pixel_x = 2 - }, -/obj/machinery/computer/records/security/laptop{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/hos) "wZR" = ( /obj/machinery/telecomms/message_server/preset, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -66805,20 +66888,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"xao" = ( -/obj/structure/railing{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/landmark/firealarm_sanity, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/lobby) "xas" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/effect/turf_decal/siding/blue{ @@ -66898,11 +66967,6 @@ /obj/effect/turf_decal/stripes, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"xaY" = ( -/obj/item/radio/intercom/directional/north, -/obj/machinery/modular_computer/preset/id, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/hos) "xbi" = ( /obj/effect/landmark/start/depsec/engineering, /obj/effect/turf_decal/trimline/red/filled/line, @@ -66949,6 +67013,18 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/department/science) +"xbB" = ( +/obj/machinery/disposal/bin, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark/textured_edge{ + dir = 1 + }, +/area/station/medical/pharmacy) "xbC" = ( /obj/effect/turf_decal/siding/purple{ dir = 4 @@ -67117,15 +67193,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science) -"xeP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood/parquet, -/area/station/cargo/boutique) "xeS" = ( /turf/open/floor/iron, /area/station/commons/storage/primary) @@ -67164,6 +67231,15 @@ dir = 8 }, /area/station/engineering/atmos) +"xfE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/wood/large, +/area/station/cargo/boutique) "xfJ" = ( /obj/machinery/door/window/brigdoor/right/directional/west{ req_access = list("xenobiology") @@ -67499,14 +67575,6 @@ /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"xlX" = ( -/obj/machinery/duct, -/obj/structure/cable, -/obj/effect/turf_decal/tile/dark_green/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "xlY" = ( /obj/structure/bookcase/random/reference, /turf/open/floor/wood, @@ -67901,6 +67969,14 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/catwalk_floor, /area/station/cargo/storage) +"xtG" = ( +/obj/machinery/rnd/production/techfab/department/service, +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/tile/dark_green/opposingcorners, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "xtH" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/effect/turf_decal/tile/red/half/contrasted{ @@ -68042,6 +68118,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white/smooth_half, /area/station/medical/pharmacy) +"xvZ" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/maintenance/central/greater) "xwe" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/full, @@ -68067,12 +68147,6 @@ /obj/structure/railing, /turf/open/openspace, /area/station/engineering/main) -"xwn" = ( -/obj/machinery/light/warm/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood/tile, -/area/station/service/bar) "xws" = ( /turf/closed/wall, /area/station/engineering/supermatter/room) @@ -68467,6 +68541,25 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood/parquet, /area/station/cargo/boutique) +"xCE" = ( +/obj/structure/window/spawner/directional/east, +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = -14 + }, +/obj/item/storage/medkit/regular{ + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/disposalpipe/trunk/multiz{ + dir = 8 + }, +/obj/machinery/vending/wallmed/directional/north, +/turf/open/floor/iron/white, +/area/station/security/medical) "xCI" = ( /obj/structure/broken_flooring/side/directional/east, /obj/effect/decal/cleanable/dirt/dust, @@ -68518,6 +68611,19 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) +"xDm" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sink/directional/east, +/turf/open/floor/iron, +/area/station/service/hydroponics) "xDn" = ( /obj/machinery/door/airlock/engineering{ name = "Engine Room" @@ -68707,15 +68813,10 @@ /obj/structure/railing, /turf/open/floor/iron, /area/station/engineering/atmos) -"xHj" = ( -/obj/effect/turf_decal/stripes{ - dir = 8 - }, -/obj/structure/cable, -/obj/structure/cable/layer1, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/engine, -/area/station/engineering/supermatter/room) +"xHf" = ( +/obj/effect/landmark/firealarm_sanity, +/turf/open/openspace, +/area/station/medical/medbay/central) "xHA" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -68783,6 +68884,11 @@ /obj/structure/window/fulltile, /turf/open/misc/asteroid, /area/station/asteroid) +"xIR" = ( +/obj/structure/cable, +/obj/machinery/vending/wallmed/directional/north, +/turf/open/floor/iron/white, +/area/station/science/research) "xIV" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter) @@ -68873,13 +68979,6 @@ /obj/item/tank/internals/oxygen, /turf/open/floor/iron/white/textured, /area/station/medical/treatment_center) -"xKt" = ( -/obj/machinery/camera/autoname/directional/south{ - network = list("ss13","rd") - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/catwalk_floor/iron_white, -/area/station/science/ordnance/testlab) "xKx" = ( /mob/living/basic/mothroach, /turf/open/misc/asteroid, @@ -68937,6 +69036,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"xLR" = ( +/obj/effect/turf_decal/tile/red/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/digital_clock/directional/north, +/obj/item/kirbyplants/random, +/obj/machinery/camera/autoname/directional/west, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron, +/area/station/security/brig/entrance) "xMg" = ( /obj/machinery/shower/directional/south, /obj/effect/spawner/random/trash/soap, @@ -69264,6 +69373,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"xSN" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/hydroponics/soil/rich, +/turf/open/floor/grass, +/area/station/service/hydroponics/garden) "xSW" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -69632,15 +69746,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/chemistry/minisat) -"xZW" = ( -/obj/effect/turf_decal/tile/neutral/half{ - dir = 8 - }, -/obj/machinery/vending/wallmed/directional/west, -/turf/open/floor/iron/edge{ - dir = 8 - }, -/area/station/hallway/secondary/exit/departure_lounge) "xZX" = ( /obj/machinery/power/port_gen/pacman, /obj/structure/cable, @@ -69819,11 +69924,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/hop, /turf/open/floor/plating, /area/station/command/heads_quarters/hop) -"ycU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/junction/yjunction, -/turf/open/floor/iron/half, -/area/station/service/hydroponics/garden) "ycY" = ( /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 1 @@ -70133,6 +70233,9 @@ /obj/structure/window/spawner/directional/east, /turf/open/misc/grass, /area/station/ai_monitored/turret_protected/aisat/foyer) +"yin" = ( +/turf/open/water/no_planet_atmos/deep, +/area/station/service/hydroponics/garden) "yit" = ( /obj/structure/transport/linear/public, /turf/open/floor/plating/elevatorshaft, @@ -70143,10 +70246,6 @@ }, /turf/open/floor/carpet/black, /area/station/command/heads_quarters/hos) -"yiM" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/iron/dark, -/area/station/engineering/supermatter/room) "yiN" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -70223,17 +70322,6 @@ }, /turf/open/floor/iron, /area/station/command/bridge) -"yjW" = ( -/obj/machinery/fax{ - fax_name = "Psychology Office"; - name = "Psychology Office Fax Machine" - }, -/obj/structure/table/wood, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood/parquet, -/area/station/medical/psychology) "ykc" = ( /obj/structure/cable, /obj/item/trash/chips, @@ -83144,7 +83232,7 @@ kbY awi rnk bay -vvQ +rKH xsM tMO qhu @@ -83160,7 +83248,7 @@ wrU wrU dcx kZO -kap +fGj tpl kKc gRp @@ -83420,7 +83508,7 @@ xOQ qOF xOQ wwj -che +srO fma eCd dHU @@ -83667,7 +83755,7 @@ uhe qOF gVn xLN -dek +vdJ uRT ykv bzo @@ -84146,7 +84234,7 @@ jch oey dhN uDB -sgR +uuh uyL vSt umh @@ -84179,7 +84267,7 @@ pzx jgH yds kFT -mTZ +mmi hQK dPg fvo @@ -84405,7 +84493,7 @@ tka uDB lAL lAL -fuc +heZ uyL uyL ezP @@ -85155,7 +85243,7 @@ mmy uYI wMn cpB -plz +xCE luz hqN eSS @@ -85480,7 +85568,7 @@ iuV cEy dHk jyx -wRi +cTX rnk gtK oaP @@ -85702,7 +85790,7 @@ fXZ gli gli gli -gNu +oDo gli gli hgi @@ -85948,7 +86036,7 @@ exT uBI jCX hvA -hFu +wPk pJL jCX etV @@ -85994,7 +86082,7 @@ iKD nOx gTI ltB -dGr +ivD rnk gtK oqj @@ -86469,7 +86557,7 @@ sdc dro uyL uUF -bKP +cFF vQB vQB vQB @@ -86992,7 +87080,7 @@ mIA izd ccT iDB -uTS +xfE rnk uyC paa @@ -87022,7 +87110,7 @@ vkn pGM cBb dAr -tXs +asP rnk paa rnk @@ -87243,7 +87331,7 @@ mwR dHW vQB yae -aSv +nZL vQB geO chF @@ -87256,7 +87344,7 @@ oUd oUd rnk uVi -cdV +ubl mAi wJy qfB @@ -88028,7 +88116,7 @@ oUd rnk owr lDl -rbY +xbB qfB rdE wTW @@ -88234,7 +88322,7 @@ fAR keQ ftK jza -upq +rOe pWB jiy mJx @@ -88520,7 +88608,7 @@ sUn kRM wBw rKW -sIA +hGC uWl iDs fad @@ -89044,7 +89132,7 @@ lYe cis thW vQB -xeP +hCc dtx dtx dtx @@ -89063,7 +89151,7 @@ hjW dGs rdP qfB -eTH +oiC goI tuY xza @@ -89271,7 +89359,7 @@ mxv hSW fyA rRK -wit +xLR lfp tRX rjL @@ -90595,13 +90683,13 @@ xRH aly raT kAg +wRM tIH -tIH -tIH +nXt iuv -ggl -tIH -tIH +rqc +yin +yin kAg afW wUc @@ -90853,12 +90941,12 @@ aly hvT kAg ckn -wnj -tIH +mUh +rLQ mWf -tIH -lFZ -sWn +iak +cPz +eVl kAg uZx sRH @@ -91098,7 +91186,7 @@ cOR ufV jVI noF -wPD +dtI bAw ign iIB @@ -91109,11 +91197,11 @@ xRH qDb urP kAg -nvD +lyL pNa -nvD +tdH oQk -nvD +dlg fRv nvD kAg @@ -91360,19 +91448,19 @@ bAw kxZ fMZ hBi -wDU +qVe hov wjW aly hvT kAg -dAa -agu +fQX +kbe nEk aaV uOZ -vex -hzh +bSY +jlU kAg vNH czO @@ -91623,16 +91711,16 @@ bKK aly hvT kAg -dIc -lZO +fRX +dTR cQT tOV cQT -dGf -uXt +cyp +dPF kAg kAg -bYH +rPk aod bxx lsC @@ -91833,7 +91921,7 @@ smZ msz oXd cyS -oYm +ifP cyS sWp kgT @@ -91880,14 +91968,14 @@ eKD aly hvT sVM -kBm -aKP -jZK -wlN +gJC +vja +iVL +sTC loY -ycU -uOZ -tPJ +hkd +tXt +pKA uIa hvL mwo @@ -92139,12 +92227,12 @@ hvT nMT rjk aKP -maz +sNh kAg -auo +heC fvg rDs -agu +aEd nMT kYB sGk @@ -92361,9 +92449,9 @@ ygw ygw ygw ygw -bVB -tJn -bVB +eJM +gqB +eJM jAG exz qER @@ -92394,14 +92482,14 @@ mvk aly cJO eFl -fFQ -aKP -clX -cHu -wOm -uNl -dIi -vNY +bmV +cSy +rnY +scU +sFz +qaF +rgN +kUR sjL ngp fHJ @@ -92620,7 +92708,7 @@ qgE rkA hiW okd -ojj +dGO jAG oed oed @@ -92651,13 +92739,13 @@ qil cyF vTx kAg -jyV -eSc +xSN +oPO kqQ kqQ dVi -tTQ -uXt +bvj +dPF kAg kAg mGq @@ -92908,13 +92996,13 @@ acc acc slx kAg -gsm -agu +wDX +kbe agu cOC isH -agu -lpE +nSf +aZw kAg ujv kmu @@ -93142,7 +93230,7 @@ vhT fYj mff jpW -kPb +bGF rjX mHu tHF @@ -94681,7 +94769,7 @@ eEa kmu kmu xJe -vaS +toN wSi kmu rqj @@ -94700,7 +94788,7 @@ jrX lIr oEo otA -xlX +wsX bcX vMC brS @@ -94726,7 +94814,7 @@ oKy rbH dMU kGF -xZW +vQR yiO tiT pCJ @@ -95713,7 +95801,7 @@ rjg lTv tlE nwr -jLA +mnj xdj pWa kZw @@ -96275,7 +96363,7 @@ uir aaB nHK cLf -kmZ +dUc cLf cLf cLf @@ -96532,7 +96620,7 @@ amZ aaB nHK cLf -kmZ +dUc cLf cLf cLf @@ -96742,7 +96830,7 @@ aQL aQL aQL aQL -ank +eRy aQL aQL aQL @@ -96789,7 +96877,7 @@ ewX aaB nHK cLf -kmZ +dUc cLf cLf cLf @@ -97522,7 +97610,7 @@ aQL vAp qSq lLW -nFu +tbV qxr qxr qxr @@ -98507,7 +98595,7 @@ cLf cLf bqX cQP -aBe +gpT eon sZK sZK @@ -99070,7 +99158,7 @@ mds bmp vvC qQK -wqH +ako gjI vnr qPr @@ -99584,7 +99672,7 @@ vAE tDa fXR fXR -hLy +wiy bmp pjI vrF @@ -99830,7 +99918,7 @@ aGL aGL cgr xiy -sYV +rwG xQH mcA kqD @@ -100365,7 +100453,7 @@ gyM doH jIc xhy -jjb +bmO bmp rGv qbA @@ -101118,7 +101206,7 @@ xdq smT xQH xQH -qMl +cIM gGs uzH rnB @@ -101630,7 +101718,7 @@ uIU ufr kZw rhP -ttP +fQm xQH xQH cWD @@ -101842,7 +101930,7 @@ cLf jEY vWK vWK -uyc +sjB juh srs dWb @@ -101852,7 +101940,7 @@ iPH iuU srs bsZ -oyq +aMg iRp jEY jEY @@ -101896,7 +101984,7 @@ akl clG tXi utH -phH +sYZ sGV pik xzK @@ -102108,7 +102196,7 @@ qYV sQd rgp mIe -qBt +udu vBs hfm eVE @@ -103430,7 +103518,7 @@ nxG nxG nxG hjJ -mGU +tIk glH iAE xAm @@ -103455,7 +103543,7 @@ hmj xeS kmb jWE -wdU +gmX hbf dct hqk @@ -103713,7 +103801,7 @@ nSH oqz kXz oqz -oaJ +jlJ dct hqk jFc @@ -104741,7 +104829,7 @@ uLY teG sHg sHg -gtC +cYq wKY iFq jFc @@ -104931,7 +105019,7 @@ jWj lNE gRq gRq -jWM +oTh eAW eAW dPY @@ -105768,7 +105856,7 @@ pEf sbd soB sbd -txq +bcm lHm dct umt @@ -106026,7 +106114,7 @@ hYF qgY nAi ruq -ohx +qgc qPp bcr qVH @@ -106503,7 +106591,7 @@ tZF kcN xGB ixU -uDQ +beA kdg xOU xOU @@ -106546,7 +106634,7 @@ bcr cEc mht koe -smW +jUz qWS uFb gWo @@ -107278,7 +107366,7 @@ kQv lfx thf tJx -kQt +cwR nMI jQl niB @@ -107521,11 +107609,11 @@ oBP xAd kHG obA -mDK -iUJ +lNV +svL cPt ixU -cJM +xIR dfM pBn cPo @@ -108302,7 +108390,7 @@ hfB eIo smE xCw -rAz +dqU thf thf uzv @@ -109641,7 +109729,7 @@ uFb gLq lrk ykG -vNO +dgG mKc pGo ykG @@ -109880,7 +109968,7 @@ dpU jco oss vEZ -iaa +emO vEZ vEZ hmz @@ -110156,7 +110244,7 @@ chV rDD ykG ykG -lcE +arq ykG ykG cpG @@ -111186,7 +111274,7 @@ xCf suq bzQ ciE -iLH +kjI vdZ rgI kyh @@ -111673,7 +111761,7 @@ fTX sJD eKa rVZ -fNH +ozx fTX uBz qYt @@ -111947,7 +112035,7 @@ ybD ybD ybD ybD -pnO +tQX iJt oWE ybD @@ -112205,7 +112293,7 @@ jnY jnY jnY uFC -vOk +kcc uFC jnY jnY @@ -112463,7 +112551,7 @@ bup bup fOi cHe -xHj +wmN gyq gyq gyq @@ -116065,7 +116153,7 @@ hVB dvX ktc ncv -yiM +jld uFC vkO eIk @@ -121678,7 +121766,7 @@ jQS lcX jQS hKN -hrq +jVY hBF cnt hbV @@ -121686,7 +121774,7 @@ hbV hbV hbV kQa -lAX +pJt uhz jQS oPs @@ -121936,13 +122024,13 @@ jQS jQS jQS jQS -lYw +aoP jQS tMz krz tMz jQS -oei +kmo jQS jQS jQS @@ -123222,7 +123310,7 @@ kOL kOL xTa fyS -gUI +koK udH onm jJS @@ -128859,13 +128947,13 @@ cLf cLf cLf cLf -kmZ +dUc rYo rYo cAC rYo rYo -kmZ +dUc cLf cLf cLf @@ -130401,13 +130489,13 @@ cLf cLf cLf cLf -kmZ +dUc rYo rYo fxp rYo rYo -kmZ +dUc cLf cLf cLf @@ -147123,11 +147211,11 @@ aZg aZg vxX gNV -cPp -isP +bMZ +tKm lib qmf -uId +iSw gNV vxX vxX @@ -147384,7 +147472,7 @@ rwu eiI hvV kkK -mYx +pha gNV vxX vxX @@ -149432,7 +149520,7 @@ xXo sMV oZQ oZQ -iHN +aof oZQ oZQ oZQ @@ -149661,7 +149749,7 @@ lrV rQY kex dOG -xaY +oxe gYH vrU uDZ @@ -149682,7 +149770,7 @@ iaN dlY iaN sdc -iHN +aof oZQ qNz xXo @@ -149720,7 +149808,7 @@ laf kuy bVY lgA -yjW +eXW fnh mhc fnh @@ -149914,13 +150002,13 @@ jOV mIW mIW mIW -eYS +vED lLO ioZ dOG wum tYI -wZK +rpM sap wus gFI @@ -150169,7 +150257,7 @@ baH wSc jYh hKM -lLa +hEX mIW mIW xZO @@ -150179,7 +150267,7 @@ bFe fir icp mlq -mNc +lJT dOG gAQ eBa @@ -150222,7 +150310,7 @@ kYT bGk bGk bGk -cou +lsT bGk nNo imI @@ -150426,7 +150514,7 @@ aOp wSc tfZ mIW -vkU +mZK mIW qir loT @@ -150682,7 +150770,7 @@ wSc wSc wSc jYh -ppU +vog rrn edH kOn @@ -150745,7 +150833,7 @@ fqt jIn ryt oZX -irD +xHf evQ evQ evQ @@ -150939,7 +151027,7 @@ wSc wSc wSc jKc -ppU +vog mQo mQo eWB @@ -151196,7 +151284,7 @@ wSc wSc wSc eJT -ppU +vog bnr cYS iRR @@ -151453,7 +151541,7 @@ wSc wSc wSc jYh -ppU +vog idB mQo kUG @@ -151484,7 +151572,7 @@ vxX sdc oZQ oZQ -iHN +aof oZQ oZQ kUd @@ -151710,7 +151798,7 @@ wSc uhC nvR uEX -ppU +vog fPB ciy eLe @@ -152538,12 +152626,12 @@ evQ evQ evQ igq -elm +hfV fow cQK wZw dYr -jCR +wPP tLs uqh eCW @@ -152742,7 +152830,7 @@ vxX vxX vxX mIW -vft +sTS thT thT hED @@ -152814,8 +152902,8 @@ txF wxQ xMZ iMq -uvn -ceF +frv +cxP iMq vxX vxX @@ -153062,7 +153150,7 @@ gYT xdQ eCR xck -ejk +jpv xhJ qvV aOm @@ -156654,7 +156742,7 @@ vAo jCP sZF pLP -epI +kEs uXD vxX vxX @@ -157132,7 +157220,7 @@ vxX vxX gYW hbQ -nnc +saY gYW qIP gYW @@ -158453,7 +158541,7 @@ mJV jCP sZF pLP -epI +kEs uXD gMk vxX @@ -159719,11 +159807,11 @@ tZL reD qDQ vkR -fWU +lRN hCs -sal +kKU cmw -gtY +xtG lIr sYs vPn @@ -161004,7 +161092,7 @@ vFg oxh gYW tEn -reU +xDm mYU iIY jIK @@ -161023,7 +161111,7 @@ yaM ulL mGW mGW -vuI +uWb mGW iZz hzF @@ -161528,7 +161616,7 @@ acA xIN rDg rDg -uOv +ulU rDg rDg rDg @@ -161989,7 +162077,7 @@ iXk iXk bBm jxS -dGi +cjK jxS njZ gUB @@ -162000,7 +162088,7 @@ ttt uCo xXh xnF -ouQ +qMf ttt ttt ttt @@ -162063,7 +162151,7 @@ uxt swU tkD uxt -rLE +prB uxt oqN pLn @@ -162569,7 +162657,7 @@ mGW mGW iZz hzF -hfQ +atb eXi lIv okL @@ -163846,7 +163934,7 @@ nAm rDg rDg dyV -xwn +rvp hRB sYD iZz @@ -164084,15 +164172,15 @@ vxX vxX vxX gYW -uss +wyK tuR wxh -axO +xvZ gYW apQ tYw tYw -bVa +oPD apQ icl ggu @@ -164302,7 +164390,7 @@ iXk iXk cZE cZE -fCI +sAD cZE jIl kOl @@ -164865,7 +164953,7 @@ shl juZ lpu apQ -mCc +tTS dzY olR pUy @@ -165080,7 +165168,7 @@ vYv fEU pFd reS -fre +dpb owl owl owl @@ -165335,8 +165423,8 @@ iub dSG tZA tZA -wpQ -syT +jcQ +eIM owl owl owl @@ -166937,7 +167025,7 @@ vxX vxX gMk vDa -lHx +rBU oFk suV hRO @@ -167896,7 +167984,7 @@ bFS bFS wOo bSE -iVg +ciZ prw oVG aSM @@ -168923,7 +169011,7 @@ upF dVu tMV aOQ -gUK +gIq faK scg faK @@ -169433,7 +169521,7 @@ hhX hhX cxg srs -mWu +pqd bNI wHJ wHJ @@ -169445,7 +169533,7 @@ wHJ wHJ wHJ riQ -iop +wKJ srs mxt hhX @@ -169457,13 +169545,13 @@ vxX gvF gvF gvF -bJc -chM +wFR +mMO tqD tqD tqD -chM -gQu +mMO +fhP gvF vxX bKL @@ -169693,7 +169781,7 @@ mQE mlY mQE wHJ -lQH +hHO osK feV feV @@ -169714,13 +169802,13 @@ fYe jam bjb fft -pdi +wpG oAs gOc gOc gOc nzn -xao +jqf oWg gMk fXf @@ -170718,7 +170806,7 @@ hhX cxg mQE mQE -gwF +qoC yaw wHJ dqA @@ -170741,7 +170829,7 @@ mNZ mNZ gvF hAx -mNR +pof wny gOc gOc @@ -170987,7 +171075,7 @@ lmo xAR wHJ tww -ffT +jlL sJT ogb vxX @@ -173057,7 +173145,7 @@ lJq raz eUj obA -tPr +oJr vRA oXa gak @@ -173105,7 +173193,7 @@ bkk bkk bkk bkk -hoh +wwe nlI nlI miL @@ -173570,7 +173658,7 @@ evr vfJ raz obA -eBD +gbR omL wME acY @@ -173827,7 +173915,7 @@ riv vpK raz obA -mil +dOl nmj iJS fTN @@ -174133,7 +174221,7 @@ isT rRt isT dUi -gLa +ohe rls vos tFW @@ -174141,7 +174229,7 @@ tFW tFW rhK aWD -oWu +ohA qXm tfC nfP @@ -175377,14 +175465,14 @@ aLe cCb dwV vRA -ehq +qfr vRA vRA vRA sPD oZT jKg -kGT +jqG jxF vjZ mxq @@ -175636,7 +175724,7 @@ jxa jxa jxa jxa -oVj +vdD prh jxF sPD @@ -175893,7 +175981,7 @@ rHF mHf xfK jxa -qGd +kBo uWt kdg lJC @@ -176454,7 +176542,7 @@ pMJ ybD qHp wtH -hkb +nSN mGP jjI mee @@ -176670,12 +176758,12 @@ kdg sFa kzC jqk -qQi +pve uMT rQO uXP uXP -qJv +nLg osr rlw gMk @@ -176954,7 +177042,7 @@ oVF qXF kRT iZa -ffP +ahz iVk xoh mTw @@ -177468,7 +177556,7 @@ lpW lpW uqn iZa -svB +esV qdV qdV qdV @@ -177727,7 +177815,7 @@ iZa iZa lBZ qdV -rcq +oBo qdV dYo fWg @@ -177971,7 +178059,7 @@ uab qhG awM cQr -sHf +mtT pXL kOI eRl @@ -177980,7 +178068,7 @@ btZ djW oas muw -deR +bGU iZa hHS kHt @@ -178460,7 +178548,7 @@ iSz uba vfJ vfJ -rPV +coF wYI elT elT @@ -178475,7 +178563,7 @@ iFN iFN vxX rlw -asP +eGM rlw vxX dsP @@ -178491,7 +178579,7 @@ vEE jpH iZa jDi -smz +qtA nvC uIj jgs @@ -180009,7 +180097,7 @@ ivx ivx ivx wkG -eqZ +lLm iFN iFN iFN @@ -180266,7 +180354,7 @@ moe wkG wkG wkG -xKt +rzI moe vxX vxX @@ -180275,7 +180363,7 @@ vxX vxX rlw wvS -dPe +uCp uXP uXP iTF @@ -182078,7 +182166,7 @@ hhX hhX hhX sqL -faF +lQA rlw uVI uVI @@ -182318,9 +182406,9 @@ jVV jVV fDj fDj -sSn +qIt jYT -dqJ +jwF fDj fDj jVV @@ -184649,7 +184737,7 @@ hhX jQS tjq lSA -adQ +nKV jQS hhX hhX @@ -186442,7 +186530,7 @@ wBd hAL dBj jQS -sue +kSq ubn gYI ybO @@ -187470,7 +187558,7 @@ wBd hAL jQS jQS -mNw +uUt gMy gwx jQS @@ -187480,7 +187568,7 @@ wmO jQS xDf gtE -qtm +dsB jQS jQS cku @@ -187983,7 +188071,7 @@ jVV wBd rWL jQS -ibb +gBW qXj avA nVm @@ -187995,7 +188083,7 @@ wmO xGG uBm vUJ -wxO +cVF jQS hAL tLO @@ -188503,7 +188591,7 @@ cWL tMz jQS wmO -kgt +iaP jgA jQS tMz @@ -188758,7 +188846,7 @@ jEt aMf rdn xSW -dJI +oHh wnA wnA wnA @@ -189534,7 +189622,7 @@ rxC awy jpe wnA -ltO +iGg jQS jQS jQS @@ -189788,7 +189876,7 @@ jQS tbU byC tbU -oia +dKo tbU byC tbU @@ -190045,7 +190133,7 @@ jQS nCm nCm nCm -kgM +rOD nCm nCm nCm @@ -197840,8 +197928,8 @@ hhX hhX hhX hhX -hhX -hhX +cxg +cxg hhX hhX hhX @@ -198096,10 +198184,10 @@ hhX hhX hhX hhX -hhX -hhX -hhX -hhX +cxg +cKD +wSj +cxg hhX hhX hhX @@ -198352,6 +198440,13 @@ hhX hhX hhX hhX +cxg +wSj +pwU +wSj +wSj +hhX +hhX hhX hhX hhX @@ -198360,6 +198455,8 @@ hhX hhX hhX hhX +"} +(244,1,2) = {" hhX hhX hhX @@ -198367,8 +198464,6 @@ hhX hhX hhX hhX -"} -(244,1,2) = {" hhX hhX hhX @@ -198602,6 +198697,10 @@ hhX hhX hhX hhX +cxg +wSj +wSj +wSj hhX hhX hhX @@ -198613,6 +198712,8 @@ hhX hhX hhX hhX +"} +(245,1,2) = {" hhX hhX hhX @@ -198624,8 +198725,6 @@ hhX hhX hhX hhX -"} -(245,1,2) = {" hhX hhX hhX @@ -198868,10 +198967,10 @@ hhX hhX hhX hhX -cxg -cxg hhX hhX +"} +(246,1,2) = {" hhX hhX hhX @@ -198881,8 +198980,6 @@ hhX hhX hhX hhX -"} -(246,1,2) = {" hhX hhX hhX @@ -199124,22 +199221,18 @@ hhX hhX hhX hhX -cxg -cKD -wSj -cxg hhX hhX hhX hhX hhX +"} +(247,1,2) = {" hhX hhX hhX hhX hhX -"} -(247,1,2) = {" hhX hhX hhX @@ -199380,11 +199473,6 @@ hhX hhX hhX hhX -cxg -wSj -pwU -wSj -wSj hhX hhX hhX @@ -199637,10 +199725,10 @@ hhX hhX hhX hhX -cxg -wSj -wSj -wSj +hhX +hhX +hhX +hhX hhX hhX hhX diff --git a/_maps/shuttles/emergency_monastery.dmm b/_maps/shuttles/emergency_monastery.dmm index bada195eb480..e1c8d5a97b57 100644 --- a/_maps/shuttles/emergency_monastery.dmm +++ b/_maps/shuttles/emergency_monastery.dmm @@ -60,7 +60,7 @@ "bd" = ( /obj/structure/lattice, /obj/structure/grille/broken, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "be" = ( /obj/machinery/light/small/directional/west, @@ -142,7 +142,7 @@ /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/lattice, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "cu" = ( /obj/structure/table/wood, @@ -159,10 +159,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/shuttle/escape) -"cH" = ( -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, -/area/shuttle/escape) "cT" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -199,11 +195,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/shuttle/escape) -"dp" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/lattice, -/turf/open/space, -/area/shuttle/escape) "du" = ( /obj/machinery/door/airlock/external/ruin, /turf/open/floor/plating, @@ -230,7 +221,7 @@ "dX" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "dY" = ( /obj/structure/table/wood, @@ -302,7 +293,7 @@ "fm" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "fn" = ( /obj/effect/spawner/xmastree, @@ -341,7 +332,7 @@ /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "fT" = ( /obj/structure/table/wood, @@ -462,7 +453,7 @@ "iw" = ( /obj/structure/lattice, /obj/structure/grille, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "iB" = ( /obj/machinery/light/small/directional/west, @@ -671,7 +662,7 @@ "kJ" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, +/turf/open/space/basic, /area/shuttle/escape) "kM" = ( /obj/structure/table/wood/fancy, @@ -697,11 +688,6 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/shuttle/escape) -"ln" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/space, -/area/shuttle/escape) "lB" = ( /turf/open/floor/iron/chapel{ dir = 8 @@ -729,14 +715,6 @@ }, /turf/open/floor/iron, /area/shuttle/escape) -"ml" = ( -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/space, -/area/shuttle/escape) -"mm" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/shuttle/escape) "mn" = ( /obj/structure/chair/wood, /obj/item/radio/intercom/chapel{ @@ -1315,10 +1293,6 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/shuttle/escape/brig) -"uP" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/turf/open/space, -/area/shuttle/escape) "uX" = ( /obj/machinery/power/smes, /turf/open/floor/plating, @@ -2793,10 +2767,6 @@ /obj/effect/station_crash/devastating, /turf/open/floor/iron/dark, /area/shuttle/escape) -"OL" = ( -/obj/structure/lattice, -/turf/open/space, -/area/shuttle/escape) "OM" = ( /obj/item/cultivator, /turf/open/floor/grass, @@ -4287,7 +4257,7 @@ nr nr nr nr -uP +hq hq JG JG @@ -4989,9 +4959,9 @@ JG JG PB ti -OL -uP -ln +PB +hq +gl zE zE AJ @@ -5065,7 +5035,7 @@ JG JG JG iw -OL +PB iw iw iw @@ -5149,8 +5119,8 @@ JG iw JG JG -dp -uP +rZ +hq zE Zf zE @@ -5229,7 +5199,7 @@ JG JG JG bd -OL +PB bT zE zE @@ -5311,7 +5281,7 @@ aH iw iw iw -cH +qA zE zE jc @@ -5388,8 +5358,8 @@ JG JG "} (21,1,1) = {" -uP -uP +hq +hq hq rZ hq @@ -5798,7 +5768,7 @@ JG JG "} (26,1,1) = {" -cH +qA zE ox bb @@ -6217,7 +6187,7 @@ LK zE LK dX -ml +IM fm zE zE @@ -6294,9 +6264,9 @@ JG JG IM IM -ml -ml -ml +IM +IM +IM IM JG JG @@ -6384,7 +6354,7 @@ JG JG JG JG -ml +IM fm zE zE @@ -6635,8 +6605,8 @@ JG JG JG JG -ml -ml +IM +IM jS zE ko @@ -6721,7 +6691,7 @@ JG JG JG kJ -mm +ti zE jc jc @@ -6803,7 +6773,7 @@ JG JG JG PB -mm +ti zE zE zE @@ -6884,8 +6854,8 @@ JG JG JG JG -OL -mm +PB +ti kJ IM IM diff --git a/_maps/virtual_domains/meta_central.dmm b/_maps/virtual_domains/meta_central.dmm index 43314f959b1d..8c17d14812a4 100644 --- a/_maps/virtual_domains/meta_central.dmm +++ b/_maps/virtual_domains/meta_central.dmm @@ -262,6 +262,14 @@ /obj/effect/turf_decal/caution/red, /turf/open/floor/iron, /area/virtual_domain) +"ch" = ( +/obj/structure/table/wood, +/obj/machinery/light/directional/south, +/obj/item/papercutter{ + pixel_x = -4 + }, +/turf/open/floor/wood, +/area/virtual_domain) "cj" = ( /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/tile/neutral{ @@ -3690,6 +3698,19 @@ }, /turf/open/floor/iron, /area/virtual_domain) +"Fa" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/night{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/clothing/glasses/night, +/obj/item/clothing/glasses/night{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/template_noop, +/area/virtual_domain/safehouse) "Fc" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/neutral{ @@ -4406,19 +4427,6 @@ /obj/item/clothing/mask/facehugger/dead, /turf/open/floor/plating, /area/virtual_domain) -"Lq" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/glasses/night/colorless{ - pixel_x = 5; - pixel_y = 7 - }, -/obj/item/clothing/glasses/night/colorless, -/obj/item/clothing/glasses/night/colorless{ - pixel_x = -5; - pixel_y = -3 - }, -/turf/template_noop, -/area/virtual_domain/safehouse) "Ls" = ( /obj/modular_map_root/safehouse{ key = "shuttle_space" @@ -4522,15 +4530,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, /area/virtual_domain) -"Mk" = ( -/obj/structure/table/wood, -/obj/machinery/light/directional/south, -/obj/item/papercutter{ - pixel_x = -4 - }, -/obj/item/paper/fluff/ids_for_dummies, -/turf/open/floor/wood, -/area/virtual_domain) "Ml" = ( /obj/effect/decal/cleanable/crayon/x, /turf/closed/wall/rust, @@ -6727,7 +6726,7 @@ uS uS ML DP -Mk +ch uS ND AP @@ -7277,7 +7276,7 @@ oD pB hX zQ -Lq +Fa hX hX hX diff --git a/_maps/virtual_domains/psyker_shuffle.dmm b/_maps/virtual_domains/psyker_shuffle.dmm index 5f303d4ae047..bc77f996ee6f 100644 --- a/_maps/virtual_domains/psyker_shuffle.dmm +++ b/_maps/virtual_domains/psyker_shuffle.dmm @@ -85,7 +85,7 @@ /turf/open/indestructible/dark, /area/virtual_domain) "B" = ( -/turf/open/space, +/turf/open/space/basic, /area/space/virtual_domain) "F" = ( /obj/structure/closet/crate/internals, diff --git a/biome.json b/biome.json index 9b05fad5eeab..8f792f2b57b0 100644 --- a/biome.json +++ b/biome.json @@ -56,8 +56,7 @@ "suspicious": { "noArrayIndexKey": "off", "noExplicitAny": "off", - "noImplicitAnyLet": "off", - "noAssignInExpressions": "warn" + "noImplicitAnyLet": "off" } } }, diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index 441b561090d0..558969396993 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -160,6 +160,8 @@ #define ACCESS_AWAY_GENERIC2 "away_generic2" #define ACCESS_AWAY_GENERIC3 "away_generic3" #define ACCESS_AWAY_GENERIC4 "away_generic4" +#define ACCESS_ROROCO "roroco" +#define ACCESS_ROROCO_SECURE "roroco_secure" /// - - - MECH - - - // Mech Access, allows maintanenace of internal components and altering keycard requirements. diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index 502f2c94d884..47ba741764b2 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -70,6 +70,7 @@ #define MAFIA_MEDAL_DETECTIVE "Detective" #define MAFIA_MEDAL_PSYCHOLOGIST "Psychologist" #define MAFIA_MEDAL_CHAPLAIN "Chaplain" +#define MAFIA_MEDAL_CORONER "Coroner" #define MAFIA_MEDAL_MD "Medical Doctor" #define MAFIA_MEDAL_OFFICER "Security Officer" #define MAFIA_MEDAL_LAWYER "Lawyer" @@ -160,3 +161,6 @@ #define CHEF_TOURISTS_SERVED "Tourists Served As Chef" #define BARTENDER_TOURISTS_SERVED "Tourists Served As Bartender" + +/// Value in metadata version that signifies the achievement is archived +#define ACHIEVEMENT_ARCHIVED_VERSION 9999 diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index 0fa62223bdab..65a1ead24649 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -82,7 +82,7 @@ /atom/proc/Admin_Coordinates_Readable(area_name, admin_jump_ref) var/turf/turf_at_coords = Safe_COORD_Location() - return turf_at_coords ? "[area_name ? "[get_area_name(turf_at_coords, TRUE)] " : " "]([turf_at_coords.x],[turf_at_coords.y],[turf_at_coords.z])[admin_jump_ref ? " [ADMIN_JMP(turf_at_coords)]" : ""]" : "nonexistent location" + return turf_at_coords ? "[area_name ? "[get_area_name(turf_at_coords, TRUE)] " : ""]([turf_at_coords.x],[turf_at_coords.y],[turf_at_coords.z])[admin_jump_ref ? " [ADMIN_JMP(turf_at_coords)]" : ""]" : "nonexistent location" /atom/proc/Safe_COORD_Location() var/atom/drop_atom = drop_location() @@ -124,12 +124,6 @@ #define RANK_SOURCE_BACKUP "rank_backup" #define RANK_SOURCE_TEMPORARY "rank_temp" -/// Amount of time after the round starts that the player disconnect report is issued. -#define ROUNDSTART_LOGOUT_REPORT_TIME (10 MINUTES) - -/// Threshold in minutes for counting a player as AFK on the roundstart report. -#define ROUNDSTART_LOGOUT_AFK_THRESHOLD (ROUNDSTART_LOGOUT_REPORT_TIME * 0.7) - /// Number of identical messages required before the spam-prevention will warn you to stfu #define SPAM_TRIGGER_WARNING 5 /// Number of identical messages required before the spam-prevention will automute you diff --git a/code/__DEFINES/admin_verb.dm b/code/__DEFINES/admin_verb.dm index ae8c75b05888..71abb07f8a07 100644 --- a/code/__DEFINES/admin_verb.dm +++ b/code/__DEFINES/admin_verb.dm @@ -92,3 +92,4 @@ _ADMIN_VERB(verb_path_name, verb_permissions, verb_name, verb_desc, verb_categor // Visibility flags #define ADMIN_VERB_VISIBLITY_FLAG_MAPPING_DEBUG "Map-Debug" +#define ADMIN_VERB_VISIBLITY_FLAG_LOCALHOST "Localhost" diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 0a6e8bb7427c..c888562b872b 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -461,3 +461,9 @@ GLOBAL_LIST_INIT(human_invader_antagonists, list( #define BATTLE_ROYALE_CAMERA_NET "battle_royale_camera_net" #define MALF_MAX_PP 400 + +//Uplink spawn loc +#define UPLINK_PDA "PDA" +#define UPLINK_RADIO "Radio" +#define UPLINK_PEN "Pen" //like a real spy! +#define UPLINK_IMPLANT "Implant" diff --git a/code/__DEFINES/clothing.dm b/code/__DEFINES/clothing.dm index a6370218fd40..805d3eccb38e 100644 --- a/code/__DEFINES/clothing.dm +++ b/code/__DEFINES/clothing.dm @@ -42,3 +42,29 @@ /// How much integrity does a shirt lose every time we bite it? #define MOTH_EATING_CLOTHING_DAMAGE 15 + +//Suit/Skirt +/// Preference: Jumpsuit +#define PREF_SUIT "Jumpsuit" +/// Preference: Jumpskirt +#define PREF_SKIRT "Jumpskirt" + +// Types of backpack +/// Backpack type: Department themed backpack +#define DBACKPACK "Department Backpack" +/// Backpack type: Department themed duffelbag +#define DDUFFELBAG "Department Duffel Bag" +/// Backpack type: Department themed satchel +#define DSATCHEL "Department Satchel" +/// Backpack type: Department themed messenger bag +#define DMESSENGER "Department Messenger Bag" +/// Backpack type: Grey backpack +#define GBACKPACK "Grey Backpack" +/// Backpack type: Grey duffelbag +#define GDUFFELBAG "Grey Duffel Bag" +/// Backpack type: Grey satchel +#define GSATCHEL "Grey Satchel" +/// Backpack type: Grey messenger bag +#define GMESSENGER "Grey Messenger Bag" +/// Backpack type: Leather satchel +#define LSATCHEL "Leather Satchel" diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index b5ea83cd26eb..a340e5228962 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -233,6 +233,21 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list( /// Ammo box will have a different sprite for any ammo at all, and no ammo, -full -empty #define AMMO_BOX_FULL_EMPTY 2 +// Ammo box multiload defines +/// Ammo box does not accept multiload in or out, e.g. ammo box CANNOT transfer multiple casings in one action, either IN or OUT. +#define AMMO_BOX_MULTILOAD_NONE 0 +/// Ammo box accepts multiload going in, e.g. ammo box can transfer multiple casings IN at once. +#define AMMO_BOX_MULTILOAD_IN (1 << 0) +/// Ammo box accepts multiload going out, e.g. ammo box can transfer multiple casings OUT at once. +#define AMMO_BOX_MULTILOAD_OUT (1 << 1) +/// Ammo box accepts multiload in AND out, e.g. ammo box can transfer multiple casings IN at once *and* OUT at once. +#define AMMO_BOX_MULTILOAD_BOTH AMMO_BOX_MULTILOAD_IN | AMMO_BOX_MULTILOAD_OUT + +DEFINE_BITFIELD(ammo_box_multiload, list( + "LOAD_IN" = AMMO_BOX_MULTILOAD_IN, + "LOAD_OUT" = AMMO_BOX_MULTILOAD_OUT, +)) + #define SUPPRESSED_NONE 0 #define SUPPRESSED_QUIET 1 ///standard suppressed #define SUPPRESSED_VERY 2 /// no message @@ -416,5 +431,9 @@ GLOBAL_LIST_INIT(leg_zones, list(BODY_ZONE_R_LEG, BODY_ZONE_L_LEG)) #define CALCULATE_FORCE(some_item, atk_mods) \ ((((FORCE_OVERRIDE in atk_mods) ? atk_mods[FORCE_OVERRIDE] : some_item.force) + (atk_mods?[FORCE_MODIFIER] || 0)) * ((FORCE_MULTIPLIER in atk_mods) ? atk_mods[FORCE_MULTIPLIER] : 1)) +/// Return from attacked_by to indicate the attack did not connect +/// A negative number is used here to people can easily check "attacks that failed or did 0 damage" with <= 0 +#define ATTACK_FAILED -1 + ///Do we block carbon-level flash_act() from performing its default stamina damage/knockdown? #define FLASH_COMPLETED "flash_completed" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm index 1df2f39cc1b1..1ea6ef446def 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_movable.dm @@ -76,6 +76,9 @@ #define HEARING_MESSAGE_MODE 9 #define HEARING_RANGE 10 +///called when space wind can't move a movable. (pressure_difference, pressure_direction) +#define COMSIG_MOVABLE_RESISTED_SPACEWIND "movable_resisted_wind" + ///called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source) #define COMSIG_MOVABLE_DISPOSING "movable_disposing" // called when movable is expelled from a disposal pipe, bin or outlet on obj/pipe_eject: (direction) @@ -105,7 +108,7 @@ /// Return to prevent the movable from talking into the radio. #define COMPONENT_CANNOT_USE_RADIO (1<<0) -/// Sent from /atom/movable/proc/say_quote() after say verb is chosen and before spans are applied. +/// Sent from /atom/movable/proc/generate_messagepart() generating a quoted message, after say verb is chosen and before spans are applied. #define COMSIG_MOVABLE_SAY_QUOTE "movable_say_quote" // Used to access COMSIG_MOVABLE_SAY_QUOTE argslist /// The index of args that corresponds to the actual message @@ -138,3 +141,8 @@ #define COMSIG_MOVABLE_BUMP_PUSHED "movable_bump_pushed" /// Stop it from moving #define COMPONENT_NO_PUSH (1<<0) + +/// Called when the atom is dropped into a chasm: (turf/chasm) +#define COMSIG_MOVABLE_CHASM_DROPPED "movable_charm_dropped" + /// Stop it from actually dropping into the chasm + #define COMPONENT_NO_CHASM_DROP (1<<0) diff --git a/code/__DEFINES/dcs/signals/signals_cytology.dm b/code/__DEFINES/dcs/signals/signals_cytology.dm index 70fbe29c4e09..fce8e8a2714a 100644 --- a/code/__DEFINES/dcs/signals/signals_cytology.dm +++ b/code/__DEFINES/dcs/signals/signals_cytology.dm @@ -1,4 +1,5 @@ //Cytology signals ///Sent from /datum/biological_sample/proc/reset_sample #define COMSIG_SAMPLE_GROWTH_COMPLETED "sample_growth_completed" - +///Sent from /datum/biological_sample/proc/succeed_growing : (atom/grown_thing) +#define COMSIG_SAMPLE_DEPOSITED "sample_deposited" diff --git a/code/__DEFINES/dcs/signals/signals_food.dm b/code/__DEFINES/dcs/signals/signals_food.dm index 113826a44863..121942aab7bb 100644 --- a/code/__DEFINES/dcs/signals/signals_food.dm +++ b/code/__DEFINES/dcs/signals/signals_food.dm @@ -50,6 +50,8 @@ #define COMPONENT_HANDLED_GRILLING (1<<0) ///Called when an object is turned into another item through grilling ontop of a griddle #define COMSIG_ITEM_GRILLED "item_grill_completed" +///Sent to the newly spawned object when it's grilled on a griddle. +#define COMSIG_ITEM_GRILLED_RESULT "item_grilled_result" ///Called when the object is grilled by the grill (not to be confused by the griddle, but oh gee the two should be merged in one) #define COMSIG_ITEM_BARBEQUE_GRILLED "item_barbeque_grilled" @@ -67,6 +69,8 @@ #define COMPONENT_BAKING_BAD_RESULT (1<<2) ///Called when an object is turned into another item through baking in an oven #define COMSIG_ITEM_BAKED "item_bake_completed" +///Sent to the newly spawned object when it's baked in an oven. +#define COMSIG_ITEM_BAKED_RESULT "item_baked_result" //Drink diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm index ba3cfe7396cb..fe2071df0b21 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -170,6 +170,8 @@ /// Called from /datum/species/proc/harm(): (mob/living/carbon/human/attacker, damage, attack_type, obj/item/bodypart/affecting, final_armor_block, kicking) #define COMSIG_HUMAN_GOT_PUNCHED "human_got_punched" +/// Called from /datum/species/proc/harm(): (mob/living/carbon/human/attacked, damage, attack_type, obj/item/bodypart/affecting, final_armor_block, kicking) +#define COMSIG_HUMAN_PUNCHED "human_punched" /// Called at the very end of human character setup /// At this point all quirks are assigned and the mob has a mind / client diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm index 932437398685..1f5f19ba6103 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_living.dm @@ -14,6 +14,8 @@ #define COMSIG_ORGAN_SURGICALLY_REMOVED "organ_surgically_removed" /// Called when an organ gets surgically removed (mob/living/user, mob/living/carbon/new_owner, target_zone, obj/item/tool) #define COMSIG_ORGAN_SURGICALLY_INSERTED "organ_surgically_inserted" +/// Called when an organ finishes inserting into a bodypart (obj/item/bodypart/limb, movement_flags) +#define COMSIG_ORGAN_BODYPART_INSERTED "organ_bodypart_inserted" ///Called when movement intent is toggled. #define COMSIG_MOVE_INTENT_TOGGLED "move_intent_toggled" @@ -25,6 +27,8 @@ #define COMSIG_LIVING_ENTER_STAMCRIT "living_enter_stamcrit" ///from /obj/structure/door/crush(): (mob/living/crushed, /obj/machinery/door/crushing_door) #define COMSIG_LIVING_DOORCRUSHED "living_doorcrush" + /// Stop the door from causing wounds (damage still applies though) + #define DOORCRUSH_NO_WOUND (1<<0) ///from base of mob/living/resist() (/mob/living) #define COMSIG_LIVING_RESIST "living_resist" ///from base of mob/living/ignite_mob() (/mob/living) diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index 997e4fb88e01..844d72bc62ff 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -359,6 +359,12 @@ #define COMPONENT_CANCEL_SAWING_OFF (1<<0) #define COMSIG_GUN_SAWN_OFF "gun_sawn_off" +///called in /obj/item/firing_pin/proc/gun_insert(mob/living/user, obj/item/gun/new_gun): (obj/item/firing_pin/pin, mob/living/user) +#define COMSIG_GUN_PIN_INSERTED "gun_pin_inserted" + +///called in /obj/item/firing_pin/proc/gun_remove(mob/living/user): (obj/item/firing_pin/pin, mob/living/user) +#define COMSIG_GUN_PIN_REMOVED "gun_pin_removed" + // Jetpack things // Please kill me diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm index 7e2954e7d220..157f7058a4c4 100644 --- a/code/__DEFINES/dcs/signals/signals_reagent.dm +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -6,8 +6,6 @@ #define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] #define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) -///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) -#define COMSIG_ATOM_AFTER_EXPOSE_REAGENTS "atom_after_expose_reagents" ///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) #define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" ///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) @@ -36,8 +34,6 @@ ///from base of [/datum/reagents/proc/process]: (num_reactions) #define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" -///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message) -#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom" ///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) #define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" ///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) diff --git a/code/__DEFINES/do_afters.dm b/code/__DEFINES/do_afters.dm index cba02d6cf67e..5c21dd8cc8ac 100644 --- a/code/__DEFINES/do_afters.dm +++ b/code/__DEFINES/do_afters.dm @@ -8,3 +8,4 @@ #define DOAFTER_SOURCE_PLANTING_DEVICE "doafter_planting_device" #define DOAFTER_SOURCE_CHARGE_CRANKRECHARGE "doafter_charge_crank_recharge" #define DOAFTER_SOURCE_REMOVING_HOOK "doafter_removing_hook" +#define DOAFTER_SOURCE_CHARGING_ESWORD "doafter_charging_esword" diff --git a/code/__DEFINES/exosuit_fab.dm b/code/__DEFINES/exosuit_fab.dm index 4fd921bdeb77..4cc21f210d61 100644 --- a/code/__DEFINES/exosuit_fab.dm +++ b/code/__DEFINES/exosuit_fab.dm @@ -35,12 +35,10 @@ #define EXOSUIT_MODULE_MARAUDER (1<<10) /// Module is compatible with Paddy models #define EXOSUIT_MODULE_PADDY (1<<11) -/// Module is compatible with Justice models -#define EXOSUIT_MODULE_JUSTICE (1<<12) /// Module is compatible with "Working" Exosuit models - Ripley and Clarke #define EXOSUIT_MODULE_WORKING (EXOSUIT_MODULE_RIPLEY | EXOSUIT_MODULE_CLARKE) /// Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon, or any Exosuit with an empty Concealed Weapon Bay -#define EXOSUIT_MODULE_COMBAT (EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON | EXOSUIT_MODULE_SAVANNAH | EXOSUIT_MODULE_RETICENCE | EXOSUIT_MODULE_MARAUDER | EXOSUIT_MODULE_PADDY | EXOSUIT_MODULE_JUSTICE | EXOSUIT_MODULE_CONCEALED_WEP_BAY) +#define EXOSUIT_MODULE_COMBAT (EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON | EXOSUIT_MODULE_SAVANNAH | EXOSUIT_MODULE_RETICENCE | EXOSUIT_MODULE_MARAUDER | EXOSUIT_MODULE_PADDY | EXOSUIT_MODULE_CONCEALED_WEP_BAY) /// Module is compatible with "Medical" Exosuit modelsm - Odysseus #define EXOSUIT_MODULE_MEDICAL EXOSUIT_MODULE_ODYSSEUS diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 1aef4125091b..621954eee09d 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -198,6 +198,34 @@ DEFINE_BITFIELD(no_equip_flags, list( /// The index of the entry in 'afk_thefts' with the time it happened #define AFK_THEFT_TIME 3 +/// A list of things that any suit storage can hold +/// Should consist of ubiquitous, non-specialized items +/// or items that are meant to be "suit storage agnostic" as +/// a benefit, which of the time of this commit only applies +/// to the captain's jetpack, here +GLOBAL_LIST_INIT(any_suit_storage, typecacheof(list( + /obj/item/clipboard, + /obj/item/flashlight, + /obj/item/tank/internals/emergency_oxygen, + /obj/item/tank/internals/plasmaman, + /obj/item/lighter, + /obj/item/pen, + /obj/item/modular_computer/pda, + /obj/item/toy, + /obj/item/radio, + /obj/item/storage/bag/books, + /obj/item/storage/fancy/cigarettes, + /obj/item/tank/jetpack/oxygen/captain, + /obj/item/stack/spacecash, + /obj/item/storage/wallet, + /obj/item/folder, + /obj/item/storage/box/matches, + /obj/item/cigarette, + /obj/item/gun/energy/laser/bluetag, + /obj/item/gun/energy/laser/redtag, + /obj/item/storage/belt/holster +))) + //Allowed equipment lists for security vests. GLOBAL_LIST_INIT(detective_vest_allowed, list( diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index 61f73e5c584e..643485b9b32a 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -68,6 +68,8 @@ #define COMSIG_KB_MOB_CYCLEINTENTRIGHT_DOWN "keybinding_mob_cycleintentright_down" #define COMSIG_KB_MOB_CYCLEINTENTLEFT_DOWN "keybinding_mob_cycleintentleft_down" #define COMSIG_KB_MOB_SWAPHANDS_DOWN "keybinding_mob_swaphands_down" +#define COMSIG_KB_MOB_SELECTRIGHTHAND_DOWN "keybinding_mob_selectrighthand_down" +#define COMSIG_KB_MOB_SELECTLEFTHAND_DOWN "keybinding_mob_selectlefthand_down" #define COMSIG_KB_MOB_ACTIVATEINHAND_DOWN "keybinding_mob_activateinhand_down" #define COMSIG_KB_MOB_DROPITEM_DOWN "keybinding_mob_dropitem_down" #define COMSIG_KB_MOB_TARGETCYCLEHEAD_DOWN "keybinding_mob_targetcyclehead_down" diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers.dm index 1c0f10b0daf9..5876bd610615 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers.dm @@ -13,8 +13,8 @@ #define PLANE_SPACE -21 #define PLANE_SPACE_PARALLAX -20 -#define GRAVITY_PULSE_PLANE -12 -#define GRAVITY_PULSE_RENDER_TARGET "*GRAVPULSE_RENDER_TARGET" +#define DISPLACEMENT_PLANE -12 +#define DISPLACEMENT_RENDER_TARGET "*DISPLACEMENT_RENDER_TARGET" #define RENDER_PLANE_TRANSPARENT -11 //Transparent plane that shows openspace underneath the floor @@ -47,56 +47,59 @@ #define O_LIGHTING_VISUAL_RENDER_TARGET "*O_LIGHT_VISUAL_PLANE" // Render plate used by overlay lighting to mask turf lights -#define TURF_LIGHTING_PLATE 12 +#define RENDER_PLANE_TURF_LIGHTING 12 #define EMISSIVE_PLANE 13 /// This plane masks out lighting to create an "emissive" effect, ie for glowing lights in otherwise dark areas. -#define EMISSIVE_RENDER_PLATE 14 -#define EMISSIVE_RENDER_TARGET "*EMISSIVE_PLANE" +#define RENDER_PLANE_EMISSIVE 14 +#define EMISSIVE_RENDER_TARGET "*RENDER_PLANE_EMISSIVE" // Ensures all the render targets that point at the emissive plate layer correctly #define EMISSIVE_Z_BELOW_LAYER 1 #define EMISSIVE_FLOOR_LAYER 2 #define EMISSIVE_SPACE_LAYER 3 #define EMISSIVE_WALL_LAYER 4 -#define EMISSIVE_BLOOM_MASK_PLATE 15 -#define EMISSIVE_BLOOM_MASK_TARGET "*EMISSIVE_BLOOM_MASK_PLATE" -#define EMISSIVE_BLOOM_PLATE 16 +#define RENDER_PLANE_EMISSIVE_BLOOM_MASK 15 +#define EMISSIVE_BLOOM_MASK_RENDER_TARGET "*RENDER_PLANE_EMISSIVE_BLOOM_MASK" +#define RENDER_PLANE_EMISSIVE_BLOOM 16 -//-------------------- Game plane assembly --------------------- - -#define RENDER_PLANE_GAME 17 -/// If fov is enabled we'll draw game to this and do shit to it -#define RENDER_PLANE_GAME_MASKED 18 -/// The bit of the game plane that is let alone is sent here -#define RENDER_PLANE_GAME_UNMASKED 19 +#define RENDER_PLANE_SPECULAR_MASK 17 +#define SPECULAR_MASK_RENDER_TARGET "*RENDER_PLANE_SPECULAR_MASK" //-------------------- Lighting --------------------- +/// Main game plane to which everything renders, which then is multiplied by light +/// Should not be lit directly as it is sourced for emissive bloom +#define RENDER_PLANE_UNLIT_GAME 19 + #define RENDER_PLANE_LIGHTING 20 /// Masks the lighting plane with turfs, so we never light up the void /// Failing that, masks emissives and the overlay lighting plane -#define LIGHT_MASK_PLANE 21 -#define LIGHT_MASK_RENDER_TARGET "*LIGHT_MASK_PLANE" +#define RENDER_PLANE_LIGHT_MASK 21 +#define LIGHT_MASK_RENDER_TARGET "*RENDER_PLANE_LIGHT_MASK" + +/// We cannot render speculars to ABOVE_LIGHTING, as then they give it alpha and end up masking things in darkness +/// So we need to render it directly to RENDER_PLANE_GAME above RENDER_PLANE_LIGHTING +#define RENDER_PLANE_SPECULAR 22 -///Things that should render ignoring lighting -#define ABOVE_LIGHTING_PLANE 22 +/// Things that should render ignoring lighting +#define ABOVE_LIGHTING_PLANE 23 -#define WEATHER_GLOW_PLANE 23 +#define WEATHER_GLOW_PLANE 24 ///---------------- MISC ----------------------- ///Pipecrawling images -#define PIPECRAWL_IMAGES_PLANE 24 +#define PIPECRAWL_IMAGES_PLANE 25 ///AI Camera Static -#define CAMERA_STATIC_PLANE 25 +#define CAMERA_STATIC_PLANE 26 ///Anything that wants to be part of the game plane, but also wants to draw above literally everything else -#define HIGH_GAME_PLANE 26 +#define HIGH_GAME_PLANE 27 -#define FULLSCREEN_PLANE 27 +#define FULLSCREEN_PLANE 28 ///--------------- FULLSCREEN RUNECHAT BUBBLES ------------ @@ -116,7 +119,12 @@ // The largest plane here must still be less than RENDER_PLANE_GAME //-------------------- Rendering --------------------- -#define LIT_GAME_RENDER_PLATE 40 +#define RENDER_PLANE_GAME 40 +/// If fov is enabled we'll draw game to this and do shit to it +#define RENDER_PLANE_GAME_MASKED 41 +/// The bit of the game plane that is let alone is sent here +#define RENDER_PLANE_GAME_UNMASKED 42 + #define RENDER_PLANE_NON_GAME 45 // Only VERY special planes should be here, as they are above not just the game, but the UI planes as well. @@ -151,6 +159,9 @@ // NOTICE: we break from the pattern of increasing in steps of like 0.01 here // Because TOPDOWN_LAYER is 10000 and that's enough to floating point our modifications away +// Must be equal to the offset of the highest topdown layer +#define TOPDOWN_LAYER_COUNT 18 + //lower than LOW_FLOOR_LAYER, for turfs with stuff on the edge that should be covered by other turfs #define LOWER_FLOOR_LAYER (1 + TOPDOWN_LAYER) #define LOW_FLOOR_LAYER (2 + TOPDOWN_LAYER) @@ -170,7 +181,7 @@ #define ABOVE_OPEN_TURF_LAYER (15 + TOPDOWN_LAYER) #define LOWER_RUNE_LAYER (16 + TOPDOWN_LAYER) #define RUNE_LAYER (17 + TOPDOWN_LAYER) -#define CLEANABLE_FLOOR_OBJECT_LAYER (21 + TOPDOWN_LAYER) +#define CLEANABLE_FLOOR_OBJECT_LAYER (18 + TOPDOWN_LAYER) //Placeholders in case the game plane and possibly other things between it and the floor plane are ever made into topdown planes @@ -186,6 +197,8 @@ // GAME_PLANE layers #define BULLET_HOLE_LAYER 2.06 #define ABOVE_NORMAL_TURF_LAYER 2.08 +#define FLOOR_EMISSIVE_START_LAYER 2.09 +#define FLOOR_EMISSIVE_END_LAYER 2.26 #define GAS_PIPE_HIDDEN_LAYER 2.35 //layer = initial(layer) + piping_layer / 1000 in atmospherics/update_icon() to determine order of pipe overlap #define WIRE_BRIDGE_LAYER 2.44 #define WIRE_TERMINAL_LAYER 2.45 @@ -228,6 +241,7 @@ #define BELOW_MOB_LAYER 3.7 #define LOW_MOB_LAYER 3.75 #define LYING_MOB_LAYER 3.8 +#define ABOVE_LYING_MOB_LAYER 3.85 #define VEHICLE_LAYER 3.9 #define MOB_BELOW_PIGGYBACK_LAYER 3.94 //#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 03bc07e29f54..98c4cdae3d3f 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -80,12 +80,29 @@ #define _EMISSIVE_COLOR(val) list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, val,0,0,0) #define _EMISSIVE_COLOR_NO_BLOOM(val) list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,val,0,0) +#define _SPECULAR_COLOR(val) list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,val,0) /// The color matrix applied to all emissive overlays. Should be solely dependent on alpha and not have RGB overlap with [EM_BLOCK_COLOR]. #define EMISSIVE_COLOR _EMISSIVE_COLOR(1) #define EMISSIVE_COLOR_NO_BLOOM _EMISSIVE_COLOR_NO_BLOOM(1) +#define SPECULAR_COLOR _SPECULAR_COLOR(1) /// A globally cached version of [EMISSIVE_COLOR] for quick access. GLOBAL_LIST_INIT(emissive_color, EMISSIVE_COLOR) GLOBAL_LIST_INIT(emissive_color_no_bloom, EMISSIVE_COLOR_NO_BLOOM) +GLOBAL_LIST_INIT(specular_color, SPECULAR_COLOR) + +// Types of emissives +/// Emissive that will not have bloom applied to it, encoded into the green channel +#define EMISSIVE_NO_BLOOM 0 +/// Emissive that will get bloom applied to it, encoded into the red channel +#define EMISSIVE_BLOOM 1 +/// Mimics a highly reflective surface, will not have any glow by itself but will amplify any lighting applied to it, encoded into the blue channel +#define EMISSIVE_SPECULAR 2 + +/// Light cutoff of specular emissives, controls how sharp a light must be before it starts reflecting +#define SPECULAR_EMISSIVE_CUTOFF 0.3 +/// Controls how bright specular emissives sourced from overlay lights are +/// Keep in mind that overlay lights are also affected by the specular cutoff, so the maximum light value achievable is (contrast - cutoff) +#define SPECULAR_EMISSIVE_OVERLAY_CONTRAST 1.4 #define _EM_BLOCK_COLOR(val) list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,val, 0,0,0,0) /// The color matrix applied to all emissive blockers. Should be solely dependent on alpha and not have RGB overlap with [EMISSIVE_COLOR]. diff --git a/code/__DEFINES/maps.dm b/code/__DEFINES/maps.dm index 1aae48a69a59..3827288da916 100644 --- a/code/__DEFINES/maps.dm +++ b/code/__DEFINES/maps.dm @@ -44,7 +44,7 @@ Always compile, always use that verb, and always make sure that it works for wha #define SPACERUIN_MAP_EDGE_PAD 15 /// Distance from edge to move to another z-level -#define TRANSITIONEDGE 7 +#define TRANSITIONEDGE 8 // Maploader bounds indices /// The maploader index for the maps minimum x @@ -118,6 +118,8 @@ Always compile, always use that verb, and always make sure that it works for wha #define SELFLOOPING "Self" // CROSSLINKED - mixed in with the cross-linked space pool #define CROSSLINKED "Cross" + // GRIDLINKED - connected in a consistent grid + #define GRIDLINKED "Grid" // string - type path of the z-level's baseturf (defaults to space) #define ZTRAIT_BASETURF "Baseturf" @@ -132,6 +134,13 @@ Always compile, always use that verb, and always make sure that it works for wha #define ZTRAITS_STATION list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_STATION = TRUE) ///Z level traits for Deep Space #define ZTRAITS_SPACE list(ZTRAIT_LINKAGE = CROSSLINKED, ZTRAIT_SPACE_RUINS = TRUE) +///Z level traits for +#define ZTRAITS_WILDS list(\ + ZTRAIT_LINKAGE = GRIDLINKED, \ + ZTRAIT_ICE_RUINS = TRUE, \ + ZTRAIT_SNOWSTORM = FALSE, \ + ZTRAIT_BASETURF = /turf/open/misc/asteroid/snow/icemoon) + ///Z level traits for Lavaland #define ZTRAITS_LAVALAND list(\ ZTRAIT_MINING = TRUE, \ diff --git a/code/__DEFINES/mecha.dm b/code/__DEFINES/mecha.dm index fad05151e374..602a34d76c4f 100644 --- a/code/__DEFINES/mecha.dm +++ b/code/__DEFINES/mecha.dm @@ -78,25 +78,3 @@ /// bitflags for do_after checks on mechs #define MECH_DO_AFTER_DIR_CHANGE_FLAG (1 << 0) #define MECH_DO_AFTER_ADJACENCY_FLAG (1 << 1) - -/// Defines for Justice mech -#define JUSTICE_IDLE "idle" -#define JUSTICE_CHARGE "charge" -#define JUSTICE_INVISIBILITY "invisibility" -#define JUSTICE_INVISIBILITY_ATTACK "invisibility attack" -#define JUSTICE_FATALITY "fatality" - -#define JUSTICE_ENGINE_ACTIVE "active" -#define JUSTICE_ENGINE_ACTIVATING "activating" -#define JUSTICE_ENGINE_ONCOOLDOWN "oncooldown" -#define JUSTICE_ENGINE_DEACTIVATING "deactivating" -#define JUSTICE_ENGINE_DEACTIVE "deactive" - -#define COMSIG_JUSTICE_ATTACK_AOE "justice_attack_aoe" -#define COMSIG_JUSTICE_CHARGE_BUTTON_DOWN "justice_charge_button_down" - -#define COMSIG_JUSTICE_INVISIBILITY_ACTIVATE "justice_invisibility_activate" - #define COMPONENT_CANCEL_JUSTICE_INVISIBILITY_ACTIVATE (1<<0) -#define COMSIG_JUSTICE_INVISIBILITY_DEACTIVATE "justice_invisibility_deactivate" - #define COMPONENT_CANCEL_JUSTICE_INVISIBILITY_DEACTIVATE (1<<0) - diff --git a/code/__DEFINES/melee.dm b/code/__DEFINES/melee.dm index 47f680c6315f..c6bfbcddc76a 100644 --- a/code/__DEFINES/melee.dm +++ b/code/__DEFINES/melee.dm @@ -11,6 +11,7 @@ #define MARTIALART_SLEEPINGCARP "sleeping carp" #define MARTIALART_WRESTLING "wrestling" #define MARTIALART_JUNGLEARTS "jungle arts" +#define MARTIALART_SPIDERSBITE "spider's bite" /// The number of hits required to crit a target -#define HITS_TO_CRIT(damage) round(100 / damage, 0.1) +#define HITS_TO_CRIT(damage) round(100 / (damage), 0.1) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index c99eacb7bcbc..8c22b65f7247 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -236,6 +236,9 @@ #define HUMAN_MAX_OXYLOSS 3 #define HUMAN_CRIT_MAX_OXYLOSS (SSMOBS_DT/3) +/// Combined brute and burn damage states on a human's head after which they become disfigured +#define HUMAN_DISFIGURATION_HEAD_DAMAGE_STATES 3 + #define HEAT_DAMAGE_LEVEL_1 1 //Amount of damage applied when your body temperature just passes the 360.15k safety point #define HEAT_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 400K point #define HEAT_DAMAGE_LEVEL_3 4 //Amount of damage applied when your body temperature passes the 460K point and you are on fire @@ -255,6 +258,7 @@ //Brain Damage defines #define BRAIN_DAMAGE_MILD 20 +#define BRAIN_DAMAGE_ASYNC_BLINKING 60 #define BRAIN_DAMAGE_SEVERE 100 #define BRAIN_DAMAGE_DEATH 200 @@ -465,7 +469,7 @@ #define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be #define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up #define POCKET_STRIP_DELAY (4 SECONDS) //time taken to search somebody's pockets -#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you +#define DOOR_CRUSH_DAMAGE 20 //the amount of damage that airlocks deal when they crush you #define HUNGER_FACTOR 0.05 //factor at which mob nutrition decreases #define ETHEREAL_DISCHARGE_RATE (1e-3 * STANDARD_ETHEREAL_CHARGE) // Rate at which ethereal stomach charge decreases @@ -820,7 +824,7 @@ GLOBAL_LIST_INIT(layers_to_offset, list( // BACK_LAYER (backpacks are big) // BODYPARTS_HIGH_LAYER (arms) // BODY_LAYER (body markings (full body), underwear (full body)) - "[EYES_LAYER]" = EYES_LAYER, // looks fine with but no need to filter it, so we can save on perf (eyes and eyelids) + // EYES_LAYER, // BODY_ADJ_LAYER (external organs like wings) // BODY_BEHIND_LAYER (external organs like wings) // BODY_FRONT_LAYER (external organs like wings) @@ -918,6 +922,8 @@ GLOBAL_LIST_INIT(layers_to_offset, list( #define VOMIT_CATEGORY_DEFAULT (MOB_VOMIT_MESSAGE | MOB_VOMIT_HARM | MOB_VOMIT_STUN) /// The vomit you've all come to know and love, but with a little extra "spice" (blood) #define VOMIT_CATEGORY_BLOOD (VOMIT_CATEGORY_DEFAULT | MOB_VOMIT_BLOOD) +/// The bloody vomit, but without the stunning +#define VOMIT_CATEGORY_BLOOD_STUNLESS (VOMIT_CATEGORY_BLOOD & ~MOB_VOMIT_STUN) /// Another vomit variant that causes you to get knocked down instead of just only getting a stun. Standard otherwise. #define VOMIT_CATEGORY_KNOCKDOWN (MOB_VOMIT_MESSAGE | MOB_VOMIT_HARM | MOB_VOMIT_KNOCKDOWN) diff --git a/code/__DEFINES/movement.dm b/code/__DEFINES/movement.dm index 9706819610f5..28d5be84c521 100644 --- a/code/__DEFINES/movement.dm +++ b/code/__DEFINES/movement.dm @@ -144,9 +144,5 @@ GLOBAL_VAR_INIT(glide_size_multiplier, 1.0) #define INERTIA_FORCE_SPACEMOVE_REDUCTION 0.75 NEWTONS /// How much inertia we must have to not be able to instantly stop after having something to grab #define INERTIA_FORCE_SPACEMOVE_GRAB 1.5 NEWTONS -/// How much inertia is required for the impacted object to be thrown at the wall -#define INERTIA_FORCE_THROW_FLOOR 10 NEWTONS -/// How much inertia is required past the floor to add 1 strength -#define INERTIA_FORCE_PER_THROW_FORCE 5 NEWTONS // Results in maximum speed of 1 tile per tick, capped at about 2/3rds of maximum force #define INERTIA_SPEED_COEF 0.375 diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 8b0aad161c2b..1828f736a898 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -51,6 +51,8 @@ #define NO_BLOOD_ON_ITEM (1 << 19) /// Whether this item should skip the /datum/component/fantasy applied on spawn on the RPG event. Used on things like stacks #define SKIP_FANTASY_ON_SPAWN (1<<20) +/// If an item has had its /datum/element/weapon_description initialized or not. +#define WEAPON_DESCRIPTION_INITIALIZED (1<<21) // Flags for the clothing_flags var on /obj/item/clothing diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index 8d9e911e9aed..ff375d5b7700 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -38,6 +38,9 @@ #define TOGGLES_DEFAULT_CHAT (CHAT_OOC|CHAT_DEAD|CHAT_PRAYER|CHAT_PULLR|CHAT_GHOSTPDA|CHAT_GHOSTRADIO|CHAT_BANKCARD|CHAT_GHOSTLAWS|CHAT_LOGIN_LOGOUT) +/// File path to the dev preference json file, which is loaded by guests while localhosting. +#define DEV_PREFS_PATH "config/dev_preferences.json" + #define PARALLAX_INSANE "Insane" #define PARALLAX_HIGH "High" #define PARALLAX_MED "Medium" diff --git a/code/__DEFINES/research.dm b/code/__DEFINES/research.dm index f56ab891fa7f..f3b2cf819489 100644 --- a/code/__DEFINES/research.dm +++ b/code/__DEFINES/research.dm @@ -56,6 +56,14 @@ #define CELL_LINE_TABLE_BUTTERFLY "cell_line_butterfly_table" #define CELL_LINE_TABLE_MEGA_ARACHNID "cell_line_table_mega_arachnid" +//! Biopsy cell line organ types +#define CELL_LINE_ORGAN_HEART "cell_line_organ_heart" +#define CELL_LINE_ORGAN_LUNGS "cell_line_organ_lungs" +#define CELL_LINE_ORGAN_LIVER "cell_line_organ_liver" +#define CELL_LINE_ORGAN_STOMACH "cell_line_organ_stomach" + +#define CELL_LINE_ORGAN_HEART_CURSED "cell_line_organ_heart_cursed" + //! All cell virus types #define CELL_VIRUS_TABLE_GENERIC "cell_virus_generic_table" #define CELL_VIRUS_TABLE_GENERIC_MOB "cell_virus_generic_mob_table" diff --git a/code/__DEFINES/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm index 8198ed6755cb..f0dabae02509 100644 --- a/code/__DEFINES/research/anomalies.dm +++ b/code/__DEFINES/research/anomalies.dm @@ -10,9 +10,9 @@ #define MAX_CORES_ECTOPLASMIC 8 ///Defines for the different types of explosion a flux anomaly can have -#define FLUX_NO_EXPLOSION 0 -#define FLUX_EXPLOSIVE 1 -#define FLUX_LOW_EXPLOSIVE 2 +#define FLUX_NO_EMP 0 +#define FLUX_EMP 1 +#define FLUX_LIGHT_EMP 2 /// Chance of anomalies moving every process tick #define ANOMALY_MOVECHANCE 45 diff --git a/code/__DEFINES/research/research_categories.dm b/code/__DEFINES/research/research_categories.dm index 067b44a099be..f29e8073617f 100644 --- a/code/__DEFINES/research/research_categories.dm +++ b/code/__DEFINES/research/research_categories.dm @@ -135,7 +135,6 @@ #define RND_CATEGORY_MECHFAB_PHAZON "/Phazon" #define RND_CATEGORY_MECHFAB_CLARKE "/Clarke" #define RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV "/Savannah-Ivanov" -#define RND_CATEGORY_MECHFAB_JUSTICE "/Justice" #define RND_SUBCATEGORY_MECHFAB_CHASSIS "/Chassis" #define RND_SUBCATEGORY_MECHFAB_SUPPORTED_EQUIPMENT "/Supported Equipment" #define RND_SUBCATEGORY_MECHFAB_CONTROL_INTERFACES "/Control Interfaces" diff --git a/code/__DEFINES/rust_g.dm b/code/__DEFINES/rust_g.dm index d2928195a507..048ea0bd0b75 100644 --- a/code/__DEFINES/rust_g.dm +++ b/code/__DEFINES/rust_g.dm @@ -138,6 +138,36 @@ */ #define rustg_dmi_icon_states(fname) RUSTG_CALL(RUST_G, "dmi_icon_states")(fname) +/** + * The below functions involve dmi metadata represented in the following format: + * list( + * "width": number, + * "height": number, + * "states": list([STATE_DATA], ...) + * ) + * + * STATE_DATA format: + * list( + * "name": string, + * "dirs": 1 | 4 | 8, + * "delays"?: list(number, ...), + * "rewind"?: TRUE | FALSE, + * "movement"?: TRUE | FALSE, + * "loop"?: number + * ) + */ + +/** + * Get the dmi metadata of the file located at `fname`. + * Returns a list in the metadata format listed above, or an error message. + */ +#define rustg_dmi_read_metadata(fname) json_decode(RUSTG_CALL(RUST_G, "dmi_read_metadata")(fname)) +/** + * Inject dmi metadata into a png file located at `path`. + * `metadata` must be a json_encode'd list in the metadata format listed above. + */ +#define rustg_dmi_inject_metadata(path, metadata) RUSTG_CALL(RUST_G, "dmi_inject_metadata")(path, metadata) + #define rustg_file_read(fname) RUSTG_CALL(RUST_G, "file_read")(fname) #define rustg_file_exists(fname) (RUSTG_CALL(RUST_G, "file_exists")(fname) == "true") #define rustg_file_write(text, fname) RUSTG_CALL(RUST_G, "file_write")(text, fname) @@ -198,13 +228,21 @@ #define rustg_http_request_blocking(method, url, body, headers, options) RUSTG_CALL(RUST_G, "http_request_blocking")(method, url, body, headers, options) #define rustg_http_request_async(method, url, body, headers, options) RUSTG_CALL(RUST_G, "http_request_async")(method, url, body, headers, options) #define rustg_http_check_request(req_id) RUSTG_CALL(RUST_G, "http_check_request")(req_id) +/// This is basically just `rustg_http_request_async` if you don't care about the response. +/// This will either return "ok" or an error, as this does not create a job. +#define rustg_http_request_fire_and_forget(method, url, body, headers, options) RUSTG_CALL(RUST_G, "http_request_fire_and_forget")(method, url, body, headers, options) -/// Generates a spritesheet at: [file_path][spritesheet_name]_[size_id].png +/// Generates a spritesheet at: [file_path][spritesheet_name]_[size_id].[png or dmi] /// The resulting spritesheet arranges icons in a random order, with the position being denoted in the "sprites" return value. /// All icons have the same y coordinate, and their x coordinate is equal to `icon_width * position`. /// /// hash_icons is a boolean (0 or 1), and determines if the generator will spend time creating hashes for the output field dmi_hashes. -/// These hashes can be heplful for 'smart' caching (see rustg_iconforge_cache_valid), but require extra computation. +/// These hashes can be helpful for 'smart' caching (see rustg_iconforge_cache_valid), but require extra computation. +/// +/// generate_dmi is a boolean (0 or 1), and determines if the generator will save the sheet as a DMI or stripped PNG file. +/// DMI files can be used to replace bulk Insert() operations, PNGs are more useful for asset transport or UIs. DMI generation is slower due to more metadata. +/// flatten is a boolean (0 or 1), and determines if the DMI output will be flattened to a single frame/dir if unscoped (null/0 dir or frame values). +/// PNGs are always flattened, regardless of argument. /// /// Spritesheet will contain all sprites listed within "sprites". /// "sprites" format: @@ -220,9 +258,15 @@ /// ) /// TRANSFORM_OBJECT format: /// list("type" = RUSTG_ICONFORGE_BLEND_COLOR, "color" = "#ff0000", "blend_mode" = ICON_MULTIPLY) -/// list("type" = RUSTG_ICONFORGE_BLEND_ICON, "icon" = [SPRITE_OBJECT], "blend_mode" = ICON_OVERLAY) +/// list("type" = RUSTG_ICONFORGE_BLEND_ICON, "icon" = [SPRITE_OBJECT], "blend_mode" = ICON_OVERLAY, "x" = 1, "y" = 1) // offsets optional /// list("type" = RUSTG_ICONFORGE_SCALE, "width" = 32, "height" = 32) /// list("type" = RUSTG_ICONFORGE_CROP, "x1" = 1, "y1" = 1, "x2" = 32, "y2" = 32) // (BYOND icons index from 1,1 to the upper bound, inclusive) +/// list("type" = RUSTG_ICONFORGE_MAP_COLORS, "rr" = 0.5, "rg" = 0.5, "rb" = 0.5, "ra" = 1, "gr" = 1, "gg" = 1, "gb" = 1, "ga" = 1, ...) // alpha arguments and rgba0 optional +/// list("type" = RUSTG_ICONFORGE_FLIP, "dir" = SOUTH) +/// list("type" = RUSTG_ICONFORGE_TURN, "angle" = 90.0) +/// list("type" = RUSTG_ICONFORGE_SHIFT, "dir" = EAST, "offset" = 10, "wrap" = FALSE) +/// list("type" = RUSTG_ICONFORGE_SWAP_COLOR, "src_color" = "#ff0000", "dst_color" = "#00ff00") // alpha bits supported +/// list("type" = RUSTG_ICONFORGE_DRAW_BOX, "color" = "#ff0000", "x1" = 1, "y1" = 1, "x2" = 32, "y2" = 32) // alpha bits supported. color can be null/omitted for transparency. x2 and y2 will default to x1 and y1 if omitted /// /// Returns a SpritesheetResult as JSON, containing fields: /// list( @@ -233,9 +277,9 @@ /// "error" = "[A string, empty if there were no errors.]" /// ) /// In the case of an unrecoverable panic from within Rust, this function ONLY returns a string containing the error. -#define rustg_iconforge_generate(file_path, spritesheet_name, sprites, hash_icons) RUSTG_CALL(RUST_G, "iconforge_generate")(file_path, spritesheet_name, sprites, "[hash_icons]") +#define rustg_iconforge_generate(file_path, spritesheet_name, sprites, hash_icons, generate_dmi, flatten) RUSTG_CALL(RUST_G, "iconforge_generate")(file_path, spritesheet_name, sprites, "[hash_icons]", "[generate_dmi]", "[flatten]") /// Returns a job_id for use with rustg_iconforge_check() -#define rustg_iconforge_generate_async(file_path, spritesheet_name, sprites, hash_icons) RUSTG_CALL(RUST_G, "iconforge_generate_async")(file_path, spritesheet_name, sprites, "[hash_icons]") +#define rustg_iconforge_generate_async(file_path, spritesheet_name, sprites, hash_icons, generate_dmi, flatten) RUSTG_CALL(RUST_G, "iconforge_generate_async")(file_path, spritesheet_name, sprites, "[hash_icons]", "[generate_dmi]", "[flatten]") /// Returns the status of an async job_id, or its result if it is completed. See RUSTG_JOB DEFINEs. #define rustg_iconforge_check(job_id) RUSTG_CALL(RUST_G, "iconforge_check")("[job_id]") /// Clears all cached DMIs and images, freeing up memory. @@ -256,7 +300,7 @@ /// Provided a /datum/greyscale_config typepath, JSON string containing the greyscale config, and path to a DMI file containing the base icons, /// Loads that config into memory for later use by rustg_iconforge_gags(). The config_path is the unique identifier used later. /// JSON Config schema: https://hackmd.io/@tgstation/GAGS-Layer-Types -/// Unsupported features: color_matrix layer type, 'or' blend_mode. May not have BYOND parity with animated icons or varying dirs between layers. +/// Adding dirs or frames (via blending larger icons) to icons with more than 1 dir or 1 frame is not supported. /// Returns "OK" if successful, otherwise, returns a string containing the error. #define rustg_iconforge_load_gags_config(config_path, config_json, config_icon_path) RUSTG_CALL(RUST_G, "iconforge_load_gags_config")("[config_path]", config_json, config_icon_path) /// Given a config_path (previously loaded by rustg_iconforge_load_gags_config), and a string of hex colors formatted as "#ff00ff#ffaa00" @@ -272,6 +316,12 @@ #define RUSTG_ICONFORGE_BLEND_ICON "BlendIcon" #define RUSTG_ICONFORGE_CROP "Crop" #define RUSTG_ICONFORGE_SCALE "Scale" +#define RUSTG_ICONFORGE_MAP_COLORS "MapColors" +#define RUSTG_ICONFORGE_FLIP "Flip" +#define RUSTG_ICONFORGE_TURN "Turn" +#define RUSTG_ICONFORGE_SHIFT "Shift" +#define RUSTG_ICONFORGE_SWAP_COLOR "SwapColor" +#define RUSTG_ICONFORGE_DRAW_BOX "DrawBox" #define RUSTG_JOB_NO_RESULTS_YET "NO RESULTS YET" #define RUSTG_JOB_NO_SUCH_JOB "NO SUCH JOB" @@ -298,6 +348,39 @@ */ #define rustg_noise_poisson_map(seed, width, length, radius) RUSTG_CALL(RUST_G, "noise_poisson_map")(seed, width, length, radius) +/** + * Register a list of nodes into a rust library. This list of nodes must have been serialized in a json. + * Node {// Index of this node in the list of nodes + * unique_id: usize, + * // Position of the node in byond + * x: usize, + * y: usize, + * z: usize, + * // Indexes of nodes connected to this one + * connected_nodes_id: Vec} + * It is important that the node with the unique_id 0 is the first in the json, unique_id 1 right after that, etc. + * It is also important that all unique ids follow. {0, 1, 2, 4} is not a correct list and the registering will fail + * Nodes should not link across z levels. + * A node cannot link twice to the same node and shouldn't link itself either + */ +#define rustg_register_nodes_astar(json) RUSTG_CALL(RUST_G, "register_nodes_astar")(json) + +/** + * Add a new node to the static list of nodes. Same rule as registering_nodes applies. + * This node unique_id must be equal to the current length of the static list of nodes + */ +#define rustg_add_node_astar(json) RUSTG_CALL(RUST_G, "add_node_astar")(json) + +/** + * Remove every link to the node with unique_id. Replace that node by null + */ +#define rustg_remove_node_astar(unique_id) RUSTG_CALL(RUST_G, "remove_node_astar")("[unique_id]") + +/** + * Compute the shortest path between start_node and goal_node using A*. Heuristic used is simple geometric distance + */ +#define rustg_generate_path_astar(start_node_id, goal_node_id) RUSTG_CALL(RUST_G, "generate_path_astar")("[start_node_id]", "[goal_node_id]") + /* * Takes in a string and json_encode()"d lists to produce a sanitized string. * This function operates on whitelists, there is currently no way to blacklist. @@ -362,8 +445,17 @@ #define rustg_time_milliseconds(id) text2num(RUSTG_CALL(RUST_G, "time_milliseconds")(id)) #define rustg_time_reset(id) RUSTG_CALL(RUST_G, "time_reset")(id) +/// Returns the current timestamp (in local time), formatted with the given format string. +/// See https://docs.rs/chrono/latest/chrono/format/strftime/index.html for documentation on the formatting syntax. +#define rustg_formatted_timestamp(format) RUSTG_CALL(RUST_G, "formatted_timestamp")(format) + +/// Returns the current timestamp (with the given UTC offset in hours), formatted with the given format string. +/// See https://docs.rs/chrono/latest/chrono/format/strftime/index.html for documentation on the formatting syntax. +#define rustg_formatted_timestamp_tz(format, offset) RUSTG_CALL(RUST_G, "formatted_timestamp")(format, offset) + /// Returns the timestamp as a string -#define rustg_unix_timestamp(...) (RUSTG_CALL(RUST_G, "unix_timestamp")()) +/proc/rustg_unix_timestamp() + return RUSTG_CALL(RUST_G, "unix_timestamp")() #define rustg_raw_read_toml_file(path) json_decode(RUSTG_CALL(RUST_G, "toml_file_to_json")(path) || "null") @@ -391,10 +483,3 @@ #define url_decode(text) rustg_url_decode(text) #endif -/// Returns the current timestamp (in local time), formatted with the given format string. -/// See https://docs.rs/chrono/latest/chrono/format/strftime/index.html for documentation on the formatting syntax. -#define rustg_formatted_timestamp(format) RUSTG_CALL(RUST_G, "formatted_timestamp")(format) - -/// Returns the current timestamp (with the given UTC offset in hours), formatted with the given format string. -/// See https://docs.rs/chrono/latest/chrono/format/strftime/index.html for documentation on the formatting syntax. -#define rustg_formatted_timestamp_tz(format, offset) RUSTG_CALL(RUST_G, "formatted_timestamp")(format, offset) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 3405fc117b12..097a2592e647 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -5,6 +5,8 @@ #define RADIO_EXTENSION "department specific" #define RADIO_KEY "department specific key" #define LANGUAGE_EXTENSION "language specific" +///This is a mob that is forcing us to say something, so we can use the mob typing the text for bans rather than the one speaking. +#define MANNEQUIN_CONTROLLED "mannequin controlled" /// Message mod which contains a list of bonus "mutual understanding" to allow arbitrary understanding of any speech #define LANGUAGE_MUTUAL_BONUS "language mutual bonus" #define SAY_MOD_VERB "say_mod_verb" @@ -46,7 +48,10 @@ #define MODE_KEY_PUPPET "j" #define MODE_ALIEN "alientalk" +#define MODE_KEY_ALIEN "a" + #define MODE_HOLOPAD "holopad" +#define MODE_KEY_HOLOPAD "h" #define MODE_CHANGELING "changeling" #define MODE_KEY_CHANGELING "g" @@ -119,6 +124,9 @@ #define MSG_AUDIBLE (1<<1) +// Say mode message handling return flags, exist for readability. +/// Say mode has handled the message. +#define SAYMODE_MESSAGE_HANDLED (1<<0) // Used in visible_message_flags, audible_message_flags and runechat_flags /// Automatically applies emote related spans/fonts/formatting to the message diff --git a/code/__DEFINES/skills.dm b/code/__DEFINES/skills.dm index 5a945d7ec579..5de91c1fa8d4 100644 --- a/code/__DEFINES/skills.dm +++ b/code/__DEFINES/skills.dm @@ -47,6 +47,9 @@ ///The base modifier a boulder's size grants to the mining skill. #define MINING_SKILL_BOULDER_SIZE_XP 10 +///The base modifier for how much experience is earned from misc athletics interactions +#define ATHLETICS_SKILL_MISC_EXP 5 + // Skillchip categories //Various skillchip categories. Use these when setting which categories a skillchip restricts being paired with //while using the SKILLCHIP_RESTRICTED_CATEGORIES flag diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 98aa66e51141..244da1dda813 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -285,6 +285,7 @@ GLOBAL_LIST_EMPTY(sfx_datum_by_key) #define SFX_CIG_PACK_PICKUP "cig_pack_pickup" #define SFX_CIG_PACK_RUSTLE "cig_pack_rustle" #define SFX_CIG_PACK_THROW_DROP "cig_pack_throw_drop" +#define SFX_RORO_WARBLE "roro_warble" // Standard is 44.1khz #define MIN_EMOTE_PITCH 40000 diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 802bf04212d8..921d27118b93 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -941,6 +941,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_WORN_ICON "no_worn_icon" /// Items with this trait will not appear when examined. #define TRAIT_EXAMINE_SKIP "examine_skip" +/// Objects with this trait cannot be repaired with duct tape +#define TRAIT_DUCT_TAPE_UNREPAIRABLE "duct_tape_unrepairable" //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" @@ -1048,6 +1050,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_MODPC_HALVED_DOWNLOAD_SPEED "modpc_halved_download_speed" ///Dictates whether a user (source) is interacting with the frame of a stationary modular computer or the pc inside it. Needed for circuits I guess. #define TRAIT_MODPC_INTERACTING_WITH_FRAME "modpc_interacting_with_frame" +///Allows isnerting IDs into the second id slot +#define TRAIT_MODPC_TWO_ID_SLOTS "modpc_two_id_slots" /// If present on a [/mob/living/carbon], will make them appear to have a medium level disease on health HUDs. #define TRAIT_DISEASELIKE_SEVERITY_MEDIUM "diseaselike_severity_medium" @@ -1063,6 +1067,9 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// trait that prevents AI controllers from planning detached from ai_status to prevent weird state stuff. #define TRAIT_AI_PAUSED "TRAIT_AI_PAUSED" +///trait that stops our ai controlled mob from moving at all due to ai planning +#define TRAIT_AI_MOVEMENT_HALTED "ai_movement_halted" + /// this is used to bypass tongue language restrictions but not tongue disabilities #define TRAIT_TOWER_OF_BABEL "tower_of_babel" @@ -1549,4 +1556,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait that makes mobs with it immune to mining gear AOE attacks #define TRAIT_MINING_AOE_IMMUNE "mining_aoe_immune" +/// Trait that allows an item to perform holy rites akin to a nullrod +#define TRAIT_NULLROD_ITEM "nullrod_item" + // END TRAIT DEFINES diff --git a/code/__DEFINES/vehicles.dm b/code/__DEFINES/vehicles.dm index e918e96fbb9c..06635c5e55bd 100644 --- a/code/__DEFINES/vehicles.dm +++ b/code/__DEFINES/vehicles.dm @@ -29,6 +29,12 @@ // This rider must be our friend #define JUST_FRIEND_RIDERS (1<<5) + +///Flags relating to our AI controller when ridden +//do we halt planning while ridden? +#define RIDING_PAUSE_AI_PLANNING (1<<0) +//do we halt movement while ridden? +#define RIDING_PAUSE_AI_MOVEMENT (1<<1) //car_traits flags ///Will this car kidnap people by ramming into them? #define CAN_KIDNAP (1<<0) diff --git a/code/__DEFINES/visual_helpers.dm b/code/__DEFINES/visual_helpers.dm index bb54c5d6b0b7..fda7f6648092 100644 --- a/code/__DEFINES/visual_helpers.dm +++ b/code/__DEFINES/visual_helpers.dm @@ -18,7 +18,7 @@ base_pixel_z = z; #define _SET_BASE_PIXEL_VISUAL_NO_OFFSET(w, z) \ - base_pixel_z = w; \ + base_pixel_w = w; \ base_pixel_z = z; /// Much like [SET_BASE_PIXEL], except it will not effect pixel offsets in mapping programs diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index cb4eb9b724a1..cae09f6ee50b 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -528,6 +528,18 @@ result = pick_weight(fill_with_ones(result)) return result +/** +* Like pick_weight, but decreases the value of the picked element by 1 + * For example, given the following list: + * A = 6, B = 3, C = 1, D = 0 + * A would have a 60% chance of being picked, after which it would decrease by one and the new list would be + * A = 5, B = 3, C = 1, D = 0 + * Tt would then have a 55.55...% to be picked, rinse and repeat +*/ +/proc/pick_weight_take(list/list_to_pick) + . = pick_weight(list_to_pick) + list_to_pick[.]-- + /** * Given a list, return a copy where values without defined weights are given weight 1. * For example, fill_with_ones(list(A, B=2, C)) = list(A=1, B=2, C=1) @@ -1344,3 +1356,17 @@ while(islist(result)) result = pick(result) return result + +/** Takes in two weighted lists and outputs a third list containing the elements of both inputs with their weights blended according to a given proportion. + * Not exact and may have rounding errors, will round to nearest 1/1000. + * */ +/proc/blend_weighted_lists(list/listA, list/listB, blend) + var/list/joined_list = listA | listB + + listA = counterlist_normalise(listA) + listB = counterlist_normalise(listB) + + for(var/element in joined_list) + joined_list[element] = round((listA[element] * (1 - blend) + listB[element] * (blend)) * 1000) + + return joined_list diff --git a/code/__HELPERS/chat.dm b/code/__HELPERS/chat.dm index 669a5f38fc46..5be492d9ef08 100644 --- a/code/__HELPERS/chat.dm +++ b/code/__HELPERS/chat.dm @@ -95,5 +95,10 @@ it will be sent to all connected chats. /// Sends a message to everyone within the list, as well as all observers. /proc/relay_to_list_and_observers(message, list/mob_list, source, message_type = null) for(var/mob/creature as anything in mob_list) - to_chat(creature, message, type = message_type) + to_chat( + creature, + message, + type = message_type, + avoid_highlighting = (creature == source), + ) send_to_observers(message, source) diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 66de92f17fd8..4ff1e10a22f2 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -153,12 +153,6 @@ /proc/cmp_typepaths_asc(A, B) return sorttext("[B]","[A]") -/proc/cmp_pdaname_asc(datum/computer_file/program/messenger/A, datum/computer_file/program/messenger/B) - return sorttext(B?.computer?.saved_identification, A?.computer?.saved_identification) - -/proc/cmp_pdajob_asc(datum/computer_file/program/messenger/A, datum/computer_file/program/messenger/B) - return sorttext(B?.computer?.saved_job, A?.computer?.saved_job) - /proc/cmp_num_string_asc(A, B) return text2num(A) - text2num(B) diff --git a/code/__HELPERS/colors.dm b/code/__HELPERS/colors.dm index 8e9ac7def5be..6a5d6025fd45 100644 --- a/code/__HELPERS/colors.dm +++ b/code/__HELPERS/colors.dm @@ -173,11 +173,10 @@ saturation = min(saturation, 1 - added_saturation) var/list/new_matrix = list( - 0, 0, 0, 0, // Ignore original hue - 0, saturation, 0, 0, // Multiply the saturation by ours - 0, 0, 1 - deducted_light, 0, // If we're highly saturated then remove a bit of lightness to keep some color in - 0, 0, 0, 1, // Preserve alpha - hue, added_saturation, 0, 0, // And apply our preferred hue and some saturation if we're oversaturated + 0, 0, 0, // Ignore original hue + 0, saturation, 0, // Multiply the saturation by ours + 0, 0, 1 - deducted_light, // If we're highly saturated then remove a bit of lightness to keep some color in + hue, added_saturation, 0, // And apply our preferred hue and some saturation if we're oversaturated ) return color_matrix_filter(new_matrix, FILTER_COLOR_HSL) diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 2f3355205e1b..733fd9e4f721 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -307,7 +307,7 @@ xxx xxx xxx SOUTH_JUNCTION|WEST_JUNCTION|SOUTHWEST_JUNCTION, SOUTH_JUNCTION|EAST_JUNCTION|SOUTHEAST_JUNCTION, ) - icon_state = "[base_icon_state]-[smoothing_junction]-d" + icon_state = "[base_icon_state]-[smoothing_junction]-diagonal" if(new_junction == old_junction || fixed_underlay) // Mutable underlays? return diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 86817a55440d..ba9d701b03ae 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1171,27 +1171,60 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) animate(pixel_x = initialpixelx + rand(-pixelshiftx,pixelshiftx), pixel_y = initialpixely + rand(-pixelshifty,pixelshifty), time = shake_interval) animate(pixel_x = initialpixelx, pixel_y = initialpixely, time = shake_interval) +/// Returns rustg-parsed metadata for an icon, universal icon, or DMI file, using cached values where possible +/// Returns null if passed object is not a filepath or icon with a valid DMI file +/proc/icon_metadata(file) + var/static/list/icon_metadata_cache = list() + if(istype(file, /datum/universal_icon)) + var/datum/universal_icon/u_icon = file + file = u_icon.icon_file + var/file_string = "[file]" + if(!istext(file) && !(isfile(file) && length(file_string))) + return null + var/list/cached_metadata = icon_metadata_cache[file_string] + if(islist(cached_metadata)) + return cached_metadata + var/list/metadata_result = rustg_dmi_read_metadata(file_string) + if(!islist(metadata_result) || !length(metadata_result)) + CRASH("Error while reading DMI metadata for path '[file_string]': [metadata_result]") + else + icon_metadata_cache[file_string] = metadata_result + return metadata_result + /// Checks whether a given icon state exists in a given icon file. If `file` and `state` both exist, /// this will return `TRUE` - otherwise, it will return `FALSE`. /// /// If you want a stack trace to be output when the given state/file doesn't exist, use /// `/proc/icon_exists_or_scream()`. /proc/icon_exists(file, state) - var/static/list/icon_states_cache = list() if(isnull(file) || isnull(state)) return FALSE //This is common enough that it shouldn't panic, imo. - if(isnull(icon_states_cache[file])) - icon_states_cache[file] = list() - var/file_string = "[file]" - if(isfile(file) && length(file_string)) // ensure that it's actually a file, and not a runtime icon - for(var/istate in json_decode(rustg_dmi_icon_states(file_string))) - icon_states_cache[file][istate] = TRUE - else // Otherwise, we have to use the slower BYOND proc - for(var/istate in icon_states(file)) - icon_states_cache[file][istate] = TRUE - - return !isnull(icon_states_cache[file][state]) + if(isnull(GLOB.icon_states_cache_lookup[file])) + compile_icon_states_cache(file) + return !isnull(GLOB.icon_states_cache_lookup[file][state]) + +/// Cached, rustg-based alternative to icon_states() +/proc/icon_states_fast(file) + if(isnull(file)) + return null + if(isnull(GLOB.icon_states_cache[file])) + compile_icon_states_cache(file) + return GLOB.icon_states_cache[file] + +/proc/compile_icon_states_cache(file) + GLOB.icon_states_cache[file] = list() + GLOB.icon_states_cache_lookup[file] = list() + // Try to use rustg first + var/list/metadata = icon_metadata(file) + if(islist(metadata) && islist(metadata["states"])) + for(var/list/state_data as anything in metadata["states"]) + GLOB.icon_states_cache[file] += state_data["name"] + GLOB.icon_states_cache_lookup[file][state_data["name"]] = TRUE + else // Otherwise, we have to use the slower BYOND proc + for(var/istate in icon_states(file)) + GLOB.icon_states_cache[file] += istate + GLOB.icon_states_cache_lookup[file][istate] = TRUE /// Functions the same as `/proc/icon_exists()`, but with the addition of a stack trace if the /// specified file or state doesn't exist. @@ -1238,6 +1271,31 @@ GLOBAL_LIST_EMPTY(transformation_animation_objects) /// Returns a list containing the width and height of an icon file /proc/get_icon_dimensions(icon_path) + if(istype(icon_path, /datum/universal_icon)) + var/datum/universal_icon/u_icon = icon_path + icon_path = u_icon.icon_file + // Icons can be a real file(), a rsc backed file(), a dynamic rsc (dyn.rsc) reference (known as a cache reference in byond docs), or an /icon which is pointing to one of those. + // Runtime generated dynamic icons are an unbounded concept cache identity wise, the same icon can exist millions of ways and holding them in a list as a key can lead to unbounded memory usage if called often by consumers. + // Check distinctly that this is something that has this unspecified concept, and thus that we should not cache. + if (!istext(icon_path) && (!isfile(icon_path) || !length("[icon_path]"))) + var/icon/my_icon = icon(icon_path) + return list("width" = my_icon.Width(), "height" = my_icon.Height()) + if (isnull(GLOB.icon_dimensions[icon_path])) + // Used cached icon metadata + var/list/metadata = icon_metadata(icon_path) + var/list/result = null + if(islist(metadata) && isnum(metadata["width"]) && isnum(metadata["height"])) + result = list("width" = metadata["width"], "height" = metadata["height"]) + // Otherwise, we have to use the slower BYOND proc + else + var/icon/my_icon = icon(icon_path) + result = list("width" = my_icon.Width(), "height" = my_icon.Height()) + GLOB.icon_dimensions[icon_path] = result + + return GLOB.icon_dimensions[icon_path] + +/// Returns a list containing the width and height of an icon file, without using rustg for pure function calls +/proc/get_icon_dimensions_pure(icon_path) // Icons can be a real file(), a rsc backed file(), a dynamic rsc (dyn.rsc) reference (known as a cache reference in byond docs), or an /icon which is pointing to one of those. // Runtime generated dynamic icons are an unbounded concept cache identity wise, the same icon can exist millions of ways and holding them in a list as a key can lead to unbounded memory usage if called often by consumers. // Check distinctly that this is something that has this unspecified concept, and thus that we should not cache. diff --git a/code/__HELPERS/lighting.dm b/code/__HELPERS/lighting.dm index 0cc3f8ef5ea6..9cf4839a1ff9 100644 --- a/code/__HELPERS/lighting.dm +++ b/code/__HELPERS/lighting.dm @@ -1,17 +1,30 @@ +#define TOPDOWN_TO_EMISSIVE_LAYER(layer) LERP(FLOOR_EMISSIVE_START_LAYER, FLOOR_EMISSIVE_END_LAYER, (layer - (TOPDOWN_LAYER + 1)) / TOPDOWN_LAYER_COUNT) + /// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR]. -/proc/emissive_appearance(icon, icon_state = "", atom/offset_spokesman, layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE, offset_const, apply_bloom = TRUE) +/proc/emissive_appearance(icon, icon_state = "", atom/offset_spokesman, layer, alpha = 255, appearance_flags = NONE, offset_const, effect_type = EMISSIVE_BLOOM) + if (isnull(layer)) + if(IS_TOPDOWN_PLANE(offset_spokesman.plane)) + layer = TOPDOWN_TO_EMISSIVE_LAYER(offset_spokesman.layer) + else + layer = FLOAT_LAYER var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, offset_spokesman, EMISSIVE_PLANE, 255, appearance_flags | EMISSIVE_APPEARANCE_FLAGS, offset_const) if(alpha == 255) - if (apply_bloom) - appearance.color = GLOB.emissive_color - else - appearance.color = GLOB.emissive_color_no_bloom + switch(effect_type) + if(EMISSIVE_NO_BLOOM) + appearance.color = GLOB.emissive_color_no_bloom + if (EMISSIVE_BLOOM) + appearance.color = GLOB.emissive_color + if (EMISSIVE_SPECULAR) + appearance.color = GLOB.specular_color else var/alpha_ratio = alpha/255 - if (apply_bloom) - appearance.color = _EMISSIVE_COLOR(alpha_ratio) - else - appearance.color = _EMISSIVE_COLOR_NO_BLOOM(alpha_ratio) + switch(effect_type) + if(EMISSIVE_NO_BLOOM) + appearance.color = _EMISSIVE_COLOR_NO_BLOOM(alpha_ratio) + if (EMISSIVE_BLOOM) + appearance.color = _EMISSIVE_COLOR(alpha_ratio) + if (EMISSIVE_SPECULAR) + appearance.color = _SPECULAR_COLOR(alpha_ratio) //Test to make sure emissives with broken or missing icon states are created if(PERFORM_ALL_TESTS(focus_only/invalid_emissives)) @@ -27,6 +40,10 @@ blocker.icon = make_blocker.icon blocker.icon_state = make_blocker.icon_state // blocker.layer = FLOAT_LAYER // Implied, FLOAT_LAYER is default for appearances + // If we keep this on a FLOAT_LAYER on a topdown object it'll render ontop of everything + // So we need to force it to render at a saner layer + if(IS_TOPDOWN_PLANE(make_blocker.plane)) + blocker.layer = TOPDOWN_TO_EMISSIVE_LAYER(make_blocker.layer) blocker.appearance_flags |= make_blocker.appearance_flags | EMISSIVE_APPEARANCE_FLAGS blocker.dir = make_blocker.dir if(make_blocker.alpha == 255) @@ -41,7 +58,12 @@ return blocker /// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EM_BLOCK_COLOR]. -/proc/emissive_blocker(icon, icon_state = "", atom/offset_spokesman, layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE, offset_const) +/proc/emissive_blocker(icon, icon_state = "", atom/offset_spokesman, layer, alpha = 255, appearance_flags = NONE, offset_const) + if (isnull(layer)) + if(IS_TOPDOWN_PLANE(offset_spokesman.plane)) + layer = TOPDOWN_TO_EMISSIVE_LAYER(offset_spokesman.layer) + else + layer = FLOAT_LAYER var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer, offset_spokesman, EMISSIVE_PLANE, alpha, appearance_flags | EMISSIVE_APPEARANCE_FLAGS, offset_const) if(alpha == 255) appearance.color = GLOB.em_block_color @@ -77,3 +99,5 @@ var/atom/movable/vis_cast = make_blocker vis_cast.vis_contents += hand_back return hand_back + +#undef TOPDOWN_TO_EMISSIVE_LAYER diff --git a/code/__HELPERS/logging/talk.dm b/code/__HELPERS/logging/talk.dm index 6cfae068cb62..cae932806f19 100644 --- a/code/__HELPERS/logging/talk.dm +++ b/code/__HELPERS/logging/talk.dm @@ -1,3 +1,28 @@ +/** + * Helper for logging chat messages that may or may not have a custom say verb, + * or be a pure radio emote outright. + * + * This proc reads the `message_mods` to determine + * in what ways the given message should be logged, + * and forwards it to other logging procs as such. + * Arguments: + * * message - The message being logged + * * message_mods - A list of message modifiers, i.e. whispering/singing. + * * tag - tag that indicates the type of text(announcement, telepathy, etc) + * * log_globally - boolean checking whether or not we write this log to the log file + * * forced_by - source that forced the dialogue if any + */ +/atom/proc/log_sayverb_talk(message, list/message_mods = list(), tag = null, log_globally = TRUE, forced_by = null) + // If it's just the custom say verb, log it to emotes. + if(message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) + log_talk(message_mods[MODE_CUSTOM_SAY_EMOTE], LOG_RADIO_EMOTE, tag, log_globally, forced_by) + return + + if(message_mods[WHISPER_MODE]) + log_talk(message, LOG_WHISPER, tag, log_globally, forced_by, message_mods[MODE_CUSTOM_SAY_EMOTE]) + else + log_talk(message, LOG_SAY, tag, log_globally, forced_by, message_mods[MODE_CUSTOM_SAY_EMOTE]) + /** * Helper for logging chat messages or other logs with arbitrary inputs (e.g. announcements) * diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index 3ea8b376930d..3928f656342f 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -407,3 +407,11 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex) if(breaks.Find(given_name)) return FALSE return TRUE + +/// Build a list of strings containing the numbers 1-99 as both arabic and roman numerals +/proc/generate_number_strings() + var/list/L[198] + for(var/i in 1 to 99) + L += "[i]" + L += "\Roman[i]" + return L diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index 9c238ed45db4..7aaca3e75563 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -300,6 +300,112 @@ else return "itself" +//Pronoun procs for objects +/atom/p_they(temp_gender) + if(!temp_gender) + temp_gender = gender + switch(temp_gender) + if(FEMALE) + return "she" + if(MALE) + return "he" + if(PLURAL) + return "they" + else + return "it" + +/atom/p_their(temp_gender) + if(!temp_gender) + temp_gender = gender + switch(temp_gender) + if(FEMALE) + return "her" + if(MALE) + return "his" + if(PLURAL) + return "their" + else + return "its" + +/atom/p_theirs(temp_gender) + if(!temp_gender) + temp_gender = gender + switch(temp_gender) + if(FEMALE) + return "hers" + if(MALE) + return "his" + if(PLURAL) + return "theirs" + else + return "its" + +/atom/p_them(capitalized, temp_gender) + if(!temp_gender) + temp_gender = gender + switch(temp_gender) + if(FEMALE) + return "her" + if(MALE) + return "him" + if(PLURAL) + return "them" + else + return "it" + +/atom/p_have(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender == PLURAL) + return "have" + return "has" + +/atom/p_are(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender == PLURAL) + return "are" + return "is" + +/atom/p_were(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender == PLURAL) + return "were" + return "was" + +/atom/p_do(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender == PLURAL) + return "do" + return "does" + +/atom/p_s(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender != PLURAL) + return "s" + +/atom/p_es(temp_gender) + if(!temp_gender) + temp_gender = gender + if(temp_gender != PLURAL) + return "es" + +/atom/p_themselves(temp_gender) + if(!temp_gender) + temp_gender = gender + switch(temp_gender) + if(FEMALE) + return "herself" + if(MALE) + return "himself" + if(PLURAL) + return "themselves" + else + return "itself" + /// Reports what gender this atom appears to be /atom/proc/get_visible_gender() return gender diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 62273fbb7c2f..9f7c95d42ea4 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -158,8 +158,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) var/json_file = file("[GLOB.log_directory]/newscaster.json") var/list/file_data = list() var/pos = 1 - for(var/V in GLOB.news_network.network_channels) - var/datum/feed_channel/channel = V + for(var/datum/feed_channel/channel as anything in GLOB.news_network.network_channels) if(!istype(channel)) stack_trace("Non-channel in newscaster channel list") continue @@ -527,18 +526,25 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) parts += "The [venue] served [venue.customers_served] customer\s and made [venue.total_income] credits.
" parts += "In total, they earned [tourist_income] credits[tourist_income ? "!" : "..."]
" log_econ("Roundend service income: [tourist_income] credits.") + + // Award service achievements based on tourist income + switch(tourist_income) + if(1 to 2000) + award_service(/datum/award/achievement/jobs/service_bad) + if(2001 to 4999) + award_service(/datum/award/achievement/jobs/service_okay) + if(5000 to INFINITY) + award_service(/datum/award/achievement/jobs/service_good) + switch(tourist_income) if(0) parts += "[span_redtext("Service did not earn any credits...")]
" if(1 to 2000) parts += "[span_redtext("Centcom is displeased. Come on service, surely you can do better than that.")]
" - award_service(/datum/award/achievement/jobs/service_bad) if(2001 to 4999) parts += "[span_greentext("Centcom is satisfied with service's job today.")]
" - award_service(/datum/award/achievement/jobs/service_okay) else parts += "Centcom is incredibly impressed with service today! What a team!
" - award_service(/datum/award/achievement/jobs/service_good) parts += "General Statistics:
" parts += "There were [station_vault] credits collected by crew this shift.
" @@ -549,7 +555,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) parts += "The most affluent crew member at shift end was [mr_moneybags.account_holder] with [mr_moneybags.account_balance] cr!" else parts += "Somehow, nobody made any money this shift! This'll result in some budget cuts..." - return parts + return parts.Join() /** * Awards the service department an achievement and updates the chef and bartender's highscore for tourists served. @@ -666,7 +672,7 @@ GLOBAL_LIST_INIT(achievements_unlocked, list()) button_icon_state = "round_end" show_to_observers = FALSE -/datum/action/report/Trigger(trigger_flags) +/datum/action/report/Trigger(mob/clicker, trigger_flags) if(owner && GLOB.common_report && SSticker.current_state == GAME_STATE_FINISHED) SSticker.show_roundend_report(owner.client) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 49de184a9158..59e95ad8e85f 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -8,22 +8,22 @@ return time2text(wtime, format, NO_TIMEZONE) ///returns the current IC station time in a world.time format -/proc/station_time(display_only = FALSE, wtime=world.time) - return ((((wtime - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % 864000) - (display_only? GLOB.timezoneOffset : 0) +/proc/station_time(wtime = world.time) + return (((wtime - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % (24 HOURS) ///returns the current IC station time in a human readable format /proc/station_time_timestamp(format = "hh:mm:ss", wtime) - return time2text(station_time(TRUE, wtime), format, NO_TIMEZONE) + return time2text(station_time(wtime), format, NO_TIMEZONE) /proc/station_time_debug(force_set) if(isnum(force_set)) SSticker.gametime_offset = force_set return - SSticker.gametime_offset = rand(0, 864000) //hours in day * minutes in hour * seconds in minute * deciseconds in second + SSticker.gametime_offset = rand(0, 24 HOURS) //hours in day * minutes in hour * seconds in minute * deciseconds in second if(prob(50)) - SSticker.gametime_offset = FLOOR(SSticker.gametime_offset, 3600) + SSticker.gametime_offset = FLOOR(SSticker.gametime_offset, 1 HOURS) else - SSticker.gametime_offset = CEILING(SSticker.gametime_offset, 3600) + SSticker.gametime_offset = CEILING(SSticker.gametime_offset, 1 HOURS) ///returns timestamp in a sql and a not-quite-compliant ISO 8601 friendly format. Do not use for SQL, use NOW() instead /proc/ISOtime(timevar) @@ -129,7 +129,7 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) * the timezone is the time value offset from the local time. It's to be applied outside time2text() to get the AM/PM right. */ /proc/time_to_twelve_hour(time, format = "hh:mm:ss", timezone = TIMEZONE_UTC) - time = MODULUS(time + (timezone - GLOB.timezoneOffset) HOURS, 24 HOURS) + time = MODULUS(time + (timezone * (1 HOURS)), 24 HOURS) var/am_pm = "AM" if(time > 12 HOURS) am_pm = "PM" diff --git a/code/__HELPERS/turfs.dm b/code/__HELPERS/turfs.dm index 1aa7fcd65d07..902bfbf585ef 100644 --- a/code/__HELPERS/turfs.dm +++ b/code/__HELPERS/turfs.dm @@ -236,7 +236,7 @@ Turf and target are separate in case you want to teleport some distance from a t var/pixel_y_offset = checked_atom.pixel_y + checked_atom.pixel_z + atom_matrix.get_y_shift() //Irregular objects - var/list/icon_dimensions = get_icon_dimensions(checked_atom.icon) + var/list/icon_dimensions = get_icon_dimensions_pure(checked_atom.icon) var/checked_atom_icon_height = icon_dimensions["height"] var/checked_atom_icon_width = icon_dimensions["width"] if(checked_atom_icon_height != ICON_SIZE_Y || checked_atom_icon_width != ICON_SIZE_X) diff --git a/code/_globalvars/admin.dm b/code/_globalvars/admin.dm index 93ff52f7f7c2..9b5cada802cb 100644 --- a/code/_globalvars/admin.dm +++ b/code/_globalvars/admin.dm @@ -16,6 +16,9 @@ GLOBAL_VAR_INIT(admin_notice, "") // Admin notice that all clients see when join // A list of all the special byond lists that need to be handled different by vv GLOBAL_LIST_INIT(vv_special_lists, init_special_list_names()) +// Stores the value set for the AFK timer callback +GLOBAL_VAR(logout_timer_set) + /proc/init_special_list_names() var/list/output = list() var/obj/sacrifice = new diff --git a/code/_globalvars/arcade.dm b/code/_globalvars/arcade.dm index 281b9b40208e..4510867575a7 100644 --- a/code/_globalvars/arcade.dm +++ b/code/_globalvars/arcade.dm @@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/restraints/handcuffs/fake = 2, /obj/item/grenade/chem_grenade/glitter/pink = 1, /obj/item/grenade/chem_grenade/glitter/blue = 1, - /obj/item/grenade/chem_grenade/glitter/white = 1, + /obj/item/grenade/chem_grenade/glitter = 1, /obj/item/toy/eightball = 2, /obj/item/toy/windup_toolbox = 2, /obj/item/toy/clockwork_watch = 2, diff --git a/code/_globalvars/lists/clothing.dm b/code/_globalvars/lists/clothing.dm new file mode 100644 index 000000000000..674a32664a7e --- /dev/null +++ b/code/_globalvars/lists/clothing.dm @@ -0,0 +1,11 @@ +GLOBAL_LIST_INIT(backpacklist, list( + DBACKPACK, + DDUFFELBAG, + DSATCHEL, + DMESSENGER, + GBACKPACK, + GDUFFELBAG, + GSATCHEL, + GMESSENGER, + LSATCHEL, +)) diff --git a/code/_globalvars/lists/color.dm b/code/_globalvars/lists/color.dm index 1a195798f465..22bb20a4cfc6 100644 --- a/code/_globalvars/lists/color.dm +++ b/code/_globalvars/lists/color.dm @@ -25,3 +25,35 @@ GLOBAL_LIST_INIT(carp_colors, list( COLOR_CARP_PALE_GREEN = 7, COLOR_CARP_SILVER = 1, // The rare silver carp )) + +/// List of possible ethereal colours +GLOBAL_LIST_INIT(color_list_ethereal, list( + "Blue" = "#3399ff", + "Bright Yellow" = "#ffff99", + "Burnt Orange" = "#cc4400", + "Cyan Blue" = "#00ffff", + "Dark Blue" = "#6666ff", + "Dark Fuschia" = "#cc0066", + "Dark Green" = "#37835b", + "Dark Red" = "#9c3030", + "Dull Yellow" = "#fbdf56", + "Faint Blue" = "#b3d9ff", + "Faint Green" = "#ddff99", + "Faint Red" = "#ffb3b3", + "Green" = "#97ee63", + "Orange" = "#ffa64d", + "Pink" = "#ff99cc", + "Purple" = "#ee82ee", + "Red" = "#ff4d4d", + "Seafoam Green" = "#00fa9a", + "White" = "#f2f2f2", +)) + +/// List of possible lustrous ethereal colours +GLOBAL_LIST_INIT(color_list_lustrous, list( + "Cyan Blue" = "#00ffff", + "Sky Blue" = "#37c0ff", + "Blue" = "#3374ff", + "Dark Blue" = "#5b5beb", + "Bright Red" = "#fa2d2d", +)) diff --git a/code/_globalvars/lists/communication.dm b/code/_globalvars/lists/communication.dm new file mode 100644 index 000000000000..c13cf6c03b34 --- /dev/null +++ b/code/_globalvars/lists/communication.dm @@ -0,0 +1,13 @@ +GLOBAL_LIST_INIT(admiral_messages, list( + "Error: No comment given.", + "null", + "Do you know how expensive these stations are?", + "I was sleeping, thanks a lot.", + "It's a good day to die!", + "No.", + "Stand and fight you cowards!", + "Stop being paranoid.", + "Stop wasting my time.", + "Whatever's broken just build a new one.", + "You knew the risks coming in.", +)) diff --git a/code/_globalvars/lists/department.dm b/code/_globalvars/lists/department.dm new file mode 100644 index 000000000000..2ec4a15d4183 --- /dev/null +++ b/code/_globalvars/lists/department.dm @@ -0,0 +1,7 @@ +GLOBAL_LIST_INIT(security_depts_prefs, sort_list(list( + SEC_DEPT_ENGINEERING, + SEC_DEPT_MEDICAL, + SEC_DEPT_NONE, + SEC_DEPT_SCIENCE, + SEC_DEPT_SUPPLY, +))) diff --git a/code/_globalvars/lists/disposals.dm b/code/_globalvars/lists/disposals.dm new file mode 100644 index 000000000000..f543343f3ed0 --- /dev/null +++ b/code/_globalvars/lists/disposals.dm @@ -0,0 +1,52 @@ +// Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to +// the index of the sort department that you want. For example, sortType set to 2 will reroute all packages +// tagged for the Cargo Bay. + +/* List of sortType codes for mapping reference +0 Waste +1 Disposals - All unwrapped items and untagged parcels get picked up by a junction with this sortType. Usually leads to the recycler. +2 Cargo Bay +3 QM Office +4 Engineering +5 CE Office +6 Atmospherics +7 Security +8 HoS Office +9 Medbay +10 CMO Office +11 Chemistry +12 Research +13 RD Office +14 Robotics +15 HoP Office +16 Library +17 Chapel +18 Theatre +19 Bar +20 Kitchen +21 Hydroponics +22 Janitor +23 Genetics +24 Experimentor Lab +25 Ordnance +26 Dormitories +27 Virology +28 Xenobiology +29 Law Office +30 Detective's Office +*/ + +//The whole system for the sorttype var is determined based on the order of this list, +//disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude + +//If you don't want to fuck up disposals, add to this list, and don't change the order. +//If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete + +GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals", + "Cargo Bay", "QM Office", "Engineering", "CE Office", + "Atmospherics", "Security", "HoS Office", "Medbay", + "CMO Office", "Chemistry", "Research", "RD Office", + "Robotics", "HoP Office", "Library", "Chapel", "Theatre", + "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics", + "Experimentor Lab", "Ordnance", "Dormitories", "Virology", + "Xenobiology", "Law Office","Detective's Office")) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm deleted file mode 100644 index 4acd977438dc..000000000000 --- a/code/_globalvars/lists/flavor_misc.dm +++ /dev/null @@ -1,280 +0,0 @@ -GLOBAL_LIST_INIT(color_list_ethereal, list( - "Blue" = "#3399ff", - "Bright Yellow" = "#ffff99", - "Burnt Orange" = "#cc4400", - "Cyan Blue" = "#00ffff", - "Dark Blue" = "#6666ff", - "Dark Fuschia" = "#cc0066", - "Dark Green" = "#37835b", - "Dark Red" = "#9c3030", - "Dull Yellow" = "#fbdf56", - "Faint Blue" = "#b3d9ff", - "Faint Green" = "#ddff99", - "Faint Red" = "#ffb3b3", - "Green" = "#97ee63", - "Orange" = "#ffa64d", - "Pink" = "#ff99cc", - "Purple" = "#ee82ee", - "Red" = "#ff4d4d", - "Seafoam Green" = "#00fa9a", - "White" = "#f2f2f2", -)) - -GLOBAL_LIST_INIT(color_list_lustrous, list( - "Cyan Blue" = "#00ffff", - "Sky Blue" = "#37c0ff", - "Blue" = "#3374ff", - "Dark Blue" = "#5b5beb", - "Bright Red" = "#fa2d2d", -)) - -GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list( - "catghost", - "ghost_black", - "ghost_blazeit", - "ghost_blue", - "ghost_camo", - "ghost_cyan", - "ghost_dblue", - "ghost_dcyan", - "ghost_dgreen", - "ghost_dpink", - "ghost_dred", - "ghost_dyellow", - "ghost_fire", - "ghost_funkypurp", - "ghost_green", - "ghost_grey", - "ghost_mellow", - "ghost_pink", - "ghost_pinksherbert", - "ghost_purpleswirl", - "ghost_rainbow", - "ghost_red", - "ghost_yellow", - "ghost", - "ghostian", - "ghostian2", - "ghostking", - "skeleghost", -)) -//stores the ghost forms that support directional sprites - -GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list( - "ghost_black", - "ghost_blazeit", - "ghost_blue", - "ghost_camo", - "ghost_cyan", - "ghost_dblue", - "ghost_dcyan", - "ghost_dgreen", - "ghost_dpink", - "ghost_dred", - "ghost_dyellow", - "ghost_fire", - "ghost_funkypurp", - "ghost_green", - "ghost_grey", - "ghost_mellow", - "ghost_pink", - "ghost_pinksherbert", - "ghost_purpleswirl", - "ghost_rainbow", - "ghost_red", - "ghost_yellow", - "ghost", - "skeleghost", -)) -//stores the ghost forms that support hair and other such things - -GLOBAL_LIST_INIT(security_depts_prefs, sort_list(list( - SEC_DEPT_ENGINEERING, - SEC_DEPT_MEDICAL, - SEC_DEPT_NONE, - SEC_DEPT_SCIENCE, - SEC_DEPT_SUPPLY, -))) - - //Backpacks -#define DBACKPACK "Department Backpack" -#define DDUFFELBAG "Department Duffel Bag" -#define DSATCHEL "Department Satchel" -#define DMESSENGER "Department Messenger Bag" -#define GBACKPACK "Grey Backpack" -#define GDUFFELBAG "Grey Duffel Bag" -#define GSATCHEL "Grey Satchel" -#define GMESSENGER "Grey Messenger Bag" -#define LSATCHEL "Leather Satchel" -GLOBAL_LIST_INIT(backpacklist, list( - DBACKPACK, - DDUFFELBAG, - DSATCHEL, - DMESSENGER, - GBACKPACK, - GDUFFELBAG, - GSATCHEL, - GMESSENGER, - LSATCHEL, -)) - - //Suit/Skirt -#define PREF_SUIT "Jumpsuit" -#define PREF_SKIRT "Jumpskirt" - -//Uplink spawn loc -#define UPLINK_PDA "PDA" -#define UPLINK_RADIO "Radio" -#define UPLINK_PEN "Pen" //like a real spy! -#define UPLINK_IMPLANT "Implant" - - //Female Uniforms -GLOBAL_LIST_EMPTY(female_clothing_icons) - -GLOBAL_LIST_INIT(scarySounds, list( - 'sound/effects/footstep/clownstep1.ogg', - 'sound/effects/footstep/clownstep2.ogg', - 'sound/effects/glass/glassbr1.ogg', - 'sound/effects/glass/glassbr2.ogg', - 'sound/effects/glass/glassbr3.ogg', - 'sound/items/tools/welder.ogg', - 'sound/items/tools/welder2.ogg', - 'sound/machines/airlock/airlock.ogg', - 'sound/mobs/non-humanoids/hiss/hiss1.ogg', - 'sound/mobs/non-humanoids/hiss/hiss2.ogg', - 'sound/mobs/non-humanoids/hiss/hiss3.ogg', - 'sound/mobs/non-humanoids/hiss/hiss4.ogg', - 'sound/mobs/non-humanoids/hiss/hiss5.ogg', - 'sound/mobs/non-humanoids/hiss/hiss6.ogg', - 'sound/items/weapons/armbomb.ogg', - 'sound/items/weapons/taser.ogg', - 'sound/items/weapons/thudswoosh.ogg', - 'sound/items/weapons/shove.ogg', -)) - - -// Reference list for disposal sort junctions. Set the sortType variable on disposal sort junctions to -// the index of the sort department that you want. For example, sortType set to 2 will reroute all packages -// tagged for the Cargo Bay. - -/* List of sortType codes for mapping reference -0 Waste -1 Disposals - All unwrapped items and untagged parcels get picked up by a junction with this sortType. Usually leads to the recycler. -2 Cargo Bay -3 QM Office -4 Engineering -5 CE Office -6 Atmospherics -7 Security -8 HoS Office -9 Medbay -10 CMO Office -11 Chemistry -12 Research -13 RD Office -14 Robotics -15 HoP Office -16 Library -17 Chapel -18 Theatre -19 Bar -20 Kitchen -21 Hydroponics -22 Janitor -23 Genetics -24 Experimentor Lab -25 Ordnance -26 Dormitories -27 Virology -28 Xenobiology -29 Law Office -30 Detective's Office -*/ - -//The whole system for the sorttype var is determined based on the order of this list, -//disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude - -//If you don't want to fuck up disposals, add to this list, and don't change the order. -//If you insist on changing the order, you'll have to change every sort junction to reflect the new order. --Pete - -GLOBAL_LIST_INIT(TAGGERLOCATIONS, list("Disposals", - "Cargo Bay", "QM Office", "Engineering", "CE Office", - "Atmospherics", "Security", "HoS Office", "Medbay", - "CMO Office", "Chemistry", "Research", "RD Office", - "Robotics", "HoP Office", "Library", "Chapel", "Theatre", - "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics", - "Experimentor Lab", "Ordnance", "Dormitories", "Virology", - "Xenobiology", "Law Office","Detective's Office")) - -GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt")) - -GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt")) - -GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt")) - -GLOBAL_LIST_INIT(greek_letters, world.file2list("strings/greek_letters.txt")) - -GLOBAL_LIST_INIT(phonetic_alphabet, world.file2list("strings/phonetic_alphabet.txt")) - -GLOBAL_LIST_INIT(numbers_as_words, world.file2list("strings/numbers_as_words.txt")) - -GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) - -/proc/generate_number_strings() - var/list/L[198] - for(var/i in 1 to 99) - L += "[i]" - L += "\Roman[i]" - return L - -GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings()) - -GLOBAL_LIST_INIT(admiral_messages, list( - "Error: No comment given.", - "null", - "Do you know how expensive these stations are?", - "I was sleeping, thanks a lot.", - "It's a good day to die!", - "No.", - "Stand and fight you cowards!", - "Stop being paranoid.", - "Stop wasting my time.", - "Whatever's broken just build a new one.", - "You knew the risks coming in.", -)) - -GLOBAL_LIST_INIT(junkmail_messages, world.file2list("strings/junkmail.txt")) - -// All valid inputs to status display post_status -GLOBAL_LIST_INIT(status_display_approved_pictures, list( - "blank", - "shuttle", - "default", - "biohazard", - "lockdown", - "greenalert", - "bluealert", - "redalert", - "deltaalert", - "radiation", - "currentalert", //For automatic set of status display on current level -)) - -// Members of status_display_approved_pictures that are actually states and not alert values -GLOBAL_LIST_INIT(status_display_state_pictures, list( - "blank", - "shuttle", -)) - -GLOBAL_LIST_INIT(fishing_tips, world.file2list("strings/fishing_tips.txt")) - -/// 1000 element long list containing the 1000 most common words in the English language. -/// Indexed by word, value is the rank of the word in the list. So accessing it is fasta. -GLOBAL_LIST_INIT(most_common_words, init_common_words()) - -/proc/init_common_words() - . = list() - var/i = 1 - for(var/word in world.file2list("strings/1000_most_common.txt")) - .[word] = i - i += 1 diff --git a/code/_globalvars/lists/ghost.dm b/code/_globalvars/lists/ghost.dm new file mode 100644 index 000000000000..42db2c830ee5 --- /dev/null +++ b/code/_globalvars/lists/ghost.dm @@ -0,0 +1,59 @@ +/// Stores the ghost forms that support directional sprites +GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list( + "catghost", + "ghost_black", + "ghost_blazeit", + "ghost_blue", + "ghost_camo", + "ghost_cyan", + "ghost_dblue", + "ghost_dcyan", + "ghost_dgreen", + "ghost_dpink", + "ghost_dred", + "ghost_dyellow", + "ghost_fire", + "ghost_funkypurp", + "ghost_green", + "ghost_grey", + "ghost_mellow", + "ghost_pink", + "ghost_pinksherbert", + "ghost_purpleswirl", + "ghost_rainbow", + "ghost_red", + "ghost_yellow", + "ghost", + "ghostian", + "ghostian2", + "ghostking", + "skeleghost", +)) + +/// Stores the ghost forms that support hair and other such things +GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list( + "ghost_black", + "ghost_blazeit", + "ghost_blue", + "ghost_camo", + "ghost_cyan", + "ghost_dblue", + "ghost_dcyan", + "ghost_dgreen", + "ghost_dpink", + "ghost_dred", + "ghost_dyellow", + "ghost_fire", + "ghost_funkypurp", + "ghost_green", + "ghost_grey", + "ghost_mellow", + "ghost_pink", + "ghost_pinksherbert", + "ghost_purpleswirl", + "ghost_rainbow", + "ghost_red", + "ghost_yellow", + "ghost", + "skeleghost", +)) diff --git a/code/_globalvars/lists/icons.dm b/code/_globalvars/lists/icons.dm index ff60e6bc8d92..fd51a76c5f4d 100644 --- a/code/_globalvars/lists/icons.dm +++ b/code/_globalvars/lists/icons.dm @@ -1,2 +1,8 @@ /// Cache of the width and height of icon files, to avoid repeating the same expensive operation GLOBAL_LIST_EMPTY(icon_dimensions) +/// Cache of the states of icon files +GLOBAL_LIST_EMPTY(icon_states_cache) +/// Cache of the states of icon files, stored associatively with TRUE for lookup +GLOBAL_LIST_EMPTY(icon_states_cache_lookup) +/// Female Uniforms +GLOBAL_LIST_EMPTY(female_clothing_icons) diff --git a/code/_globalvars/lists/names.dm b/code/_globalvars/lists/names.dm index f9f70a2c7069..a564d55c4203 100644 --- a/code/_globalvars/lists/names.dm +++ b/code/_globalvars/lists/names.dm @@ -1,47 +1,44 @@ GLOBAL_LIST_INIT(ai_names, world.file2list("strings/names/ai.txt")) -GLOBAL_LIST_INIT(wizard_first, world.file2list("strings/names/wizardfirst.txt")) -GLOBAL_LIST_INIT(wizard_second, world.file2list("strings/names/wizardsecond.txt")) -GLOBAL_LIST_INIT(ninja_titles, world.file2list("strings/names/ninjatitle.txt")) -GLOBAL_LIST_INIT(ninja_names, world.file2list("strings/names/ninjaname.txt")) +GLOBAL_LIST_INIT(cargorilla_names, world.file2list("strings/names/cargorilla.txt")) +GLOBAL_LIST_INIT(carp_names, world.file2list("strings/names/carp.txt")) +GLOBAL_LIST_INIT(clown_names, world.file2list("strings/names/clown.txt")) GLOBAL_LIST_INIT(commando_names, world.file2list("strings/names/death_commando.txt")) -GLOBAL_LIST_INIT(first_names, world.file2list("strings/names/first.txt")) -GLOBAL_LIST_INIT(first_names_male, world.file2list("strings/names/first_male.txt")) +GLOBAL_LIST_INIT(cyberauth_names, world.file2list("strings/names/cyberauth.txt")) +GLOBAL_LIST_INIT(ethereal_names, world.file2list("strings/names/ethereal.txt")) GLOBAL_LIST_INIT(first_names_female, world.file2list("strings/names/first_female.txt")) +GLOBAL_LIST_INIT(first_names_male, world.file2list("strings/names/first_male.txt")) +GLOBAL_LIST_INIT(first_names, world.file2list("strings/names/first.txt")) +GLOBAL_LIST_INIT(golem_names, world.file2list("strings/names/golem.txt")) +GLOBAL_LIST_INIT(guardian_fantasy_surnames, world.file2list("strings/names/guardian_tarot.txt")) +GLOBAL_LIST_INIT(guardian_first_names, world.file2list("strings/names/guardian_descriptions.txt")) +GLOBAL_LIST_INIT(guardian_tech_surnames, world.file2list("strings/names/guardian_gamepieces.txt")) +GLOBAL_LIST_INIT(hacker_aliases, world.file2list("strings/names/hackers.txt")) +GLOBAL_LIST_INIT(hive_names, world.file2list("strings/names/hive_names.txt")) GLOBAL_LIST_INIT(last_names, world.file2list("strings/names/last.txt")) -GLOBAL_LIST_INIT(clown_names, world.file2list("strings/names/clown.txt")) -GLOBAL_LIST_INIT(mime_names, world.file2list("strings/names/mime.txt")) -GLOBAL_LIST_INIT(religion_names, world.file2list("strings/names/religion.txt")) -GLOBAL_LIST_INIT(carp_names, world.file2list("strings/names/carp.txt")) -GLOBAL_LIST_INIT(lizard_names_male, world.file2list("strings/names/lizard_male.txt")) GLOBAL_LIST_INIT(lizard_names_female, world.file2list("strings/names/lizard_female.txt")) -GLOBAL_LIST_INIT(golem_names, world.file2list("strings/names/golem.txt")) +GLOBAL_LIST_INIT(lizard_names_male, world.file2list("strings/names/lizard_male.txt")) +GLOBAL_LIST_INIT(martial_prefix, world.file2list("strings/names/martial_prefix.txt")) +GLOBAL_LIST_INIT(megacarp_first_names, world.file2list("strings/names/megacarp1.txt")) +GLOBAL_LIST_INIT(megacarp_last_names, world.file2list("strings/names/megacarp2.txt")) +GLOBAL_LIST_INIT(mime_names, world.file2list("strings/names/mime.txt")) GLOBAL_LIST_INIT(moth_first, world.file2list("strings/names/moth_first.txt")) GLOBAL_LIST_INIT(moth_last, world.file2list("strings/names/moth_last.txt")) +GLOBAL_LIST_INIT(nightmare_names, world.file2list("strings/names/nightmare.txt")) +GLOBAL_LIST_INIT(ninja_names, world.file2list("strings/names/ninjaname.txt")) +GLOBAL_LIST_INIT(ninja_titles, world.file2list("strings/names/ninjatitle.txt")) +GLOBAL_LIST_INIT(operative_aliases, world.file2list("strings/names/operative_alias.txt")) GLOBAL_LIST_INIT(plasmaman_names, world.file2list("strings/names/plasmaman.txt")) -GLOBAL_LIST_INIT(ethereal_names, world.file2list("strings/names/ethereal.txt")) GLOBAL_LIST_INIT(posibrain_names, world.file2list("strings/names/posibrain.txt")) -GLOBAL_LIST_INIT(nightmare_names, world.file2list("strings/names/nightmare.txt")) -GLOBAL_LIST_INIT(megacarp_first_names, world.file2list("strings/names/megacarp1.txt")) -GLOBAL_LIST_INIT(megacarp_last_names, world.file2list("strings/names/megacarp2.txt")) -GLOBAL_LIST_INIT(cyberauth_names, world.file2list("strings/names/cyberauth.txt")) -GLOBAL_LIST_INIT(hacker_aliases, world.file2list("strings/names/hackers.txt")) +GLOBAL_LIST_INIT(religion_names, world.file2list("strings/names/religion.txt")) +GLOBAL_LIST_INIT(station_names, world.file2list("strings/station_names.txt")) +GLOBAL_LIST_INIT(station_numerals, greek_letters + phonetic_alphabet + numbers_as_words + generate_number_strings()) +GLOBAL_LIST_INIT(station_prefixes, world.file2list("strings/station_prefixes.txt")) +GLOBAL_LIST_INIT(station_suffixes, world.file2list("strings/station_suffixes.txt")) GLOBAL_LIST_INIT(syndicate_monkey_names, world.file2list("strings/names/syndicate_monkey.txt")) -GLOBAL_LIST_INIT(cargorilla_names, world.file2list("strings/names/cargorilla.txt")) -GLOBAL_LIST_INIT(guardian_first_names, world.file2list("strings/names/guardian_descriptions.txt")) -GLOBAL_LIST_INIT(guardian_tech_surnames, world.file2list("strings/names/guardian_gamepieces.txt")) -GLOBAL_LIST_INIT(guardian_fantasy_surnames, world.file2list("strings/names/guardian_tarot.txt")) -GLOBAL_LIST_INIT(operative_aliases, world.file2list("strings/names/operative_alias.txt")) +GLOBAL_LIST_INIT(vampire_house_names, world.file2list("strings/names/vampire_house_names.txt")) GLOBAL_LIST_INIT(voidwalker_names, world.file2list("strings/names/voidwalker.txt")) +GLOBAL_LIST_INIT(wizard_first, world.file2list("strings/names/wizardfirst.txt")) +GLOBAL_LIST_INIT(wizard_second, world.file2list("strings/names/wizardsecond.txt")) -GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) -GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) -GLOBAL_LIST_INIT(martial_prefix, world.file2list("strings/names/martial_prefix.txt")) -GLOBAL_LIST_INIT(adverbs, world.file2list("strings/names/adverbs.txt")) -GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt")) -GLOBAL_LIST_INIT(gross_adjectives, world.file2list("strings/names/gross_adjectives.txt")) -GLOBAL_LIST_INIT(dream_strings, world.file2list("strings/dreamstrings.txt")) -GLOBAL_LIST_INIT(vampire_house_names, world.file2list("strings/names/vampire_house_names.txt")) -GLOBAL_LIST_INIT(greek_alphabet, world.file2list("strings/greek_alphabet.txt")) -GLOBAL_LIST_INIT(hive_names, world.file2list("strings/names/hive_names.txt")) //loaded on startup because of " //would include in rsc if ' was used diff --git a/code/_globalvars/lists/sound.dm b/code/_globalvars/lists/sound.dm new file mode 100644 index 000000000000..a8fc4ab698c7 --- /dev/null +++ b/code/_globalvars/lists/sound.dm @@ -0,0 +1,20 @@ +GLOBAL_LIST_INIT(scarySounds, list( + 'sound/effects/footstep/clownstep1.ogg', + 'sound/effects/footstep/clownstep2.ogg', + 'sound/effects/glass/glassbr1.ogg', + 'sound/effects/glass/glassbr2.ogg', + 'sound/effects/glass/glassbr3.ogg', + 'sound/items/tools/welder.ogg', + 'sound/items/tools/welder2.ogg', + 'sound/machines/airlock/airlock.ogg', + 'sound/mobs/non-humanoids/hiss/hiss1.ogg', + 'sound/mobs/non-humanoids/hiss/hiss2.ogg', + 'sound/mobs/non-humanoids/hiss/hiss3.ogg', + 'sound/mobs/non-humanoids/hiss/hiss4.ogg', + 'sound/mobs/non-humanoids/hiss/hiss5.ogg', + 'sound/mobs/non-humanoids/hiss/hiss6.ogg', + 'sound/items/weapons/armbomb.ogg', + 'sound/items/weapons/taser.ogg', + 'sound/items/weapons/thudswoosh.ogg', + 'sound/items/weapons/shove.ogg', +)) diff --git a/code/_globalvars/lists/status_display.dm b/code/_globalvars/lists/status_display.dm new file mode 100644 index 000000000000..66ec47d9964f --- /dev/null +++ b/code/_globalvars/lists/status_display.dm @@ -0,0 +1,20 @@ +// All valid inputs to status display post_status +GLOBAL_LIST_INIT(status_display_approved_pictures, list( + "blank", + "shuttle", + "default", + "biohazard", + "lockdown", + "greenalert", + "bluealert", + "redalert", + "deltaalert", + "radiation", + "currentalert", //For automatic set of status display on current level +)) + +// Members of status_display_approved_pictures that are actually states and not alert values +GLOBAL_LIST_INIT(status_display_state_pictures, list( + "blank", + "shuttle", +)) diff --git a/code/_globalvars/lists/strings.dm b/code/_globalvars/lists/strings.dm new file mode 100644 index 000000000000..80cc4816c1e4 --- /dev/null +++ b/code/_globalvars/lists/strings.dm @@ -0,0 +1,16 @@ +GLOBAL_LIST_INIT(adjectives, world.file2list("strings/names/adjectives.txt")) +GLOBAL_LIST_INIT(adverbs, world.file2list("strings/names/adverbs.txt")) +GLOBAL_LIST_INIT(dream_strings, world.file2list("strings/dreamstrings.txt")) +GLOBAL_LIST_INIT(fishing_tips, world.file2list("strings/fishing_tips.txt")) +GLOBAL_LIST_INIT(greek_letters, world.file2list("strings/greek_letters.txt")) +GLOBAL_LIST_INIT(gross_adjectives, world.file2list("strings/names/gross_adjectives.txt")) +GLOBAL_LIST_INIT(ing_verbs, world.file2list("strings/names/ing_verbs.txt")) +GLOBAL_LIST_INIT(junkmail_messages, world.file2list("strings/junkmail.txt")) +GLOBAL_LIST_INIT(most_common_words, world.file2list("strings/1000_most_common.txt")) +GLOBAL_LIST_INIT(numbers_as_words, world.file2list("strings/numbers_as_words.txt")) +GLOBAL_LIST_INIT(phonetic_alphabet, world.file2list("strings/phonetic_alphabet.txt")) +GLOBAL_LIST_INIT(verbs, world.file2list("strings/names/verbs.txt")) +GLOBAL_LIST_INIT(wisdoms, world.file2list("strings/wisdoms.txt")) + +//loaded on startup because of " +//would include in rsc if ' was used diff --git a/code/_globalvars/lists/xenobiology.dm b/code/_globalvars/lists/xenobiology.dm index 0e587e891b44..5b61e4e054c5 100644 --- a/code/_globalvars/lists/xenobiology.dm +++ b/code/_globalvars/lists/xenobiology.dm @@ -85,7 +85,29 @@ GLOBAL_LIST_INIT_TYPED(cell_line_tables, /list, list( /datum/micro_organism/cell_line/snake = 1, /datum/micro_organism/cell_line/walking_mushroom = 2, /datum/micro_organism/cell_line/axolotl = 1, - ) + ), + CELL_LINE_ORGAN_HEART = list( + /datum/micro_organism/cell_line/organs/heart = 3, + /datum/micro_organism/cell_line/organs/heart/evolved = 1, + ), + CELL_LINE_ORGAN_HEART_CURSED = list( + /datum/micro_organism/cell_line/organs/heart/corrupt = 1, + /datum/micro_organism/cell_line/organs/heart/sacred = 1, + ), + CELL_LINE_ORGAN_LUNGS = list( + /datum/micro_organism/cell_line/organs/lungs = 3, + /datum/micro_organism/cell_line/organs/lungs/evolved = 1, + ), + CELL_LINE_ORGAN_LIVER = list( + /datum/micro_organism/cell_line/organs/liver = 3, + /datum/micro_organism/cell_line/organs/liver/evolved = 1, + /datum/micro_organism/cell_line/organs/liver/bloody = 1, + /datum/micro_organism/cell_line/organs/liver/distillery = 1, + ), + CELL_LINE_ORGAN_STOMACH = list( + /datum/micro_organism/cell_line/organs/stomach = 3, + /datum/micro_organism/cell_line/organs/stomach/evolved = 1, + ), )) ///Assoc list of cell virus define | assoc list of datum | cell_virus diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index e58b4029d491..801f35272c4b 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -8,6 +8,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( /atom = list( "TRAIT_AI_PAUSED" = TRAIT_AI_PAUSED, + "TRAIT_AI_MOVEMENT_HALTED" = TRAIT_AI_MOVEMENT_HALTED, "TRAIT_BANNED_FROM_CARGO_SHUTTLE" = TRAIT_BANNED_FROM_CARGO_SHUTTLE, "TRAIT_BEAUTY_APPLIED" = TRAIT_BEAUTY_APPLIED, "TRAIT_BEING_SHOCKED" = TRAIT_BEING_SHOCKED, @@ -145,6 +146,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj = list( "TRAIT_CONTRABAND" = TRAIT_CONTRABAND, + "TRAIT_DUCT_TAPE_UNREPAIRABLE" = TRAIT_DUCT_TAPE_UNREPAIRABLE, "TRAIT_SPEED_POTIONED" = TRAIT_SPEED_POTIONED, "TRAIT_WALLMOUNTED" = TRAIT_WALLMOUNTED, ), @@ -673,6 +675,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NO_SIDE_KICK" = TRAIT_NO_SIDE_KICK, "TRAIT_NODROP" = TRAIT_NODROP, "TRAIT_NO_WORN_ICON" = TRAIT_NO_WORN_ICON, + "TRAIT_NULLROD_ITEM" = TRAIT_NULLROD_ITEM, "TRAIT_OMNI_BAIT" = TRAIT_OMNI_BAIT, "TRAIT_PLANT_WILDMUTATE" = TRAIT_PLANT_WILDMUTATE, "TRAIT_POISONOUS_BAIT" = TRAIT_POISONOUS_BAIT, @@ -747,6 +750,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( ), /obj/item/modular_computer = list( "TRAIT_MODPC_HALVED_DOWNLOAD_SPEED" = TRAIT_MODPC_HALVED_DOWNLOAD_SPEED, + "TRAIT_MODPC_TWO_ID_SLOTS" = TRAIT_MODPC_TWO_ID_SLOTS, "TRAIT_PDA_CAN_EXPLODE" = TRAIT_PDA_CAN_EXPLODE, "TRAIT_PDA_MESSAGE_MENU_RIGGED" = TRAIT_PDA_MESSAGE_MENU_RIGGED, ), diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index 5b878b47e68f..c81ee3cd4d57 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( ), /obj = list( "TRAIT_CONTRABAND" = TRAIT_CONTRABAND, + "TRAIT_DUCT_TAPE_UNREPAIRABLE" = TRAIT_DUCT_TAPE_UNREPAIRABLE, "TRAIT_SPEED_POTIONED" = TRAIT_SPEED_POTIONED, ), /mob = list( diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index af3df0a57f55..4e4b491b6725 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -86,6 +86,9 @@ if(LAZYACCESS(modifiers, CTRL_CLICK)) CtrlShiftClickOn(A) return + if (LAZYACCESS(modifiers, ALT_CLICK)) + alt_shift_click_on(A) + return ShiftClickOn(A) return if(LAZYACCESS(modifiers, MIDDLE_CLICK)) diff --git a/code/_onclick/click_alt.dm b/code/_onclick/click_alt.dm index 28801b9816d3..32d6d3156732 100644 --- a/code/_onclick/click_alt.dm +++ b/code/_onclick/click_alt.dm @@ -28,20 +28,10 @@ SHOULD_NOT_OVERRIDE(TRUE) . = ..() - if(. || !CAN_I_SEE(target) || (is_blind() && !IN_GIVEN_RANGE(src, target, 1))) + if(.) return - // No alt clicking to view turf from beneath - if(HAS_TRAIT(src, TRAIT_MOVE_VENTCRAWLING)) - return - - /// No loot panel if it's on our person - if(isobj(target) && (target in get_all_gear())) - to_chat(src, span_warning("You can't search for this item, it's already in your inventory! Take it off first.")) - return - - client.loot_panel.open(get_turf(target)) - return TRUE + return try_open_loot_panel_on(target) /** * ## Custom alt click interaction @@ -109,3 +99,37 @@ /atom/proc/click_alt_secondary(mob/user) SHOULD_CALL_PARENT(FALSE) return NONE + +/** + * ## No-op for unambiguous loot panel bind as a non-living mob. + **/ +/mob/proc/alt_shift_click_on(atom/target) + SHOULD_NOT_OVERRIDE(TRUE) + return FALSE + +/** + * ## Bind for unambiguously opening the loot panel as a living mob. + * This raises no signals and is not meant to have its behavior overridden. + **/ +/mob/living/alt_shift_click_on(atom/target) + SHOULD_NOT_OVERRIDE(TRUE) + return try_open_loot_panel_on(target) + +///Helper for determining if a living mob may open the loot panel for some target, since it is shared between +///alt and alt-shift click. +///Returns FALSE if the mob is unable to open the loot panel at the target and TRUE if the loot panel was opened. +/mob/living/proc/try_open_loot_panel_on(atom/target) + if(!CAN_I_SEE(target) || (is_blind() && !IN_GIVEN_RANGE(src, target, 1))) + return FALSE + + // No alt clicking to view turf from beneath + if(HAS_TRAIT(src, TRAIT_MOVE_VENTCRAWLING)) + return FALSE + + /// No loot panel if it's on our person + if(isobj(target) && (target in get_all_gear())) + to_chat(src, span_warning("You can't search for this item, it's already in your inventory! Take it off first.")) + return FALSE + + client.loot_panel.open(get_turf(target)) + return TRUE diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 69186dead8a5..88508c11e476 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -56,7 +56,7 @@ var/list/modifiers = params2list(params) if(LAZYACCESS(modifiers, ALT_CLICK)) - linked_action?.begin_creating_bind(usr) + linked_action?.begin_creating_bind(src, usr) return TRUE if(LAZYACCESS(modifiers, SHIFT_CLICK)) var/datum/hud/our_hud = usr.hud_used @@ -68,7 +68,7 @@ var/trigger_flags if(LAZYACCESS(modifiers, RIGHT_CLICK)) trigger_flags |= TRIGGER_SECONDARY_ACTION - linked_action.Trigger(trigger_flags = trigger_flags) + linked_action.Trigger(usr, trigger_flags = trigger_flags) return TRUE // Entered and Exited won't fire while you're dragging something, because you're still "holding" it diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 1b4a043678a7..ec7d26d4da09 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -824,7 +824,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." name = "Revival" desc = "Someone is trying to revive you. Re-enter your corpse if you want to be revived!" icon_state = "template" - timeout = 300 + timeout = 30 SECONDS clickable_glow = TRUE /atom/movable/screen/alert/revival/Click() diff --git a/code/_onclick/hud/parallax/parallax.dm b/code/_onclick/hud/parallax/parallax.dm index 075556145078..74f16c1a64a1 100644 --- a/code/_onclick/hud/parallax/parallax.dm +++ b/code/_onclick/hud/parallax/parallax.dm @@ -62,13 +62,8 @@ var/turf/screen_location = get_turf(screenmob) if(SSmapping.level_trait(screen_location?.z, ZTRAIT_NOPARALLAX)) - for(var/atom/movable/screen/plane_master/white_space as anything in get_true_plane_masters(PLANE_SPACE)) - white_space.hide_plane(screenmob) return FALSE - for(var/atom/movable/screen/plane_master/white_space as anything in get_true_plane_masters(PLANE_SPACE)) - white_space.unhide_plane(screenmob) - if (SSlag_switch.measures[DISABLE_PARALLAX] && !HAS_TRAIT(viewmob, TRAIT_BYPASS_MEASURES)) return FALSE diff --git a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm index bebf872f8ebe..a29a76fa9cee 100644 --- a/code/_onclick/hud/rendering/plane_masters/_plane_master.dm +++ b/code/_onclick/hud/rendering/plane_masters/_plane_master.dm @@ -31,7 +31,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/plane_master) //--rendering relay vars-- /// list of planes we will relay this plane's render to - var/list/render_relay_planes = list(RENDER_PLANE_GAME) + var/list/render_relay_planes = list(RENDER_PLANE_UNLIT_GAME) /// blend mode to apply to the render relay in case you dont want to use the plane_masters blend_mode var/blend_mode_override /// list of current relays this plane is utilizing to render diff --git a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm index a588ab791c9b..0599f56df347 100644 --- a/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm +++ b/code/_onclick/hud/rendering/plane_masters/plane_master_subtypes.dm @@ -60,12 +60,12 @@
If you want something to look as if it has parallax on it, draw it to this plane." plane = PLANE_SPACE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR - render_relay_planes = list(RENDER_PLANE_GAME, LIGHT_MASK_PLANE) + render_relay_planes = list(RENDER_PLANE_UNLIT_GAME, RENDER_PLANE_LIGHT_MASK) critical = PLANE_CRITICAL_FUCKO_PARALLAX // goes funny when touched. no idea why I don't trust byond /atom/movable/screen/plane_master/parallax_white/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) . = ..() - add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset), relay_layer = EMISSIVE_SPACE_LAYER) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset), relay_layer = EMISSIVE_SPACE_LAYER) ///Contains space parallax /atom/movable/screen/plane_master/parallax @@ -106,7 +106,7 @@ // Hacky shit to ensure parallax works in perf mode /atom/movable/screen/plane_master/parallax/outside_bounds(mob/relevant) if(offset == 0) - remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME, 0)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_UNLIT_GAME, 0)) is_outside_bounds = TRUE // I'm sorry :( return // If we can't render, and we aren't the bottom layer, don't render us @@ -121,7 +121,7 @@ /atom/movable/screen/plane_master/parallax/inside_bounds(mob/relevant) if(offset == 0) - add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME, 0)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_UNLIT_GAME, 0)) is_outside_bounds = FALSE return // Always readd, just in case we lost it @@ -161,33 +161,33 @@ /atom/movable/screen/plane_master/parallax/proc/narsie_unsummoned() animate(src, color = null, time = 8 SECONDS) -/atom/movable/screen/plane_master/gravpulse - name = "Gravpulse" - documentation = "Ok so this one's fun. Basically, we want to be able to distort the game plane when a grav annom is around.\ +/atom/movable/screen/plane_master/displacement + name = "Displacement" + documentation = "Ok so this one's fun. Basically, we want to be able to distort the game plane when a grav annom or similar is around.\
So we draw the pattern we want to use to this plane, and it's then used as a render target by a distortion filter on the game plane.\
Note the blend mode and lack of relay targets. This plane exists only to distort, it's never rendered anywhere." mouse_opacity = MOUSE_OPACITY_TRANSPARENT - plane = GRAVITY_PULSE_PLANE + plane = DISPLACEMENT_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR blend_mode = BLEND_ADD - render_target = GRAVITY_PULSE_RENDER_TARGET + render_target = DISPLACEMENT_RENDER_TARGET render_relay_planes = list() // We start out hidden as we do not need to render when there's no distortion on our level start_hidden = TRUE -/atom/movable/screen/plane_master/gravpulse/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) +/atom/movable/screen/plane_master/displacement/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) . = ..() RegisterSignal(GLOB, SIGNAL_ADDTRAIT(TRAIT_DISTORTION_IN_USE(offset)), PROC_REF(distortion_enabled)) RegisterSignal(GLOB, SIGNAL_REMOVETRAIT(TRAIT_DISTORTION_IN_USE(offset)), PROC_REF(distortion_disabled)) if(HAS_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(offset))) distortion_enabled() -/atom/movable/screen/plane_master/gravpulse/proc/distortion_enabled(datum/source) +/atom/movable/screen/plane_master/displacement/proc/distortion_enabled(datum/source) SIGNAL_HANDLER var/mob/our_mob = home?.our_hud?.mymob unhide_plane(our_mob) -/atom/movable/screen/plane_master/gravpulse/proc/distortion_disabled(datum/source) +/atom/movable/screen/plane_master/displacement/proc/distortion_disabled(datum/source) SIGNAL_HANDLER hide_plane() @@ -196,30 +196,30 @@ name = "Floor" documentation = "The well, floor. This is mostly used as a sorting mechanism, but it also lets us create a \"border\" around the game world plane, so its drop shadow will actually work." plane = FLOOR_PLANE - render_relay_planes = list(RENDER_PLANE_GAME, LIGHT_MASK_PLANE) + render_relay_planes = list(RENDER_PLANE_UNLIT_GAME, RENDER_PLANE_LIGHT_MASK) /atom/movable/screen/plane_master/transparent_floor name = "Transparent Floor" documentation = "Really just openspace, stuff that is a turf but has no color or alpha whatsoever.\
We use this to draw to just the light mask plane, cause if it's not there we get holes of blackness over openspace" plane = TRANSPARENT_FLOOR_PLANE - render_relay_planes = list(LIGHT_MASK_PLANE) + render_relay_planes = list(RENDER_PLANE_LIGHT_MASK) // Needs to be critical or it uh, it'll look white critical = PLANE_CRITICAL_DISPLAY|PLANE_CRITICAL_NO_RELAY /atom/movable/screen/plane_master/floor/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) . = ..() - add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset), relay_layer = EMISSIVE_FLOOR_LAYER, relay_color = GLOB.em_block_color) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset), relay_layer = EMISSIVE_FLOOR_LAYER, relay_color = GLOB.em_block_color) /atom/movable/screen/plane_master/wall name = "Wall" documentation = "Holds all walls. We render this onto the game world. Separate so we can use this + space and floor planes as a guide for where byond blackness is NOT." plane = WALL_PLANE - render_relay_planes = list(RENDER_PLANE_GAME_WORLD, LIGHT_MASK_PLANE) + render_relay_planes = list(RENDER_PLANE_GAME_WORLD, RENDER_PLANE_LIGHT_MASK) /atom/movable/screen/plane_master/wall/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) . = ..() - add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset), relay_layer = EMISSIVE_WALL_LAYER, relay_color = GLOB.em_block_color) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset), relay_layer = EMISSIVE_WALL_LAYER, relay_color = GLOB.em_block_color) /atom/movable/screen/plane_master/game name = "Game" @@ -292,7 +292,7 @@ documentation = "Contains all lighting drawn to turfs. Not so complex, draws directly onto the lighting plate." plane = LIGHTING_PLANE appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR - render_relay_planes = list(TURF_LIGHTING_PLATE) + render_relay_planes = list(RENDER_PLANE_TURF_LIGHTING) blend_mode_override = BLEND_ADD mouse_opacity = MOUSE_OPACITY_TRANSPARENT critical = PLANE_CRITICAL_DISPLAY @@ -315,20 +315,27 @@ /atom/movable/screen/plane_master/o_light_visual/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) . = ..() // I'd love for this to be HSL but filters don't work with blend modes - add_relay_to(GET_NEW_PLANE(TURF_LIGHTING_PLATE, offset), BLEND_MULTIPLY, relay_color = list( + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_TURF_LIGHTING, offset), BLEND_MULTIPLY, relay_color = list( -1, -1, -1, 0, -1, -1, -1, 0, -1, -1, -1, 0, 0, 0, 0, OVERLAY_LIGHTING_WEIGHT, 1, 1, 1, 0, )) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_SPECULAR, offset), relay_color = list( + SPECULAR_EMISSIVE_OVERLAY_CONTRAST, 0, 0, 0, + 0, SPECULAR_EMISSIVE_OVERLAY_CONTRAST, 0, 0, + 0, 0, SPECULAR_EMISSIVE_OVERLAY_CONTRAST, 0, + 0, 0, 0, 1, + -SPECULAR_EMISSIVE_CUTOFF, -SPECULAR_EMISSIVE_CUTOFF, -SPECULAR_EMISSIVE_CUTOFF, 0, + )) /atom/movable/screen/plane_master/above_lighting name = "Above lighting" plane = ABOVE_LIGHTING_PLANE documentation = "Anything on the game plane that needs a space to draw on that will be above the lighting plane.\
Mostly little alerts and effects, also sometimes contains things that are meant to look as if they glow." - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /atom/movable/screen/plane_master/weather_glow name = "Weather Glow" @@ -336,7 +343,7 @@ plane = WEATHER_GLOW_PLANE start_hidden = TRUE critical = PLANE_CRITICAL_DISPLAY - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /atom/movable/screen/plane_master/weather_glow/set_home(datum/plane_master_group/home) . = ..() @@ -361,11 +368,14 @@ /atom/movable/screen/plane_master/emissive/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) . = ..() /// Okay, so what we're doing here is making all emissives convert to white for actual emissive masking (i.e. adding light so objects glow) - add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset), relay_color = list(1,1,1,0, 1,1,1,0, 1,1,1,0, 0,0,0,1, 0,0,0,0)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset), relay_color = list(1,1,1,0, 1,1,1,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)) /// But for the bloom plate we convert only the red color into full white, this way we can have emissives in green channel unaffected by bloom /// which allows us to selectively bloom only a part of our emissives - add_relay_to(GET_NEW_PLANE(EMISSIVE_BLOOM_PLATE, offset), relay_color = list(255,255,255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)) - add_relay_to(GET_NEW_PLANE(EMISSIVE_BLOOM_MASK_PLATE, offset), relay_color = list(1,1,1,1, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE_BLOOM, offset), relay_color = list(255,255,255,0, 0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE_BLOOM_MASK, offset), relay_color = list(1,1,1,1, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0)) + // Blue channel is dedicated to specular, i.e. our bootleg implementation of shiny objects + // We map it onto alpha so we can use the mask plate in an alpha mask filter to cut out only the shiny bits + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_SPECULAR_MASK, offset), relay_color = list(0,0,0,0, 0,0,0,0, 0,0,0,1, 0,0,0,0, 1,1,1,0)) /atom/movable/screen/plane_master/pipecrawl name = "Pipecrawl" @@ -373,7 +383,7 @@
Has a few effects and a funky color matrix designed to make things a bit more visually readable." plane = PIPECRAWL_IMAGES_PLANE start_hidden = TRUE - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /atom/movable/screen/plane_master/pipecrawl/Initialize(mapload, datum/hud/hud_owner) . = ..() @@ -389,7 +399,7 @@ documentation = "Holds camera static images. Usually only visible to people who can well, see static.\
We use images rather then vis contents because they're lighter on maptick, and maptick sucks butt." plane = CAMERA_STATIC_PLANE - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /atom/movable/screen/plane_master/camera_static/show_to(mob/mymob) . = ..() @@ -428,7 +438,7 @@
Really only exists for its layering potential, we don't use this for any vfx" plane = HIGH_GAME_PLANE mouse_opacity = MOUSE_OPACITY_TRANSPARENT - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /atom/movable/screen/plane_master/ghost name = "Ghost" diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index 415539a66f1a..701aa4732a61 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -29,161 +29,6 @@ name = "Default rendering plate" multiz_scaled = FALSE -///this plate renders the final screen to show to the player -/atom/movable/screen/plane_master/rendering_plate/master - name = "Master rendering plate" - documentation = "The endpoint of all plane masters, you can think of this as the final \"view\" we draw.\ -
If offset is not 0 this will be drawn to the transparent plane of the floor above, but otherwise this is drawn to nothing, or shown to the player." - plane = RENDER_PLANE_MASTER - render_relay_planes = list() - -/atom/movable/screen/plane_master/rendering_plate/master/show_to(mob/mymob) - . = ..() - if(!.) - return - if(offset == 0) - return - // Non 0 offset render plates will relay up to the transparent plane above them, assuming they're not on the same z level as their target of course - var/datum/hud/hud = home.our_hud - // show_to can be called twice successfully with no hide_from call. Ensure no runtimes off the registers from this - if(hud) - RegisterSignal(hud, COMSIG_HUD_OFFSET_CHANGED, PROC_REF(on_offset_change), override = TRUE) - offset_change(hud?.current_plane_offset || 0) - -/atom/movable/screen/plane_master/rendering_plate/master/hide_from(mob/oldmob) - . = ..() - if(offset == 0) - return - var/datum/hud/hud = home.our_hud - if(hud) - UnregisterSignal(hud, COMSIG_HUD_OFFSET_CHANGED, PROC_REF(on_offset_change)) - -/atom/movable/screen/plane_master/rendering_plate/master/proc/on_offset_change(datum/source, old_offset, new_offset) - SIGNAL_HANDLER - offset_change(new_offset) - -/atom/movable/screen/plane_master/rendering_plate/master/proc/offset_change(new_offset) - if(new_offset == offset) // If we're on our own z layer, relay to nothing, just draw - remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_TRANSPARENT, offset - 1)) - else // Otherwise, regenerate the relay - add_relay_to(GET_NEW_PLANE(RENDER_PLANE_TRANSPARENT, offset - 1)) - -///renders general in charachter game objects -/atom/movable/screen/plane_master/rendering_plate/game_plate - name = "Game rendering plate" - documentation = "Holds all objects that are ahhh, in character? is maybe the best way to describe it.\ -
We apply a displacement effect from the gravity pulse plane too, so we can warp the game world.\ -
If we have fov enabled we'll relay this onto two different rendering plates to apply fov effects to only a portion. If not, we just draw straight to master" - plane = RENDER_PLANE_GAME - render_relay_planes = list(LIT_GAME_RENDER_PLATE) - -/atom/movable/screen/plane_master/rendering_plate/game_plate/Initialize(mapload, datum/hud/hud_owner) - . = ..() - add_relay_to(GET_NEW_PLANE(EMISSIVE_BLOOM_PLATE, offset), blend_override = BLEND_MULTIPLY) - RegisterSignal(GLOB, SIGNAL_ADDTRAIT(TRAIT_DISTORTION_IN_USE(offset)), PROC_REF(distortion_enabled)) - RegisterSignal(GLOB, SIGNAL_REMOVETRAIT(TRAIT_DISTORTION_IN_USE(offset)), PROC_REF(distortion_disabled)) - if(HAS_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(offset))) - distortion_enabled() - -/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/distortion_enabled(datum/source) - SIGNAL_HANDLER - add_filter("displacer", 1, displacement_map_filter(render_source = OFFSET_RENDER_TARGET(GRAVITY_PULSE_RENDER_TARGET, offset), size = 10)) - -/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/distortion_disabled(datum/source) - SIGNAL_HANDLER - remove_filter("displacer") - -/atom/movable/screen/plane_master/rendering_plate/game_plate/show_to(mob/mymob) - . = ..() - if(!. || !mymob) - return . - RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) - RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) - if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) - fov_enabled(mymob) - else - fov_disabled(mymob) - -/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/fov_enabled(mob/source) - SIGNAL_HANDLER - add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME_UNMASKED, offset)) - add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME_MASKED, offset)) - remove_relay_from(GET_NEW_PLANE(LIT_GAME_RENDER_PLATE, offset)) - -/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/fov_disabled(mob/source) - SIGNAL_HANDLER - remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME_UNMASKED, offset)) - remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME_MASKED, offset)) - add_relay_to(GET_NEW_PLANE(LIT_GAME_RENDER_PLATE, offset)) - -///renders the parts of the plate unmasked by fov -/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate - name = "Unmasked Game rendering plate" - documentation = "Holds the bits of the game plate that aren't impacted by fov.\ -
We use an alpha mask to cut out the bits we plan on dealing with elsewhere" - plane = RENDER_PLANE_GAME_UNMASKED - render_relay_planes = list(LIT_GAME_RENDER_PLATE) - -/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) - . = ..() - add_filter("fov_handled", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE)) - -/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/show_to(mob/mymob) - . = ..() - if(!. || !mymob) - return . - RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) - RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) - if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) - fov_enabled(mymob) - else - fov_disabled(mymob) - -/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/proc/fov_enabled(mob/source) - SIGNAL_HANDLER - if(force_hidden == FALSE) - return - unhide_plane(source) - -/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/proc/fov_disabled(mob/source) - SIGNAL_HANDLER - hide_plane(source) - -///renders the parts of the plate masked by fov -/atom/movable/screen/plane_master/rendering_plate/masked_game_plate - name = "FOV Game rendering plate" - documentation = "Contains the bits of the game plate that are hidden by some form of fov\ -
Applies a color matrix to dim and create contrast, alongside a blur. Goal is only half being able to see stuff" - plane = RENDER_PLANE_GAME_MASKED - render_relay_planes = list(LIT_GAME_RENDER_PLATE) - -/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) - . = ..() - add_filter("fov_blur", 1, gauss_blur_filter(1.8)) - add_filter("fov_handled_space", 2, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset))) - add_filter("fov_matrix", 3, color_matrix_filter(list(0.5,-0.15,-0.15,0, -0.15,0.5,-0.15,0, -0.15,-0.15,0.5,0, 0,0,0,1, 0,0,0,0))) - -/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/show_to(mob/mymob) - . = ..() - if(!. || !mymob) - return . - RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) - RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) - if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) - fov_enabled(mymob) - else - fov_disabled(mymob) - -/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/proc/fov_enabled(mob/source) - SIGNAL_HANDLER - if(force_hidden == FALSE) - return - unhide_plane(source) - -/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/proc/fov_disabled(mob/source) - SIGNAL_HANDLER - hide_plane(source) - // Blackness renders weird when you view down openspace, because of transforms and borders and such // This is a consequence of not using lummy's grouped transparency, but I couldn't get that to work without totally fucking up // Sight flags, and shooting vis_contents usage to the moon. So we're doin it different. @@ -217,6 +62,108 @@ if(istype(mymob) && mymob.canon_client?.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion)) add_filter("AO", 1, drop_shadow_filter(x = 0, y = -2, size = 4, color = "#04080FAA")) +/atom/movable/screen/plane_master/rendering_plate/unlit_game_plate + name = "Unlit Game rendering plate" + documentation = "Feeds the bits of the game plate which want to be effected by lighting into RENDER_PLANE_GAME and the emissive bloom pipeline (the reason this exists)." + plane = RENDER_PLANE_UNLIT_GAME + render_relay_planes = list(RENDER_PLANE_GAME) + +/atom/movable/screen/plane_master/rendering_plate/unlit_game_plate/Initialize(mapload, datum/hud/hud_owner) + . = ..() + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE_BLOOM, offset), blend_override = BLEND_MULTIPLY) + +/atom/movable/screen/plane_master/rendering_plate/turf_lighting + name = "Turf lighting post-processing plate" + documentation = "Used by overlay lighting, and possibly over plates, to mask out turf lighting." + plane = RENDER_PLANE_TURF_LIGHTING + render_relay_planes = list(RENDER_PLANE_LIGHTING) + blend_mode = BLEND_ADD + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/turf_lighting/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + /// We get affected by cutoff but not by the contrast that overlay lights get + /// So flashlights seem to reflect "better" + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_SPECULAR, offset), relay_color = list( + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1, + -SPECULAR_EMISSIVE_CUTOFF, -SPECULAR_EMISSIVE_CUTOFF, -SPECULAR_EMISSIVE_CUTOFF, 0, + )) + +/atom/movable/screen/plane_master/rendering_plate/emissive_slate + name = "Emissive Plate" + documentation = "This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.\ +
Emissive overlays are pasted with an atom color that converts them to be entirely some specific color.\ +
Emissive blockers are pasted with an atom color that converts them to be entirely some different color.\ +
Emissive overlays and emissive blockers are put onto the same plane (This one).\ +
The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects.\ +
A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.\ +
This is then used to alpha mask the lighting plane." + plane = RENDER_PLANE_EMISSIVE + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + render_target = EMISSIVE_RENDER_TARGET + render_relay_planes = list() + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/emissive_slate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("em_block_masking", 2, color_matrix_filter(GLOB.em_mask_matrix)) + if(offset != 0) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset - 1), relay_layer = EMISSIVE_Z_BELOW_LAYER) + +/atom/movable/screen/plane_master/rendering_plate/emissive_bloom_mask + name = "Emissive bloom mask plate" + documentation = "A holder plate used purely as a way to full-white bloom emissives before applying them as a mask onto the emissive bloom plate." + plane = RENDER_PLANE_EMISSIVE_BLOOM_MASK + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + render_relay_planes = list() + render_target = EMISSIVE_BLOOM_MASK_RENDER_TARGET + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/emissive_bloom + name = "Emissive bloom plate" + documentation = "Plate used to bloom emissives before adding them onto the overlay lighting plane. We do this by multiplying the game plate\ + onto a fullbright emissive, then alpha masking it by emissive's color to solve the problem of blockers, both alone and covered by emissives." + plane = RENDER_PLANE_EMISSIVE_BLOOM + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + blend_mode = BLEND_ADD + render_relay_planes = list(O_LIGHTING_VISUAL_PLANE) + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/emissive_bloom/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("emissive_mask", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(EMISSIVE_BLOOM_MASK_RENDER_TARGET, offset))) + add_filter("emissive_bloom", 2, bloom_filter(threshold = COLOR_BLACK, size = 2, offset = 1)) + +/atom/movable/screen/plane_master/rendering_plate/specular_mask + name = "Specular mask plate" + documentation = "Plate used to generate the specular mask for the specular plate effect." + plane = RENDER_PLANE_SPECULAR_MASK + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + render_target = SPECULAR_MASK_RENDER_TARGET + render_relay_planes = list() + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/specular + name = "Specular plate" + documentation = "Plate used to artificially increase lighting on certain pixels to poorly mimic shiny surfaces." + plane = RENDER_PLANE_SPECULAR + appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + blend_mode = BLEND_ADD + render_relay_planes = list(RENDER_PLANE_GAME) + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/specular/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("specular_mask", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(SPECULAR_MASK_RENDER_TARGET, offset))) + ///Contains all lighting objects /atom/movable/screen/plane_master/rendering_plate/lighting name = "Lighting plate" @@ -231,7 +178,7 @@ blend_mode_override = BLEND_MULTIPLY mouse_opacity = MOUSE_OPACITY_TRANSPARENT critical = PLANE_CRITICAL_DISPLAY - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /// A list of light cutoffs we're actively using, (mass, r, g, b) to avoid filter churn var/list/light_cutoffs @@ -312,28 +259,6 @@ add_filter("light_cutdown", 3, color_matrix_filter(list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, -(ratio + red),-(ratio+green),-(ratio+blue),0))) add_filter("light_cutup", 4, color_matrix_filter(list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, ratio+red,ratio+green,ratio+blue,0))) -/atom/movable/screen/plane_master/rendering_plate/emissive_slate - name = "Emissive Plate" - documentation = "This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers.\ -
Emissive overlays are pasted with an atom color that converts them to be entirely some specific color.\ -
Emissive blockers are pasted with an atom color that converts them to be entirely some different color.\ -
Emissive overlays and emissive blockers are put onto the same plane (This one).\ -
The layers for the emissive overlays and emissive blockers cause them to mask eachother similar to normal BYOND objects.\ -
A color matrix filter is applied to the emissive plane to mask out anything that isn't whatever the emissive color is.\ -
This is then used to alpha mask the lighting plane." - plane = EMISSIVE_RENDER_PLATE - appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - render_target = EMISSIVE_RENDER_TARGET - render_relay_planes = list() - critical = PLANE_CRITICAL_DISPLAY - -/atom/movable/screen/plane_master/rendering_plate/emissive_slate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) - . = ..() - add_filter("em_block_masking", 2, color_matrix_filter(GLOB.em_mask_matrix)) - if(offset != 0) - add_relay_to(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset - 1), relay_layer = EMISSIVE_Z_BELOW_LAYER) - /atom/movable/screen/plane_master/rendering_plate/light_mask name = "Light Mask" documentation = "Any part of this plane that is transparent will be black below it on the game rendering plate.\ @@ -341,7 +266,7 @@
We relay copies of the space, floor and wall planes to it, so we can use them as masks. Then we just boost any existing alpha to 100% and we're done.\
If we ever switch to a sight setup that shows say, mobs but not floors, we instead mask just overlay lighting and emissives.\
This avoids dumb seethrough without breaking stuff like thermals." - plane = LIGHT_MASK_PLANE + plane = RENDER_PLANE_LIGHT_MASK appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR // Fullwhite where there's anything, no color otherwise color = list(255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, 0,0,0,0) @@ -349,7 +274,7 @@ render_target = LIGHT_MASK_RENDER_TARGET // We blend against the game plane, so she's gotta multiply! blend_mode = BLEND_MULTIPLY - render_relay_planes = list(LIT_GAME_RENDER_PLATE) + render_relay_planes = list(RENDER_PLANE_GAME) /atom/movable/screen/plane_master/rendering_plate/light_mask/show_to(mob/mymob) . = ..() @@ -361,24 +286,141 @@ /atom/movable/screen/plane_master/rendering_plate/light_mask/hide_from(mob/oldmob) . = ..() - var/atom/movable/screen/plane_master/emissive = home.get_plane(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset)) + var/atom/movable/screen/plane_master/emissive = home.get_plane(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset)) emissive.remove_filter("lighting_mask") - remove_relay_from(GET_NEW_PLANE(LIT_GAME_RENDER_PLATE, offset)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME, offset)) UnregisterSignal(oldmob, COMSIG_MOB_SIGHT_CHANGE) /atom/movable/screen/plane_master/rendering_plate/light_mask/proc/handle_sight(datum/source, new_sight, old_sight) // If we can see something that shows "through" blackness, and we can't see turfs, disable our draw to the game plane // And instead mask JUST the overlay lighting plane, since that will look fuckin wrong - var/atom/movable/screen/plane_master/emissive = home.get_plane(GET_NEW_PLANE(EMISSIVE_RENDER_PLATE, offset)) + var/atom/movable/screen/plane_master/emissive = home.get_plane(GET_NEW_PLANE(RENDER_PLANE_EMISSIVE, offset)) if(new_sight & SEE_AVOID_TURF_BLACKNESS && !(new_sight & SEE_TURFS)) - remove_relay_from(GET_NEW_PLANE(LIT_GAME_RENDER_PLATE, offset)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME, offset)) emissive.add_filter("lighting_mask", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(LIGHT_MASK_RENDER_TARGET, offset))) // If we CAN'T see through the black, then draw er down brother! else emissive.remove_filter("lighting_mask") // We max alpha here, so our darkness is actually.. dark // Can't do it before cause it fucks with the filter - add_relay_to(GET_NEW_PLANE(LIT_GAME_RENDER_PLATE, offset), relay_color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,1)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME, offset), relay_color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, 0,0,0,1)) + +///renders in character game objects +/atom/movable/screen/plane_master/rendering_plate/game_plate + name = "Game rendering plate" + documentation = "Holds all objects that are ahhh, in character? is maybe the best way to describe it.\ +
We apply a displacement effect from the gravity pulse plane too, so we can warp the game world.\ +
If we have fov enabled we'll relay this onto two different rendering plates to apply fov effects to only a portion. If not, we just draw straight to master.\ +
It's also the step where we finally build lighting into the visual pipeline" + plane = RENDER_PLANE_GAME + render_relay_planes = list(RENDER_PLANE_MASTER) + critical = PLANE_CRITICAL_DISPLAY + +/atom/movable/screen/plane_master/rendering_plate/game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + RegisterSignal(GLOB, SIGNAL_ADDTRAIT(TRAIT_DISTORTION_IN_USE(offset)), PROC_REF(distortion_enabled)) + RegisterSignal(GLOB, SIGNAL_REMOVETRAIT(TRAIT_DISTORTION_IN_USE(offset)), PROC_REF(distortion_disabled)) + if(HAS_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(offset))) + distortion_enabled() + +/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/distortion_enabled(datum/source) + SIGNAL_HANDLER + add_filter("displacer", 1, displacement_map_filter(render_source = OFFSET_RENDER_TARGET(DISPLACEMENT_RENDER_TARGET, offset), size = 10)) + +/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/distortion_disabled(datum/source) + SIGNAL_HANDLER + remove_filter("displacer") + +/atom/movable/screen/plane_master/rendering_plate/game_plate/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME_UNMASKED, offset)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_GAME_MASKED, offset)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_MASTER, offset)) + +/atom/movable/screen/plane_master/rendering_plate/game_plate/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME_UNMASKED, offset)) + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_GAME_MASKED, offset)) + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_MASTER, offset)) + +///renders the parts of the plate unmasked by fov +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate + name = "Unmasked Game rendering plate" + documentation = "Holds the bits of the game plate that aren't impacted by fov.\ +
We use an alpha mask to cut out the bits we plan on dealing with elsewhere" + plane = RENDER_PLANE_GAME_UNMASKED + render_relay_planes = list(RENDER_PLANE_MASTER) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("fov_handled", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset), flags = MASK_INVERSE)) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + if(force_hidden == FALSE) + return + unhide_plane(source) + +/atom/movable/screen/plane_master/rendering_plate/unmasked_game_plate/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + hide_plane(source) + +///renders the parts of the plate masked by fov +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate + name = "FOV Game rendering plate" + documentation = "Contains the bits of the game plate that are hidden by some form of fov\ +
Applies a color matrix to dim and create contrast, alongside a blur. Goal is only half being able to see stuff" + plane = RENDER_PLANE_GAME_MASKED + render_relay_planes = list(RENDER_PLANE_MASTER) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) + . = ..() + add_filter("fov_blur", 1, gauss_blur_filter(1.8)) + add_filter("fov_handled_space", 2, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(FIELD_OF_VISION_BLOCKER_RENDER_TARGET, offset))) + add_filter("fov_matrix", 3, color_matrix_filter(list(0.5,-0.15,-0.15,0, -0.15,0.5,-0.15,0, -0.15,-0.15,0.5,0, 0,0,0,1, 0,0,0,0))) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/show_to(mob/mymob) + . = ..() + if(!. || !mymob) + return . + RegisterSignal(mymob, SIGNAL_ADDTRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_enabled), override = TRUE) + RegisterSignal(mymob, SIGNAL_REMOVETRAIT(TRAIT_FOV_APPLIED), PROC_REF(fov_disabled), override = TRUE) + if(HAS_TRAIT(mymob, TRAIT_FOV_APPLIED)) + fov_enabled(mymob) + else + fov_disabled(mymob) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/proc/fov_enabled(mob/source) + SIGNAL_HANDLER + if(force_hidden == FALSE) + return + unhide_plane(source) + +/atom/movable/screen/plane_master/rendering_plate/masked_game_plate/proc/fov_disabled(mob/source) + SIGNAL_HANDLER + hide_plane(source) ///render plate for OOC stuff like ghosts, hud-screen effects, etc /atom/movable/screen/plane_master/rendering_plate/non_game @@ -387,46 +429,44 @@ plane = RENDER_PLANE_NON_GAME render_relay_planes = list(RENDER_PLANE_MASTER) -/atom/movable/screen/plane_master/rendering_plate/emissive_bloom_mask - name = "Emissive bloom mask plate" - documentation = "A holder plate used purely as a way to full-white bloom emissives before applying them as a mask onto the emissive bloom plate." - plane = EMISSIVE_BLOOM_MASK_PLATE - appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR - mouse_opacity = MOUSE_OPACITY_TRANSPARENT +///this plate renders the final screen to show to the player +/atom/movable/screen/plane_master/rendering_plate/master + name = "Master rendering plate" + documentation = "The endpoint of all plane masters, you can think of this as the final \"view\" we draw.\ +
If offset is not 0 this will be drawn to the transparent plane of the floor above, but otherwise this is drawn to nothing, or shown to the player." + plane = RENDER_PLANE_MASTER render_relay_planes = list() - render_target = EMISSIVE_BLOOM_MASK_TARGET - critical = PLANE_CRITICAL_DISPLAY -/atom/movable/screen/plane_master/rendering_plate/emissive_bloom - name = "Emissive bloom plate" - documentation = "Plate used to bloom emissives before adding them onto the overlay lighting plane. We do this by multiplying the game plate\ - onto a fullbright emissive, then alpha masking it by emissive's color to solve the problem of blockers, both alone and covered by emissives." - plane = EMISSIVE_BLOOM_PLATE - appearance_flags = PLANE_MASTER|NO_CLIENT_COLOR - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - blend_mode = BLEND_ADD - render_relay_planes = list(O_LIGHTING_VISUAL_PLANE) - critical = PLANE_CRITICAL_DISPLAY +/atom/movable/screen/plane_master/rendering_plate/master/show_to(mob/mymob) + . = ..() + if(!.) + return + if(offset == 0) + return + // Non 0 offset render plates will relay up to the transparent plane above them, assuming they're not on the same z level as their target of course + var/datum/hud/hud = home.our_hud + // show_to can be called twice successfully with no hide_from call. Ensure no runtimes off the registers from this + if(hud) + RegisterSignal(hud, COMSIG_HUD_OFFSET_CHANGED, PROC_REF(on_offset_change), override = TRUE) + offset_change(hud?.current_plane_offset || 0) -/atom/movable/screen/plane_master/rendering_plate/emissive_bloom/Initialize(mapload, datum/hud/hud_owner, datum/plane_master_group/home, offset) +/atom/movable/screen/plane_master/rendering_plate/master/hide_from(mob/oldmob) . = ..() - add_filter("emissive_mask", 1, alpha_mask_filter(render_source = OFFSET_RENDER_TARGET(EMISSIVE_BLOOM_MASK_TARGET, offset))) - add_filter("emissive_bloom", 2, bloom_filter(threshold = COLOR_BLACK, size = 2, offset = 1)) + if(offset == 0) + return + var/datum/hud/hud = home.our_hud + if(hud) + UnregisterSignal(hud, COMSIG_HUD_OFFSET_CHANGED, PROC_REF(on_offset_change)) -/atom/movable/screen/plane_master/rendering_plate/turf_lighting - name = "Turf lighting post-processing plate" - documentation = "Used by overlay lighting, and possibly over plates, to mask out turf lighting." - plane = TURF_LIGHTING_PLATE - render_relay_planes = list(RENDER_PLANE_LIGHTING) - blend_mode = BLEND_ADD - critical = PLANE_CRITICAL_DISPLAY +/atom/movable/screen/plane_master/rendering_plate/master/proc/on_offset_change(datum/source, old_offset, new_offset) + SIGNAL_HANDLER + offset_change(new_offset) -/atom/movable/screen/plane_master/rendering_plate/lit_game - name = "Lit game rendering plate" - documentation = "Plate which is used to multiply the game rendering plate by lighting visuals and rendering fullbright stuff. Exists so we can fetch fullbright game plate for emissive VFX." - plane = LIT_GAME_RENDER_PLATE - render_relay_planes = list(RENDER_PLANE_MASTER) - critical = PLANE_CRITICAL_DISPLAY +/atom/movable/screen/plane_master/rendering_plate/master/proc/offset_change(new_offset) + if(new_offset == offset) // If we're on our own z layer, relay to nothing, just draw + remove_relay_from(GET_NEW_PLANE(RENDER_PLANE_TRANSPARENT, offset - 1)) + else // Otherwise, regenerate the relay + add_relay_to(GET_NEW_PLANE(RENDER_PLANE_TRANSPARENT, offset - 1)) /** * Plane master proc called in Initialize() that creates relay objects, and sets them up as needed diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index a81068c65723..c5ef9b3cfc68 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -246,7 +246,7 @@ if(get(src, /mob/living) == user) // telekinesis. user.do_attack_animation(target_mob) - if(!target_mob.attacked_by(src, user, modifiers, attack_modifiers)) + if(target_mob.attacked_by(src, user, modifiers, attack_modifiers) == ATTACK_FAILED) return TRUE SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target_mob, user, modifiers, attack_modifiers) @@ -281,7 +281,8 @@ user.changeNext_move(attack_speed) if(get(src, /mob/living) == user) // telekinesis. user.do_attack_animation(attacked_atom) - attacked_atom.attacked_by(src, user, modifiers, attack_modifiers) + if(attacked_atom.attacked_by(src, user, modifiers, attack_modifiers) == ATTACK_FAILED) + return TRUE SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, attacked_atom, user, modifiers, attack_modifiers) SEND_SIGNAL(attacked_atom, COMSIG_ATOM_AFTER_ATTACKEDBY, src, user, modifiers, attack_modifiers) afterattack(attacked_atom, user, modifiers, attack_modifiers) @@ -290,7 +291,8 @@ /// Called from [/obj/item/proc/attack_atom] and [/obj/item/proc/attack] if the attack succeeds /atom/proc/attacked_by(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) if(!uses_integrity) - CRASH("attacked_by() was called on an object that doesn't use integrity!") + stack_trace("attacked_by() was called on an object that doesn't use integrity!") + return ATTACK_FAILED var/final_force = CALCULATE_FORCE(attacking_item, attack_modifiers) if(final_force <= 0) @@ -304,7 +306,8 @@ return damage /area/attacked_by(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) - CRASH("areas are NOT supposed to have attacked_by() called on them!") + stack_trace("areas are NOT supposed to have attacked_by() called on them!") + return ATTACK_FAILED /mob/living/attacked_by(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) @@ -339,12 +342,12 @@ if(user != src) // This doesn't factor in armor, or most damage modifiers (physiology). Your mileage may vary if(check_block(attacking_item, final_force, "\the [attacking_item]", MELEE_ATTACK, attacking_item.armour_penetration, attacking_item.damtype)) - return 0 + return ATTACK_FAILED SEND_SIGNAL(attacking_item, COMSIG_ITEM_ATTACK_ZONE, src, user, targeting) if(final_force <= 0) - return 1 // Pretend like we did 1 damage so afterattack still runs + return 0 if(ishuman(src) || client) // istype(src) is kinda bad, but it's to avoid spamming the blackbox SSblackbox.record_feedback("nested tally", "item_used_for_combat", 1, list("[attacking_item.force]", "[attacking_item.type]")) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 22151c0008f4..9249d6616918 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -638,6 +638,13 @@ /datum/config_entry/flag/picture_logging_camera +/datum/config_entry/number/roundstart_logout_report_time_average + default = 10 MINUTES + min_val = 0 + +/datum/config_entry/number/roundstart_logout_report_time_variance + default = 3 MINUTES + min_val = 0 /datum/config_entry/flag/reopen_roundstart_suicide_roles diff --git a/code/controllers/master.dm b/code/controllers/master.dm index c093678ec73e..b0846b60e901 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -195,7 +195,7 @@ ADMIN_VERB(cmd_controller_view_ui, R_SERVER|R_DEBUG, "Controller Overview", "Vie "cost_ms" = subsystem.cost, "tick_usage" = subsystem.tick_usage, "usage_per_tick" = average, - "tick_overrun" = subsystem.tick_overrun, + "overtime" = subsystem.tick_overrun, "initialized" = subsystem.initialized, "initialization_failure_message" = subsystem.initialization_failure_message, )) diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index 02f45a541508..62dba374b79a 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -291,7 +291,7 @@ /datum/controller/subsystem/stat_entry(msg) if(can_fire && !(SS_NO_FIRE & flags) && init_stage <= Master.init_stage_completed) - msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)]\t[msg]" + msg = "[round(cost,1)]ms|[round(tick_usage,1)]%([round(tick_overrun,1)]%)|[round(ticks,0.1)] [msg]" else msg = "OFFLINE\t[msg]" return msg diff --git a/code/controllers/subsystem/achievements.dm b/code/controllers/subsystem/achievements.dm index 4633be6f741d..c53f519a6be5 100644 --- a/code/controllers/subsystem/achievements.dm +++ b/code/controllers/subsystem/achievements.dm @@ -101,3 +101,36 @@ SUBSYSTEM_DEF(achievements) if(to_update.len) SSdbcore.MassInsert(format_table_name("achievement_metadata"),to_update,duplicate_key = TRUE) + + var/list/orphaned_keys = get_orphaned_keys(FALSE) + if(orphaned_keys.len) + message_admins("Achievement metadata found without matching achievement, use Achievement-Admin-Panel verb to cleanup if necessary") + +/// returns list of metadata keys and versions in db with no matching achievement datum, either deleted achievements, or from server with code ahead of us. +/datum/controller/subsystem/achievements/proc/get_orphaned_keys(include_archived = TRUE) + . = list() + var/list/current_metadata = list() + // Fetch all keys from the db + var/datum/db_query/Q = SSdbcore.NewQuery("SELECT achievement_key,achievement_version FROM [format_table_name("achievement_metadata")]") + if(!Q.Execute(async = TRUE)) + qdel(Q) + return + else + while(Q.NextRow()) + current_metadata[Q.item[1]] = Q.item[2] + qdel(Q) + + var/list/achievements_by_db_id = list() + for(var/datum/award/award as anything in subtypesof(/datum/award)) + if(!initial(award.database_id)) // abstract type + continue + achievements_by_db_id[award.database_id] = TRUE + + for(var/key in current_metadata) + if(achievements_by_db_id[key]) + continue + if(!include_archived && current_metadata[key] == ACHIEVEMENT_ARCHIVED_VERSION) + continue + .[key] = current_metadata[key] + + diff --git a/code/controllers/subsystem/admin_verbs.dm b/code/controllers/subsystem/admin_verbs.dm index 645a447c4854..732508f0f8a0 100644 --- a/code/controllers/subsystem/admin_verbs.dm +++ b/code/controllers/subsystem/admin_verbs.dm @@ -22,7 +22,8 @@ SUBSYSTEM_DEF(admin_verbs) admin_verbs_by_type = SSadmin_verbs.admin_verbs_by_type /datum/controller/subsystem/admin_verbs/stat_entry(msg) - return "[..()] | V: [length(admin_verbs_by_type)]" + msg = "V:[length(admin_verbs_by_type)]" + return ..() /datum/controller/subsystem/admin_verbs/proc/process_pending_admins() var/list/pending_admins = admins_pending_subsytem_init @@ -131,6 +132,8 @@ SUBSYSTEM_DEF(admin_verbs) // refresh their verbs admin_visibility_flags[admin.ckey] ||= list() + if(admin.is_localhost()) + admin_visibility_flags[admin.ckey] |= list(ADMIN_VERB_VISIBLITY_FLAG_LOCALHOST) for(var/datum/admin_verb/verb_singleton as anything in get_valid_verbs_for_admin(admin)) verb_singleton.assign_to_client(admin) admin.init_verbs() diff --git a/code/controllers/subsystem/ai_controllers.dm b/code/controllers/subsystem/ai_controllers.dm index 397062ddd80c..355a06ff3a5a 100644 --- a/code/controllers/subsystem/ai_controllers.dm +++ b/code/controllers/subsystem/ai_controllers.dm @@ -21,7 +21,7 @@ SUBSYSTEM_DEF(ai_controllers) /datum/controller/subsystem/ai_controllers/stat_entry(msg) var/list/planning_list = GLOB.ai_controllers_by_status[planning_status] - msg = "Planning AIs:[length(planning_list)]/[round(our_cost,1)]%" + msg = "\n Planning AIs:[length(planning_list)]/[round(our_cost,1)]%" return ..() /datum/controller/subsystem/ai_controllers/fire(resumed) diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index b0e0846d5ee7..df9a53e82e11 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -63,7 +63,7 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/stat_entry(msg) - msg += "C:{" + msg += "\n Cost:{" msg += "AT:[round(cost_turfs,1)]|" msg += "HS:[round(cost_hotspots,1)]|" msg += "EG:[round(cost_groups,1)]|" @@ -75,7 +75,7 @@ SUBSYSTEM_DEF(air) msg += "RB:[round(cost_rebuilds,1)]|" msg += "AJ:[round(cost_adjacent,1)]|" msg += "} " - msg += "AT:[active_turfs.len]|" + msg += "\n Count:{AT:[active_turfs.len]|" msg += "HS:[hotspots.len]|" msg += "EG:[excited_groups.len]|" msg += "HP:[high_pressure_delta.len]|" @@ -87,6 +87,7 @@ SUBSYSTEM_DEF(air) msg += "EP:[expansion_queue.len]|" msg += "AJ:[adjacent_rebuild.len]|" msg += "AT/MS:[round((cost ? active_turfs.len/cost : 0),0.1)]" + msg += "}" return ..() diff --git a/code/controllers/subsystem/area_contents.dm b/code/controllers/subsystem/area_contents.dm index 054de9d8efcf..11e07eac55bf 100644 --- a/code/controllers/subsystem/area_contents.dm +++ b/code/controllers/subsystem/area_contents.dm @@ -22,7 +22,7 @@ SUBSYSTEM_DEF(area_contents) total_to_clear += length(to_clear.turfs_to_uncontain_by_zlevel[area_zlevel]) if (length(to_clear.turfs_by_zlevel) >= area_zlevel) //this should always be true, but stat_entry is no place for runtimes. fire() can handle that total_clearing_from += length(to_clear.turfs_by_zlevel[area_zlevel]) - msg = "A:[length(currentrun)] MR:[length(marked_for_clearing)] TC:[total_to_clear] CF:[total_clearing_from]" + msg = "\n A:[length(currentrun)] MR:[length(marked_for_clearing)] TC:[total_to_clear] CF:[total_clearing_from]" return ..() diff --git a/code/controllers/subsystem/asset_loading.dm b/code/controllers/subsystem/asset_loading.dm index ecdf406894a0..8bafe88ffbc4 100644 --- a/code/controllers/subsystem/asset_loading.dm +++ b/code/controllers/subsystem/asset_loading.dm @@ -7,20 +7,23 @@ SUBSYSTEM_DEF(asset_loading) flags = SS_NO_INIT runlevels = RUNLEVEL_LOBBY|RUNLEVELS_DEFAULT var/list/datum/asset/generate_queue = list() + var/assets_generating = 0 var/last_queue_len = 0 /datum/controller/subsystem/asset_loading/fire(resumed) while(length(generate_queue)) var/datum/asset/to_load = generate_queue[generate_queue.len] + last_queue_len = length(generate_queue) + generate_queue.len-- + to_load.queued_generation() if(MC_TICK_CHECK) return - last_queue_len = length(generate_queue) - generate_queue.len-- + // We just emptied the queue - if(last_queue_len && !length(generate_queue)) + if(last_queue_len && !length(generate_queue) && !assets_generating) // Clean up cached icons, freeing memory. rustg_iconforge_cleanup() diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index c98009ed9d9b..e1a43605613a 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -88,7 +88,7 @@ SUBSYSTEM_DEF(dbcore) log_config("ERROR: POOLING_MAX_SQL_CONNECTIONS ([max_sql_connections]) is set lower than POOLING_MIN_SQL_CONNECTIONS ([min_sql_connections]). Please check your config or the code defaults for sanity") /datum/controller/subsystem/dbcore/stat_entry(msg) - msg = "P:[length(all_queries)]|Active:[length(queries_active)]|Standby:[length(queries_standby)]" + msg = "\n P:[length(all_queries)]|Active:[length(queries_active)]|Standby:[length(queries_standby)]" return ..() /// Resets the tracking numbers on the subsystem. Used by SStime_track. diff --git a/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm b/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm index 2058df26c0e7..452979890e2a 100644 --- a/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm +++ b/code/controllers/subsystem/dynamic/dynamic_ruleset_midround.dm @@ -830,12 +830,12 @@ HUNTER_PACK_MI13, ) . = ..() - addtimer(CALLBACK(src, PROC_REF(check_spawn_hunters), hunter_backstory, 10 MINUTES), 1 MINUTES) + addtimer(CALLBACK(src, PROC_REF(check_spawn_hunters), 10 MINUTES), 1 MINUTES) /datum/dynamic_ruleset/midround/from_ghosts/fugitives/assign_role(datum/mind/candidate, datum/team/fugitive/team, turf/team_spawn) candidate.current.forceMove(team_spawn) equip_fugitive(candidate.current, team) - if(length(selected_minds) > 1 && candidate == selected_minds[1]) + if(candidate == selected_minds[1]) equip_fugitive_leader(candidate.current) playsound(candidate.current, 'sound/items/weapons/emitter.ogg', 50, TRUE) diff --git a/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm b/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm index 1bdfe9476154..7bea57bffe88 100644 --- a/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm +++ b/code/controllers/subsystem/dynamic/dynamic_ruleset_roundstart.dm @@ -38,7 +38,7 @@ pref_flag = ROLE_TRAITOR weight = 10 min_pop = 3 - max_antag_cap = list("denominator" = 38) + max_antag_cap = list("denominator" = 24) /datum/dynamic_ruleset/roundstart/traitor/assign_role(datum/mind/candidate) candidate.add_antag_datum(/datum/antagonist/traitor) diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index c146887ba299..bbc72ee44704 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -247,6 +247,32 @@ SUBSYSTEM_DEF(economy) var/obj/machinery/vending/vending = prices_to_update[i] vending.reset_prices(vending.product_records, vending.coin_records + vending.hidden_records) +/** + * Reassign the prices of the vending machine as a result of the inflation value, as provided by SSeconomy + * + * This rebuilds both /datum/data/vending_products lists for premium and standard products based on their most relevant pricing values. + * Arguments: + * * recordlist - the list of standard product datums in the vendor to refresh their prices. + * * premiumlist - the list of premium product datums in the vendor to refresh their prices. + */ +/obj/machinery/vending/proc/reset_prices(list/recordlist, list/premiumlist) + var/inflation_value = HAS_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING) ? SSeconomy.inflation_value() : 1 + default_price = round(initial(default_price) * inflation_value) + extra_price = round(initial(extra_price) * inflation_value) + + for(var/datum/data/vending_product/record as anything in recordlist) + var/obj/item/potential_product = record.product_path + var/custom_price = round(initial(potential_product.custom_price) * inflation_value) + record.price = custom_price | default_price + for(var/datum/data/vending_product/premium_record as anything in premiumlist) + var/obj/item/potential_product = premium_record.product_path + var/premium_custom_price = round(initial(potential_product.custom_premium_price) * inflation_value) + var/custom_price = initial(potential_product.custom_price) + if(!premium_custom_price && custom_price) //For some ungodly reason, some premium only items only have a custom_price + premium_record.price = extra_price + round(custom_price * inflation_value) + else + premium_record.price = premium_custom_price || extra_price + /datum/controller/subsystem/economy/proc/inflict_moneybags(datum/bank_account/moneybags) if(!moneybags) return FALSE diff --git a/code/controllers/subsystem/explosions.dm b/code/controllers/subsystem/explosions.dm index 57af71f11c36..c885c8826280 100644 --- a/code/controllers/subsystem/explosions.dm +++ b/code/controllers/subsystem/explosions.dm @@ -45,7 +45,7 @@ SUBSYSTEM_DEF(explosions) /datum/controller/subsystem/explosions/stat_entry(msg) - msg += "C:{" + msg += "\n Cost:{" msg += "LT:[round(cost_lowturf,1)]|" msg += "MT:[round(cost_medturf,1)]|" msg += "HT:[round(cost_highturf,1)]|" @@ -59,7 +59,7 @@ SUBSYSTEM_DEF(explosions) msg += "} " - msg += "AMT:{" + msg += "\n Count:{" msg += "LT:[lowturf.len]|" msg += "MT:[medturf.len]|" msg += "HT:[highturf.len]|" @@ -72,7 +72,7 @@ SUBSYSTEM_DEF(explosions) msg += "TO:[throwturf.len]" msg += "HTO:[held_throwturf.len]" - msg += "} " + msg += "}" return ..() /datum/controller/subsystem/explosions/proc/is_exploding() diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index 844f52a860f6..bb1475a4f50e 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -63,19 +63,19 @@ SUBSYSTEM_DEF(garbage) var/list/counts = list() for (var/list/L in queues) counts += length(L) - msg += "Q:[counts.Join(",")]|D:[delslasttick]|G:[gcedlasttick]|" + msg += "\n Queue:[counts.Join(",")]|Dels:[delslasttick]|GCs:[gcedlasttick]|" msg += "GR:" if (!(delslasttick+gcedlasttick)) msg += "n/a|" else msg += "[round((gcedlasttick/(delslasttick+gcedlasttick))*100, 0.01)]%|" - msg += "TD:[totaldels]|TG:[totalgcs]|" + msg += "\n TD:[totaldels]|TG:[totalgcs]|" if (!(totaldels+totalgcs)) msg += "n/a|" else msg += "TGR:[round((totalgcs/(totaldels+totalgcs))*100, 0.01)]%" - msg += " P:[pass_counts.Join(",")]" + msg += "\n P:[pass_counts.Join(",")]" msg += "|F:[fail_counts.Join(",")]" return ..() diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm index 66097a4077cb..11b75be8af75 100644 --- a/code/controllers/subsystem/input.dm +++ b/code/controllers/subsystem/input.dm @@ -94,6 +94,5 @@ VERB_MANAGER_SUBSYSTEM_DEF(input) current_clicks = 0 /datum/controller/subsystem/verb_manager/input/stat_entry(msg) - . = ..() - . += "M/S:[round(movements_per_second,0.01)] | C/S:[round(clicks_per_second,0.01)] ([round(delayed_clicks_per_second,0.01)] | CD: [round(average_click_delay / (1 SECONDS),0.01)])" - + msg = "\n M/S:[round(movements_per_second,0.01)] | C/S:[round(clicks_per_second,0.01)] ([round(delayed_clicks_per_second,0.01)] | CD: [round(average_click_delay / (1 SECONDS),0.01)])" + return ..() diff --git a/code/controllers/subsystem/ipintel.dm b/code/controllers/subsystem/ipintel.dm index d61789deb692..6ba87c02780c 100644 --- a/code/controllers/subsystem/ipintel.dm +++ b/code/controllers/subsystem/ipintel.dm @@ -41,7 +41,8 @@ SUBSYSTEM_DEF(ipintel) )) /datum/controller/subsystem/ipintel/stat_entry(msg) - return "[..()] | M: [CONFIG_GET(number/ipintel_rate_minute) - rate_limit_minute]" + msg = "M:[CONFIG_GET(number/ipintel_rate_minute) - rate_limit_minute]" + return ..() /datum/controller/subsystem/ipintel/proc/is_enabled() diff --git a/code/controllers/subsystem/lighting.dm b/code/controllers/subsystem/lighting.dm index f73eb7f1c034..2bff25b00a59 100644 --- a/code/controllers/subsystem/lighting.dm +++ b/code/controllers/subsystem/lighting.dm @@ -16,7 +16,7 @@ SUBSYSTEM_DEF(lighting) #endif /datum/controller/subsystem/lighting/stat_entry(msg) - msg = "L:[length(sources_queue)]|C:[length(corners_queue)]|O:[length(objects_queue)]" + msg = "\n Sources:[length(sources_queue)]|Corners:[length(corners_queue)]|Objects:[length(objects_queue)]" return ..() diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 1038926bf7cd..e3e0b0357a0d 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -86,7 +86,7 @@ SUBSYSTEM_DEF(machines) propagate_network(power_cable, power_cable.powernet) /datum/controller/subsystem/machines/stat_entry(msg) - msg = "M:[length(all_machines)]|MT:[length(machines_by_type)]|PM:[length(processing)]|PN:[length(powernets)]" + msg = "\n M:[length(all_machines)]|MT:[length(machines_by_type)]|PM:[length(processing)]|PN:[length(powernets)]" return ..() /datum/controller/subsystem/machines/fire(resumed = FALSE) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 3f499a438117..754aa17880bb 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -132,11 +132,20 @@ SUBSYSTEM_DEF(mapping) while (space_levels_so_far < current_map.space_ruin_levels) add_new_zlevel("Ruin Area [space_levels_so_far+1]", ZTRAITS_SPACE) ++space_levels_so_far + // Create empty space levels while (space_levels_so_far < current_map.space_empty_levels + current_map.space_ruin_levels) empty_space = add_new_zlevel("Empty Area [space_levels_so_far+1]", list(ZTRAIT_LINKAGE = CROSSLINKED)) ++space_levels_so_far + if(current_map.wilderness_levels) + var/list/FailedZs = list() + + LoadGroup(FailedZs, "Wilderness Area", current_map.wilderness_directory, current_map.maps_to_spawn, default_traits = ZTRAITS_WILDS, height_autosetup = FALSE) + + if(LAZYLEN(FailedZs)) + CRASH("Ice wilds failed to load!") + // Pick a random away mission. if(CONFIG_GET(flag/roundstart_away)) createRandomZlevel(prob(CONFIG_GET(number/config_gateway_chance))) @@ -237,7 +246,6 @@ SUBSYSTEM_DEF(mapping) gravity_by_z_level[z_level_number] = max_gravity return max_gravity - /** * ##setup_ruins * @@ -275,8 +283,7 @@ SUBSYSTEM_DEF(mapping) var/list/ice_ruins = levels_by_trait(ZTRAIT_ICE_RUINS) for (var/ice_z in ice_ruins) - var/river_type = HAS_TRAIT(SSstation, STATION_TRAIT_FORESTED) ? /turf/open/lava/plasma/ice_moon : /turf/open/openspace/icemoon - spawn_rivers(ice_z, 4, river_type, /area/icemoon/surface/outdoors/unexplored/rivers) + spawn_rivers(ice_z, 6, /turf/open/lava/plasma/ice_moon, /area/icemoon/surface/outdoors/unexplored/rivers) var/list/ice_ruins_underground = levels_by_trait(ZTRAIT_ICE_RUINS_UNDERGROUND) for (var/ice_z in ice_ruins_underground) diff --git a/code/controllers/subsystem/movement/movement_types.dm b/code/controllers/subsystem/movement/movement_types.dm index 58b1c58b0bca..6acce747bbe1 100644 --- a/code/controllers/subsystem/movement/movement_types.dm +++ b/code/controllers/subsystem/movement/movement_types.dm @@ -154,7 +154,7 @@ ///Resume our loop after being paused by pause_loop() /datum/move_loop/proc/resume_loop() - if(!controller || (status & MOVELOOP_STATUS_RUNNING|MOVELOOP_STATUS_PAUSED) != (MOVELOOP_STATUS_RUNNING|MOVELOOP_STATUS_PAUSED)) + if(!controller || (status & (MOVELOOP_STATUS_RUNNING|MOVELOOP_STATUS_PAUSED)) != (MOVELOOP_STATUS_RUNNING|MOVELOOP_STATUS_PAUSED)) return timer = world.time diff --git a/code/controllers/subsystem/networks/id_access.dm b/code/controllers/subsystem/networks/id_access.dm index 43d5ea2b61a1..dd3299078712 100644 --- a/code/controllers/subsystem/networks/id_access.dm +++ b/code/controllers/subsystem/networks/id_access.dm @@ -457,7 +457,7 @@ SUBSYSTEM_DEF(id_access) if (ishuman(id_card.loc)) var/mob/living/carbon/human/owner = id_card.loc - owner.sec_hud_set_ID() + owner.update_ID_card() /** * Removes a trim from a ID card. @@ -478,7 +478,7 @@ SUBSYSTEM_DEF(id_access) if (ishuman(id_card.loc)) var/mob/living/carbon/human/owner = id_card.loc - owner.sec_hud_set_ID() + owner.update_ID_card() /** * Adds the accesses associated with a trim to an ID card. diff --git a/code/controllers/subsystem/networks/radio.dm b/code/controllers/subsystem/networks/radio.dm index 578b69b0d0ed..6d880cedeb30 100644 --- a/code/controllers/subsystem/networks/radio.dm +++ b/code/controllers/subsystem/networks/radio.dm @@ -11,6 +11,15 @@ SUBSYSTEM_DEF(radio) saymodes[SM.key] = SM return ..() +/// Gets the say mode associated with the given key, if available to the given user. +/datum/controller/subsystem/radio/proc/get_available_say_mode(mob/living/user, key) + var/datum/saymode/selected_saymode = SSradio.saymodes[key] + if(isnull(selected_saymode)) + return + if(!selected_saymode.can_be_used_by(user)) + return + return selected_saymode + /datum/controller/subsystem/radio/proc/add_object(obj/device, new_frequency as num, filter = null as text|null) var/f_text = num2text(new_frequency) var/datum/radio_frequency/frequency = frequencies[f_text] diff --git a/code/controllers/subsystem/polling.dm b/code/controllers/subsystem/polling.dm index 1577672caf12..1477fa7e7c36 100644 --- a/code/controllers/subsystem/polling.dm +++ b/code/controllers/subsystem/polling.dm @@ -328,7 +328,7 @@ SUBSYSTEM_DEF(polling) QDEL_IN(finishing_poll, 0.5 SECONDS) /datum/controller/subsystem/polling/stat_entry(msg) - msg += "Active: [length(currently_polling)] | Total: [total_polls]" + msg = "\n Active: [length(currently_polling)] | Total: [total_polls]" var/datum/candidate_poll/soonest_to_complete = get_next_poll_to_finish() if(soonest_to_complete) msg += " | Next: [DisplayTimeText(soonest_to_complete.time_left())] ([length(soonest_to_complete.signed_up)] candidates)" diff --git a/code/controllers/subsystem/processing/greyscale.dm b/code/controllers/subsystem/processing/greyscale.dm index 4b77aa3e7b4b..f88b960e869f 100644 --- a/code/controllers/subsystem/processing/greyscale.dm +++ b/code/controllers/subsystem/processing/greyscale.dm @@ -1,7 +1,6 @@ /// Disable to use builtin DM-based generation. /// IconForge is 250x times faster but requires storing the icons in tmp/ and may result in higher asset transport. /// Note that the builtin GAGS editor still uses the 'legacy' generation to allow for debugging. -/// IconForge also does not support the color matrix layer type or the 'or' blend_mode, however both are currently unused. #define USE_RUSTG_ICONFORGE_GAGS PROCESSING_SUBSYSTEM_DEF(greyscale) diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index d4f0dbec42dc..2557402301f7 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -24,9 +24,9 @@ GLOBAL_LIST_INIT_TYPED(quirk_blacklist, /list/datum/quirk, list( list(/datum/quirk/mute, /datum/quirk/softspoken), list(/datum/quirk/poor_aim, /datum/quirk/bighands), list(/datum/quirk/bilingual, /datum/quirk/foreigner, /datum/quirk/csl), - list(/datum/quirk/spacer_born, /datum/quirk/item_quirk/settler), + list(/datum/quirk/spacer_born, /datum/quirk/settler), list(/datum/quirk/photophobia, /datum/quirk/nyctophobia), - list(/datum/quirk/item_quirk/settler, /datum/quirk/freerunning), + list(/datum/quirk/settler, /datum/quirk/freerunning), list(/datum/quirk/numb, /datum/quirk/selfaware), //MASSMETA EDIT BEGIN (quirk_augmented) list(/datum/quirk/augmented, /datum/quirk/quadruple_amputee), diff --git a/code/controllers/subsystem/radiation.dm b/code/controllers/subsystem/radiation.dm index 6a9cc631cf52..a129c2a34641 100644 --- a/code/controllers/subsystem/radiation.dm +++ b/code/controllers/subsystem/radiation.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(radiation) processing.Cut(1, 2) /datum/controller/subsystem/radiation/stat_entry(msg) - msg = "[msg] | Pulses: [processing.len]" + msg = "Pulses:[processing.len]" return ..() /datum/controller/subsystem/radiation/proc/pulse(atom/source, datum/radiation_pulse_information/pulse_information) diff --git a/code/controllers/subsystem/spatial_gridmap.dm b/code/controllers/subsystem/spatial_gridmap.dm index f4f1036593a7..f2d6c20554fb 100644 --- a/code/controllers/subsystem/spatial_gridmap.dm +++ b/code/controllers/subsystem/spatial_gridmap.dm @@ -104,6 +104,9 @@ SUBSYSTEM_DEF(spatial_grid) ///how many pregenerated /mob/oranges_ear instances currently exist. this should hopefully never exceed its starting value var/number_of_oranges_ears = NUMBER_OF_PREGENERATED_ORANGES_EARS + ///for debugging, stores a list of grids with colors to paint atoms with + var/list/cells_with_color + /datum/controller/subsystem/spatial_grid/Initialize() cells_on_x_axis = SPATIAL_GRID_CELLS_PER_SIDE(world.maxx) cells_on_y_axis = SPATIAL_GRID_CELLS_PER_SIDE(world.maxy) @@ -843,6 +846,31 @@ SUBSYSTEM_DEF(spatial_grid) the average client distance is: [average_client_distance], the average hearable_distance is [average_hearable_distance], \ and the average atmos distance is [average_atmos_distance] ") +//A debugging proc that colors objects based on what grid they belong to +/datum/controller/subsystem/spatial_grid/proc/paint_grids() + cells_with_color = list() + for(var/list/z_level_grid as anything in grids_by_z_level) + for(var/list/cell_row as anything in z_level_grid) + for(var/datum/spatial_grid_cell/cell as anything in cell_row) + cells_with_color[cell] = RANDOM_COLOUR + for(var/atom/thing in world.contents) + var/datum/spatial_grid_cell/things_cell = get_cell_of(thing) + if(!things_cell) + continue + thing.add_atom_colour(cells_with_color[things_cell], ADMIN_COLOUR_PRIORITY) + if(ismovable(thing)) + RegisterSignal(thing, COMSIG_MOVABLE_MOVED, PROC_REF(update_color)) + CHECK_TICK + +//A debugging proc that colors objects based on what grid they belong to +/datum/controller/subsystem/spatial_grid/proc/update_color(atom/movable/thing) + SIGNAL_HANDLER + + var/datum/spatial_grid_cell/things_cell = get_cell_of(thing) + if(!isdatum(things_cell)) + return + thing.add_atom_colour(cells_with_color[things_cell], ADMIN_COLOUR_PRIORITY) + #undef BOUNDING_BOX_MAX #undef BOUNDING_BOX_MIN diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index e139ff8a8135..d7d4b38793d4 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -195,7 +195,7 @@ SUBSYSTEM_DEF(statpanels) list("World Time:", "[world.time]"), list("Globals:", GLOB.stat_entry(), text_ref(GLOB)), list("[config]:", config.stat_entry(), text_ref(config)), - list("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)"), + list("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))\n (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)"), list("Master Controller:", Master.stat_entry(), text_ref(Master)), list("Failsafe Controller:", Failsafe.stat_entry(), text_ref(Failsafe)), list("","") diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 60898e26bbc1..795943308894 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -142,13 +142,15 @@ SUBSYSTEM_DEF(ticker) GLOB.syndicate_code_response_regex = codeword_match - start_at = world.time + (CONFIG_GET(number/lobby_countdown) * 10) + start_at = world.time + (CONFIG_GET(number/lobby_countdown) * (1 SECONDS)) + round_start_time = start_at // May be changed later, but prevents the time from jumping back when the round actually starts if(CONFIG_GET(flag/randomize_shift_time)) - gametime_offset = rand(0, 23) HOURS + gametime_offset = rand(0, 23) * (1 HOURS) else if(CONFIG_GET(flag/shift_time_realtime)) - gametime_offset = world.timeofday + gametime_offset = world.timeofday + GLOB.timezoneOffset + station_time_rate_multiplier = 1 else - gametime_offset = (CONFIG_GET(number/shift_time_start_hour) HOURS) + gametime_offset = (CONFIG_GET(number/shift_time_start_hour) * (1 HOURS)) return SS_INIT_SUCCESS /datum/controller/subsystem/ticker/fire() @@ -311,7 +313,11 @@ SUBSYSTEM_DEF(ticker) if(!CONFIG_GET(flag/no_intercept_report)) GLOB.communications_controller.queue_roundstart_report() // Queue admin logout report - addtimer(CALLBACK(src, PROC_REF(display_roundstart_logout_report)), ROUNDSTART_LOGOUT_REPORT_TIME) + var/roundstart_logout_timer = CONFIG_GET(number/roundstart_logout_report_time_average) + var/roundstart_report_variance = CONFIG_GET(number/roundstart_logout_report_time_variance) + var/randomized_callback_timer = rand((roundstart_logout_timer - roundstart_report_variance), (roundstart_logout_timer + roundstart_report_variance)) + addtimer(CALLBACK(src, PROC_REF(display_roundstart_logout_report)), randomized_callback_timer) + GLOB.logout_timer_set = randomized_callback_timer // Queue suicide slot handling if(CONFIG_GET(flag/reopen_roundstart_suicide_roles)) var/delay = (CONFIG_GET(number/reopen_roundstart_suicide_roles_delay) * 1 SECONDS) || 4 MINUTES @@ -365,6 +371,7 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/display_roundstart_logout_report() var/list/msg = list("[span_boldnotice("Roundstart logout report")]\n\n") + for(var/i in GLOB.mob_living_list) var/mob/living/L = i var/mob/living/carbon/C = L @@ -377,7 +384,7 @@ SUBSYSTEM_DEF(ticker) if(L.ckey && L.client) var/failed = FALSE - if(L.client.inactivity >= ROUNDSTART_LOGOUT_AFK_THRESHOLD) //Connected, but inactive (alt+tabbed or something) + if(L.client.inactivity >= GLOB.logout_timer_set) //Connected, but inactive (alt+tabbed or something) msg += "[L.name] ([L.key]), the [L.job] (Connected, Inactive)\n" failed = TRUE //AFK client if(!failed && L.stat) @@ -408,6 +415,8 @@ SUBSYSTEM_DEF(ticker) msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] ([span_bolddanger("Ghosted")])\n" continue //Ghosted while alive + msg += "[span_boldnotice("Roundstart logout reported at: [DisplayTimeText(GLOB.logout_timer_set)]")]\n" + var/concatenated_message = msg.Join() log_admin(concatenated_message) to_chat(GLOB.admins, concatenated_message) diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 2b2d9393287a..20fe4eb47b60 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -55,7 +55,7 @@ SUBSYSTEM_DEF(timer) bucket_resolution = world.tick_lag /datum/controller/subsystem/timer/stat_entry(msg) - msg = "B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)] RST:[bucket_reset_count]" + msg = "\n B:[bucket_count] P:[length(second_queue)] H:[length(hashes)] C:[length(clienttime_timers)] S:[length(timer_id_dict)] RST:[bucket_reset_count]" return ..() /datum/controller/subsystem/timer/proc/dump_timer_buckets(full = TRUE) diff --git a/code/controllers/subsystem/tts.dm b/code/controllers/subsystem/tts.dm index 89959374a3c0..2d215a8bf26c 100644 --- a/code/controllers/subsystem/tts.dm +++ b/code/controllers/subsystem/tts.dm @@ -45,7 +45,7 @@ SUBSYSTEM_DEF(tts) return ..() /datum/controller/subsystem/tts/stat_entry(msg) - msg = "Active:[length(in_process_http_messages)]|Standby:[length(queued_http_messages?.L)]|Avg:[average_tts_messages_time]" + msg = "\n Active:[length(in_process_http_messages)]|Standby:[length(queued_http_messages?.L)]|Avg:[average_tts_messages_time]" return ..() /proc/cmp_word_length_asc(datum/tts_request/a, datum/tts_request/b) diff --git a/code/controllers/subsystem/unplanned_controllers.dm b/code/controllers/subsystem/unplanned_controllers.dm index a53061aa504e..49fbcb2e83b5 100644 --- a/code/controllers/subsystem/unplanned_controllers.dm +++ b/code/controllers/subsystem/unplanned_controllers.dm @@ -23,7 +23,7 @@ SUBSYSTEM_DEF(unplanned_controllers) return ..() /datum/controller/subsystem/unplanned_controllers/stat_entry(msg) - msg = "Planning AIs:[length(GLOB.unplanned_controllers[target_status])]" + msg = "\n Planning AIs:[length(GLOB.unplanned_controllers[target_status])]" return ..() /datum/controller/subsystem/unplanned_controllers/fire(resumed) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 5dd3f537bfc2..776c787f0a4a 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -461,7 +461,7 @@ SUBSYSTEM_DEF(vote) /datum/action/vote/IsAvailable(feedback = FALSE) return TRUE // Democracy is always available to the free people -/datum/action/vote/Trigger(trigger_flags) +/datum/action/vote/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/controllers/subsystem/wardrobe.dm b/code/controllers/subsystem/wardrobe.dm index 55288bc025ac..2593595bdf63 100644 --- a/code/controllers/subsystem/wardrobe.dm +++ b/code/controllers/subsystem/wardrobe.dm @@ -66,10 +66,9 @@ SUBSYSTEM_DEF(wardrobe) /datum/controller/subsystem/wardrobe/stat_entry(msg) var/total_provided = max(stock_hit + stock_miss, 1) var/current_max_store = (one_go_master * cache_intensity) + (overflow_lienency * length(canon_minimum)) - msg += " P:[length(canon_minimum)] Q:[length(order_list)] S:[length(preloaded_stock)] I:[cache_intensity] O:[overflow_lienency]" - msg += " H:[stock_hit] M:[stock_miss] T:[total_provided] H/T:[PERCENT(stock_hit / total_provided)]% M/T:[PERCENT(stock_miss / total_provided)]%" - msg += " MAX:[current_max_store]" - msg += " ID:[inspect_delay] NI:[last_inspect_time + inspect_delay]" + msg += "\n P:[length(canon_minimum)] Q:[length(order_list)] S:[length(preloaded_stock)] I:[cache_intensity] O:[overflow_lienency] MAX:[current_max_store]" + msg += "\n H:[stock_hit] M:[stock_miss] T:[total_provided] H/T:[PERCENT(stock_hit / total_provided)]% M/T:[PERCENT(stock_miss / total_provided)]%" + msg += "\n ID:[inspect_delay] NI:[last_inspect_time + inspect_delay]" return ..() /datum/controller/subsystem/wardrobe/fire(resumed=FALSE) diff --git a/code/datums/achievements/admin_panel.dm b/code/datums/achievements/admin_panel.dm new file mode 100644 index 000000000000..12c862e63aff --- /dev/null +++ b/code/datums/achievements/admin_panel.dm @@ -0,0 +1,73 @@ +// Panel for achievement management +/datum/achievement_admin_panel + var/list/orphaned_keys + +/datum/achievement_admin_panel/proc/reload_data() + if(!SSachievements.achievements_enabled) + return + orphaned_keys = SSachievements.get_orphaned_keys() + +/datum/achievement_admin_panel/ui_data() + . = list() + var/list/orphaned_only = list() + var/list/archived_only = list() + for(var/key in orphaned_keys) + if(orphaned_keys[key] == ACHIEVEMENT_ARCHIVED_VERSION) + archived_only += key + else + orphaned_only += key + .["orphaned_keys"] = orphaned_only + .["archived_keys"] = archived_only + +/datum/achievement_admin_panel/ui_state(mob/user) + return ADMIN_STATE(R_ADMIN) + +/datum/achievement_admin_panel/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "AchievementsAdminPanel") + ui.open() + +/datum/achievement_admin_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + switch (action) + if("archive") + var/achievement_key = params["key"] + archive_achievement(achievement_key) + reload_data() + return TRUE + if("cleanup_orphan") + var/achievement_key = params["key"] + cleanup_outdated_achievement(achievement_key) + reload_data() + return TRUE + + + +/datum/achievement_admin_panel/proc/cleanup_outdated_achievement(achievement_key) + // ensure key is actually orphaned just in case + if(!(achievement_key in orphaned_keys)) + return + log_admin("[key_name_admin(usr)] has deleted orphaned achievement metadata for key [achievement_key].") + message_admins("[key_name_admin(usr)] has deleted orphaned achievement metadata for key [achievement_key].") + SSdbcore.QuerySelect(list( + SSdbcore.NewQuery("DELETE FROM [format_table_name("achievement_metadata")] WHERE achievement_key = :key", list("key" = achievement_key)), + SSdbcore.NewQuery("DELETE FROM [format_table_name("achievements")] WHERE achievement_key = :key", list("key" = achievement_key)), + ), warn = TRUE, qdel = TRUE) + +/datum/achievement_admin_panel/proc/archive_achievement(achievement_key) + // ensure key is actually orphaned just in case + if(!(achievement_key in orphaned_keys)) + return + log_admin("[key_name_admin(usr)] has archived orphaned achievement metadata for key [achievement_key].") + message_admins("[key_name_admin(usr)] has archived orphaned achievement metadata for key [achievement_key].") + SSdbcore.QuerySelect(list( + SSdbcore.NewQuery("UPDATE [format_table_name("achievement_metadata")] SET achievement_version = :version WHERE achievement_key = :key", list("key" = achievement_key, "version" = ACHIEVEMENT_ARCHIVED_VERSION)), + ), warn = TRUE, qdel = TRUE) + +ADMIN_VERB(achievements_cleanup, R_ADMIN, "Achievements Admin Panel", "View achievements management panel.", ADMIN_CATEGORY_MAIN) + var/datum/achievement_admin_panel/panel = new /datum/achievement_admin_panel() + panel.reload_data() + panel.ui_interact(user.mob) diff --git a/code/datums/achievements/mafia_achievements.dm b/code/datums/achievements/mafia_achievements.dm index 31462f7a0ce2..22c911305cce 100644 --- a/code/datums/achievements/mafia_achievements.dm +++ b/code/datums/achievements/mafia_achievements.dm @@ -23,10 +23,16 @@ /datum/award/achievement/mafia/chaplain name = "Chaplain Victory" - desc = "Useless... until the one night the thoughtfeeder confidently claims themselves as detective. Mafia's true bullshit detector." + desc = "The curse finally broken." database_id = MAFIA_MEDAL_CHAPLAIN icon_state = "town" +/datum/award/achievement/mafia/coroner + name = "Coroner Victory" + desc = "Useless... until the one night the thoughtfeeder confidently claims themselves as detective. Mafia's true bullshit detector." + database_id = MAFIA_MEDAL_CORONER + icon_state = "town" + /datum/award/achievement/mafia/md name = "Medical Doctor Victory" desc = "Congratulations on learning how to not talk!" diff --git a/code/datums/actions/action.dm b/code/datums/actions/action.dm index 12d46c02e4a3..65c314d4fc97 100644 --- a/code/datums/actions/action.dm +++ b/code/datums/actions/action.dm @@ -162,7 +162,7 @@ /// Actually triggers the effects of the action. /// Called when the on-screen button is clicked, for example. -/datum/action/proc/Trigger(trigger_flags) +/datum/action/proc/Trigger(mob/clicker, trigger_flags) if(!(trigger_flags & TRIGGER_FORCE_AVAILABLE) && !IsAvailable(feedback = TRUE)) return FALSE if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) @@ -432,15 +432,15 @@ /datum/action/proc/is_action_active(atom/movable/screen/movable/action_button/current_button) return FALSE -/datum/action/proc/begin_creating_bind(mob/user) - if(!user != owner) +/datum/action/proc/begin_creating_bind(atom/movable/screen/movable/action_button/current_button, mob/user) + if(!current_button || user != owner) return if(!isnull(full_key)) full_key = null - update_button_status(src) + update_button_status(current_button) return full_key = tgui_input_keycombo(user, "Please bind a key for this action.") - update_button_status(src) + update_button_status(current_button) /datum/action/proc/keydown(mob/source, key, client/client, full_key) SIGNAL_HANDLER diff --git a/code/datums/actions/cooldown_action.dm b/code/datums/actions/cooldown_action.dm index c45fbda9fed5..9f1bd18f29da 100644 --- a/code/datums/actions/cooldown_action.dm +++ b/code/datums/actions/cooldown_action.dm @@ -215,14 +215,14 @@ for(var/datum/action/cooldown/cd_action in owner.actions) cd_action.disable() -/datum/action/cooldown/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/Trigger(mob/clicker, trigger_flags, atom/target) . = ..() if(!.) return FALSE if(!owner) return FALSE - var/mob/user = usr || owner + var/mob/user = clicker || owner // If our cooldown action is a click_to_activate action: // The actual action is activated on whatever the user clicks on - diff --git a/code/datums/actions/innate_action.dm b/code/datums/actions/innate_action.dm index b907ba619579..53899ddf2285 100644 --- a/code/datums/actions/innate_action.dm +++ b/code/datums/actions/innate_action.dm @@ -12,7 +12,7 @@ /// If we're a click action, the text shown on disable var/disable_text -/datum/action/innate/Trigger(trigger_flags) +/datum/action/innate/Trigger(mob/clicker, trigger_flags) if(!..()) return FALSE // We're a click action, trigger just sets it as active or not diff --git a/code/datums/actions/item_action.dm b/code/datums/actions/item_action.dm index e5fa0cf561d8..1de226b68320 100644 --- a/code/datums/actions/item_action.dm +++ b/code/datums/actions/item_action.dm @@ -23,7 +23,7 @@ else qdel(GetComponent(/datum/component/action_item_overlay)) -/datum/action/item_action/Trigger(trigger_flags) +/datum/action/item_action/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return FALSE diff --git a/code/datums/actions/mobs/adjust_vision.dm b/code/datums/actions/mobs/adjust_vision.dm index 009bd7b1c018..4a6270d321b2 100644 --- a/code/datums/actions/mobs/adjust_vision.dm +++ b/code/datums/actions/mobs/adjust_vision.dm @@ -30,7 +30,7 @@ UnregisterSignal(remove_from, COMSIG_MOB_UPDATE_SIGHT) . = ..() -/datum/action/adjust_vision/Trigger(trigger_flags) +/datum/action/adjust_vision/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/datums/actions/mobs/blood_warp.dm b/code/datums/actions/mobs/blood_warp.dm index d65c941f5df4..0cf7f42fd9d5 100644 --- a/code/datums/actions/mobs/blood_warp.dm +++ b/code/datums/actions/mobs/blood_warp.dm @@ -3,7 +3,7 @@ button_icon = 'icons/effects/blood.dmi' button_icon_state = "floor1" desc = "Allows you to teleport to blood at a clicked position." - cooldown_time = 0 + cooldown_time = 0 SECONDS /// The range of turfs to try to jaunt to from around the target var/pick_range = 5 /// The range of turfs if a client is using this ability diff --git a/code/datums/actions/mobs/create_legion_skull.dm b/code/datums/actions/mobs/create_legion_skull.dm index 341ef2d82034..bfd997c5d457 100644 --- a/code/datums/actions/mobs/create_legion_skull.dm +++ b/code/datums/actions/mobs/create_legion_skull.dm @@ -14,6 +14,6 @@ /// Creates a new skull assigned to the owner of this action /datum/action/cooldown/mob_cooldown/create_legion_skull/proc/create(atom/target) - var/mob/living/basic/legion_brood/minion = new(owner.loc) + var/mob/living/basic/mining/legion_brood/minion = new(owner.loc) minion.assign_creator(owner) minion.ai_controller.blackboard[BB_BASIC_MOB_CURRENT_TARGET] = target diff --git a/code/datums/actions/mobs/personality_commune.dm b/code/datums/actions/mobs/personality_commune.dm index 8481d451fb1d..592e675e3c9f 100644 --- a/code/datums/actions/mobs/personality_commune.dm +++ b/code/datums/actions/mobs/personality_commune.dm @@ -22,7 +22,7 @@ return ..() -/datum/action/personality_commune/Trigger(trigger_flags) +/datum/action/personality_commune/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return FALSE diff --git a/code/datums/actions/mobs/transform_weapon.dm b/code/datums/actions/mobs/transform_weapon.dm index b268fac64144..ae6a080d27f3 100644 --- a/code/datums/actions/mobs/transform_weapon.dm +++ b/code/datums/actions/mobs/transform_weapon.dm @@ -18,10 +18,9 @@ /datum/action/cooldown/mob_cooldown/transform_weapon/proc/do_transform(atom/target) if(!istype(owner, /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner)) return - var/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/BDM = owner - var/obj/item/melee/cleaving_saw/miner/miner_saw = BDM.miner_saw - miner_saw.attack_self(owner) - var/saw_open = HAS_TRAIT(miner_saw, TRAIT_TRANSFORM_ACTIVE) - BDM.rapid_melee = saw_open ? 3 : 5 - BDM.icon_state = "miner[saw_open ? "_transformed":""]" - BDM.icon_living = "miner[saw_open ? "_transformed":""]" + var/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/blood_drunk_miner = owner + blood_drunk_miner.miner_saw.attack_self(owner) + var/saw_open = HAS_TRAIT(blood_drunk_miner.miner_saw, TRAIT_TRANSFORM_ACTIVE) + blood_drunk_miner.rapid_melee = saw_open ? 3 : 5 + blood_drunk_miner.icon_state = "miner[saw_open ? "_transformed":""]" + blood_drunk_miner.icon_living = "miner[saw_open ? "_transformed":""]" diff --git a/code/datums/ai/movement/_ai_movement.dm b/code/datums/ai/movement/_ai_movement.dm index 1e27b33b2dbd..7c4df64e6e6e 100644 --- a/code/datums/ai/movement/_ai_movement.dm +++ b/code/datums/ai/movement/_ai_movement.dm @@ -37,6 +37,9 @@ if((controller.ai_traits & STOP_MOVING_WHEN_PULLED) && pawn.pulledby) //Need to store more state. Annoying. return FALSE + if(HAS_TRAIT(pawn, TRAIT_AI_MOVEMENT_HALTED)) + return FALSE + if(!isturf(pawn.loc)) //No moving if not on a turf return FALSE diff --git a/code/datums/beam.dm b/code/datums/beam.dm index c2dd73a5a525..0a044e6b7a56 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -80,13 +80,7 @@ */ /datum/beam/proc/Start() visuals = new beam_type() - visuals.icon = icon - visuals.icon_state = icon_state - visuals.color = beam_color - visuals.vis_flags = VIS_INHERIT_PLANE|VIS_INHERIT_LAYER - visuals.emissive = emissive - visuals.layer = beam_layer - visuals.update_appearance() + set_up_effect(visuals, icon_state) Draw() RegisterSignals(origin, list(COMSIG_MOVABLE_MOVED, COMSIG_QDELETING), PROC_REF(redrawing)) RegisterSignals(target, list(COMSIG_MOVABLE_MOVED, COMSIG_QDELETING), PROC_REF(redrawing)) @@ -146,15 +140,14 @@ var/obj/effect/ebeam/segment = new beam_type(origin_turf, src) elements += segment - //Assign our single visual ebeam to each ebeam's vis_contents //ends are cropped by a transparent box icon of length-N pixel size laid over the visuals obj if(N+32>length) //went past the target, we draw a box of space to cut away from the beam sprite so the icon actually ends at the center of the target sprite - var/icon/II = new(icon, icon_state)//this means we exclude the overshooting object from the visual contents which does mean those visuals don't show up for the final bit of the beam... - II.DrawBox(null,1,(length-N),32,32)//in the future if you want to improve this, remove the drawbox and instead use a 513 filter to cut away at the final object's icon - segment.icon = II + var/icon/terminal_icon = new(icon, icon_state)//this means we exclude the overshooting object from the visual contents which does mean those visuals don't show up for the final bit of the beam... + terminal_icon.DrawBox(null,1,(length-N),32,32)//in the future if you want to improve this, remove the drawbox and instead use a 513 filter to cut away at the final object's icon + segment.icon = terminal_icon segment.color = beam_color else - segment.vis_contents += visuals + set_subsegment_appearance(segment) segment.transform = rot_matrix //Calculate pixel offsets (If necessary) @@ -184,6 +177,50 @@ segment.pixel_y = origin_py + Pixel_y CHECK_TICK +/datum/beam/proc/set_up_effect(obj/effect/ebeam/beam_effect, effect_icon_state) + beam_effect.icon = icon + beam_effect.icon_state = effect_icon_state + beam_effect.color = beam_color + beam_effect.vis_flags = VIS_INHERIT_PLANE|VIS_INHERIT_LAYER + beam_effect.emissive = emissive + beam_effect.layer = beam_layer + beam_effect.update_appearance() + +///sets the sprite of the segment, using the more performant viscontents by default +/datum/beam/proc/set_subsegment_appearance(obj/effect/ebeam/segment) + //Assign our single visual ebeam to each ebeam's vis_contents + segment.vis_contents += visuals + +//for when you don't want each segment to look identital +/datum/beam/varied + //how many variants do we have in addition to the unnumbered state we use as a base icon state and terminal segment + var/icon_state_variants = 1 + +/datum/beam/varied/New( + origin, + target, + icon = 'icons/effects/beam.dmi', + icon_state = "b_beam", + time = INFINITY, + max_distance = INFINITY, + beam_type = /obj/effect/ebeam, + beam_color = null, + emissive = TRUE, + override_origin_pixel_x = null, + override_origin_pixel_y = null, + override_target_pixel_x = null, + override_target_pixel_y = null, + beam_layer = ABOVE_ALL_MOB_LAYER, + icon_state_variants = 1 + ) + . = ..() + + src.icon_state_variants = icon_state_variants + +/datum/beam/varied/set_subsegment_appearance(obj/effect/ebeam/segment) + //we use reall ass icon states here. + set_up_effect(segment, "[icon_state][rand(1, icon_state_variants)]") + /obj/effect/ebeam mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = ABOVE_ALL_MOB_LAYER @@ -298,8 +335,14 @@ override_origin_pixel_y = null, override_target_pixel_x = null, override_target_pixel_y = null, - layer = ABOVE_ALL_MOB_LAYER + layer = ABOVE_ALL_MOB_LAYER, + icon_state_variants = 0, ) - var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type, beam_color, emissive, override_origin_pixel_x, override_origin_pixel_y, override_target_pixel_x, override_target_pixel_y, layer) + var/datum/beam/newbeam + + if(icon_state_variants <= 0) + newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type, beam_color, emissive, override_origin_pixel_x, override_origin_pixel_y, override_target_pixel_x, override_target_pixel_y, layer) + else + newbeam = new /datum/beam/varied(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type, beam_color, emissive, override_origin_pixel_x, override_origin_pixel_y, override_target_pixel_x, override_target_pixel_y, layer, icon_state_variants) INVOKE_ASYNC(newbeam, TYPE_PROC_REF(/datum/beam/, Start)) return newbeam diff --git a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm index 125df2c8961c..f34fa2fa255d 100644 --- a/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm @@ -76,7 +76,7 @@ if(!sprite_datum) CRASH("Trying to call get_image() on [type] while it didn't have a sprite_datum. This shouldn't happen, report it as soon as possible.") - var/gender = (limb?.limb_gender == FEMALE) ? "f" : "m" + var/gender = limb?.limb_gender || "m" var/list/icon_state_builder = list() icon_state_builder += sprite_datum.gender_specific ? gender : "m" //Male is default because sprite accessories are so ancient they predate the concept of not hardcoding gender icon_state_builder += feature_key diff --git a/code/datums/brain_damage/creepy_trauma.dm b/code/datums/brain_damage/creepy_trauma.dm index 3e3c4bd61532..99cbaab630d0 100644 --- a/code/datums/brain_damage/creepy_trauma.dm +++ b/code/datums/brain_damage/creepy_trauma.dm @@ -12,8 +12,8 @@ var/datum/antagonist/obsessed/antagonist var/viewing = FALSE //it's a lot better to store if the owner is watching the obsession than checking it twice between two procs - var/total_time_creeping = 0 //just for round end fun - var/time_spent_away = 0 + var/total_time_creeping = 0 SECONDS //just for round end fun + var/time_spent_away = 0 SECONDS var/obsession_hug_count = 0 /datum/brain_trauma/special/obsessed/on_gain() @@ -50,15 +50,15 @@ if(viewing) owner.add_mood_event("creeping", /datum/mood_event/creeping, obsession.name) total_time_creeping += seconds_per_tick SECONDS - time_spent_away = 0 + time_spent_away = 0 SECONDS if(attachedobsessedobj)//if an objective needs to tick down, we can do that since traumas coexist with the antagonist datum attachedobsessedobj.timer -= seconds_per_tick SECONDS //mob subsystem ticks every 2 seconds(?), remove 20 deciseconds from the timer. sure, that makes sense. else out_of_view() /datum/brain_trauma/special/obsessed/proc/out_of_view() - time_spent_away += 20 - if(time_spent_away > 1800) //3 minutes + time_spent_away += 2 SECONDS + if(time_spent_away > 3 MINUTES) //3 minutes owner.add_mood_event("creeping", /datum/mood_event/notcreepingsevere, obsession.name) else owner.add_mood_event("creeping", /datum/mood_event/notcreeping, obsession.name) diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 449b0ec06574..617f590e5fbd 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -223,7 +223,6 @@ /mob/eye/imaginary_friend/send_speech(message, range = IMAGINARY_FRIEND_SPEECH_RANGE, obj/source = src, bubble_type = bubble_icon, list/spans = list(), datum/language/message_language = null, list/message_mods = list(), forced = null) message = get_message_mods(message, message_mods) - message = capitalize(message) if(message_mods[RADIO_EXTENSION] == MODE_ADMIN) SSadmin_verbs.dynamic_invoke_verb(client, /datum/admin_verb/cmd_admin_say, message) @@ -236,6 +235,9 @@ if(check_emote(message, forced)) return + message = check_for_custom_say_emote(message, message_mods) + message = capitalize(message) + if(message_mods[MODE_SING]) var/randomnote = pick("♩", "♪", "♫") message = "[randomnote] [capitalize(message)] [randomnote]" @@ -246,21 +248,17 @@ var/eavesdrop_range = 0 - if (message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) - message = message_mods[MODE_CUSTOM_SAY_EMOTE] - log_message(message, LOG_RADIO_EMOTE) - else + if(!(message_mods[MODE_CUSTOM_SAY_ERASE_INPUT])) if(message_mods[WHISPER_MODE] == MODE_WHISPER) - log_talk(message, LOG_WHISPER, tag="imaginary friend", forced_by = forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) spans |= SPAN_ITALICS eavesdrop_range = EAVESDROP_EXTRA_RANGE range = WHISPER_RANGE - else - log_talk(message, LOG_SAY, tag="imaginary friend", forced_by = forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) - var/quoted_message = say_quote(apply_message_emphasis(message), spans, message_mods) - var/rendered = "[span_name("[name]")] [quoted_message]" - var/dead_rendered = "[span_name("[name] (Imaginary friend of [owner])")] [quoted_message]" + log_sayverb_talk(message, message_mods, tag = "imaginary friend", forced_by = forced) + + var/messagepart = generate_messagepart(message, spans, message_mods) + var/rendered = "[span_name("[name]")] [messagepart]" + var/dead_rendered = "[span_name("[name] (Imaginary friend of [owner])")] [messagepart]" var/language = message_language || owner.get_selected_language() Hear(rendered, src, language, message, null, null, null, spans, message_mods) // We always hear what we say diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index b2062ca043b0..f1d58ccb3421 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -15,6 +15,8 @@ var/poll_role = "split personality" ///How long do we give ghosts to respond? var/poll_time = 20 SECONDS + ///The stranger_backseat does not have temp body component so we will ghostize() on_lose + var/temp_component = FALSE /datum/brain_trauma/severe/split_personality/on_gain() var/mob/living/brain_owner = owner @@ -41,7 +43,7 @@ /// Attempts to get a ghost to play the personality /datum/brain_trauma/severe/split_personality/proc/get_ghost() var/mob/chosen_one = SSpolling.poll_ghosts_for_target( - question = "Do you want to play as [span_danger("[owner.real_name]'s")] [span_notice(poll_role)]?", + question = "Do you want to play as [span_danger("[owner.real_name]'s")] [span_notice(poll_role)]?. You will be able to return to your original body after.", check_jobban = ROLE_PAI, poll_time = poll_time, checked_target = owner, @@ -56,11 +58,26 @@ if(isnull(ghost)) qdel(src) return + if(ghost.mind.current)// if they previous had a body preserve them else that means they never had one or it was destroyed so assign ckey like normal + stranger_backseat.AddComponent( \ + /datum/component/temporary_body, \ + old_mind = ghost.mind, \ + old_body = ghost.mind.current, \ + ) + temp_component = TRUE + stranger_backseat.PossessByPlayer(ghost.ckey) stranger_backseat.log_message("became [key_name(owner)]'s split personality.", LOG_GAME) message_admins("[ADMIN_LOOKUPFLW(stranger_backseat)] became [ADMIN_LOOKUPFLW(owner)]'s split personality.") + owner_backseat.AddComponent( \ + /datum/component/temporary_body, \ + old_mind = owner.mind, \ + old_body = owner, \ + perma_body_attached = TRUE, \ + ) + /datum/brain_trauma/severe/split_personality/on_life(seconds_per_tick, times_fired) if(owner.stat == DEAD) @@ -72,72 +89,33 @@ ..() /datum/brain_trauma/severe/split_personality/on_lose() - if(current_controller != OWNER) //it would be funny to cure a guy only to be left with the other personality, but it seems too cruel - switch_personalities(TRUE) + // qdel the mob with the temporary component will ensure the original mind will go back into the body and vice versa for the stranger mind + if(!temp_component) + stranger_backseat?.ghostize() QDEL_NULL(stranger_backseat) QDEL_NULL(owner_backseat) ..() - +// Changes who controls the body /datum/brain_trauma/severe/split_personality/proc/switch_personalities(reset_to_owner = FALSE) if(QDELETED(owner) || QDELETED(stranger_backseat) || QDELETED(owner_backseat)) return - var/mob/living/split_personality/current_backseat - var/mob/living/split_personality/new_backseat if(current_controller == STRANGER || reset_to_owner) - current_backseat = owner_backseat - new_backseat = stranger_backseat - else - current_backseat = stranger_backseat - new_backseat = owner_backseat - - if(!current_backseat.client) //Make sure we never switch to a logged off mob. - return - - current_backseat.log_message("assumed control of [key_name(owner)] due to [src]. (Original owner: [current_controller == OWNER ? owner.key : current_backseat.key])", LOG_GAME) - to_chat(owner, span_userdanger("You feel your control being taken away... your other personality is in charge now!")) - to_chat(current_backseat, span_userdanger("You manage to take control of your body!")) - - //Body to backseat - - var/h2b_id = owner.computer_id - var/h2b_ip= owner.lastKnownIP - owner.computer_id = null - owner.lastKnownIP = null - - new_backseat.ckey = owner.ckey - - new_backseat.name = owner.name + //back seat to body and vice versa + stranger_backseat.PossessByPlayer(owner.ckey) + //logging + owner_backseat.log_message("assumed control of [key_name(owner)] due to [src]. (Original owner: [stranger_backseat.key])", LOG_GAME) + owner.PossessByPlayer(owner_backseat.ckey) + to_chat(stranger_backseat, span_userdanger("You feel your control being taken away... your other personality is in charge now!")) - if(owner.mind) - new_backseat.mind = owner.mind - - if(!new_backseat.computer_id) - new_backseat.computer_id = h2b_id - - if(!new_backseat.lastKnownIP) - new_backseat.lastKnownIP = h2b_ip - - if(reset_to_owner && new_backseat.mind) - new_backseat.ghostize(FALSE) - - //Backseat to body - - var/s2h_id = current_backseat.computer_id - var/s2h_ip= current_backseat.lastKnownIP - current_backseat.computer_id = null - current_backseat.lastKnownIP = null - - owner.ckey = current_backseat.ckey - owner.mind = current_backseat.mind - - if(!owner.computer_id) - owner.computer_id = s2h_id - - if(!owner.lastKnownIP) - owner.lastKnownIP = s2h_ip + else + owner_backseat.PossessByPlayer(owner.ckey) + stranger_backseat.log_message("assumed control of [key_name(owner)] due to [src]. (Original owner: [owner_backseat.key])", LOG_GAME) + owner.PossessByPlayer(stranger_backseat.ckey) + to_chat(owner_backseat, span_userdanger("You feel your control being taken away... your other personality is in charge now!")) + to_chat(owner, span_userdanger("You manage to take control of your body!")) current_controller = !current_controller @@ -163,11 +141,6 @@ trauma.switch_personalities() qdel(trauma) - //if one of the two ghosts, the other one stays permanently - if(!body.client && trauma.initialized) - trauma.switch_personalities() - qdel(trauma) - ..() /mob/living/split_personality/Login() @@ -221,7 +194,7 @@ /datum/brain_trauma/severe/split_personality/brainwashing/get_ghost() set waitfor = FALSE - var/mob/chosen_one = SSpolling.poll_ghosts_for_target("Do you want to play as [span_danger("[owner.real_name]'s")] brainwashed mind?", poll_time = 7.5 SECONDS, checked_target = stranger_backseat, alert_pic = owner, role_name_text = "brainwashed mind") + var/mob/chosen_one = SSpolling.poll_ghosts_for_target("Do you want to play as [span_danger("[owner.real_name]'s")] brainwashed mind? You will be able to return to your original body after.", poll_time = 7.5 SECONDS, checked_target = stranger_backseat, alert_pic = owner, role_name_text = "brainwashed mind") if(chosen_one) stranger_backseat.PossessByPlayer(chosen_one.ckey) else diff --git a/code/datums/components/alternative_sharpness.dm b/code/datums/components/alternative_sharpness.dm index 5709103d1ebf..632ca25c1002 100644 --- a/code/datums/components/alternative_sharpness.dm +++ b/code/datums/components/alternative_sharpness.dm @@ -12,12 +12,15 @@ var/alt_attacking = FALSE /// Trait required for us to trigger var/required_trait = null + /// Hitsound that overrides our current hitsound if defined. + var/alt_hitsound = null // Old values before we overrode them var/base_continuous = null var/base_simple = null var/base_sharpness = NONE + var/base_hitsound = null -/datum/component/alternative_sharpness/Initialize(alt_sharpness, verbs_continuous = null, verbs_simple = null, force_mod = 0, required_trait = null) +/datum/component/alternative_sharpness/Initialize(alt_sharpness, verbs_continuous = null, verbs_simple = null, force_mod = 0, required_trait = null, alt_hitsound = null,) if (!isitem(parent)) return COMPONENT_INCOMPATIBLE var/obj/item/weapon = parent @@ -26,11 +29,21 @@ src.verbs_simple = verbs_simple src.force_mod = force_mod src.required_trait = required_trait + src.alt_hitsound = alt_hitsound base_continuous = weapon.attack_verb_continuous base_simple = weapon.attack_verb_simple + base_hitsound = weapon.hitsound /datum/component/alternative_sharpness/RegisterWithParent() RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK_SECONDARY, PROC_REF(on_secondary_attack)) + RegisterSignal(parent, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) + +/datum/component/alternative_sharpness/UnregisterFromParent() + . = ..() + UnregisterSignal(parent, list( + COMSIG_ITEM_PRE_ATTACK_SECONDARY, + COMSIG_TRANSFORMING_ON_TRANSFORM, + )) /datum/component/alternative_sharpness/proc/on_secondary_attack(obj/item/source, atom/target, mob/user, list/modifiers, list/attack_modifiers) SIGNAL_HANDLER @@ -48,6 +61,9 @@ if (!isnull(verbs_simple)) source.attack_verb_simple = verbs_simple + if(!isnull(alt_hitsound)) + source.hitsound = alt_hitsound + // I absolutely despise this but this is geniunely the best way to do this without creating and hooking up to a dozen signals and still risking failure edge cases addtimer(CALLBACK(src, PROC_REF(disable_alt_attack)), 1) @@ -57,3 +73,13 @@ weapon.attack_verb_continuous = base_continuous weapon.attack_verb_simple = base_simple weapon.sharpness = base_sharpness + weapon.hitsound = base_hitsound + +// If our weapon is transforming, we listen for the transformation to adjust our base_hitsound as needed so we're not caught out by the callback adding inappropriate values. +/datum/component/alternative_sharpness/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + base_continuous = source.attack_verb_continuous + base_simple = source.attack_verb_simple + base_sharpness = source.sharpness + base_hitsound = source.hitsound diff --git a/code/datums/components/anti_magic.dm b/code/datums/components/anti_magic.dm index a96ad73e93dd..29855ac6c476 100644 --- a/code/datums/components/anti_magic.dm +++ b/code/datums/components/anti_magic.dm @@ -7,10 +7,12 @@ var/charges /// The inventory slot the object must be located at in order to activate var/inventory_flags - /// The callback invoked when we have been drained a antimagic charge - var/datum/callback/drain_antimagic + /// The callback invoked when we block magic + var/datum/callback/block_magic /// The callback invoked when twe have been depleted of all charges var/datum/callback/expiration + /// Callback to invoke to see if we can block magic + var/datum/callback/check_blocking /// Whether we should, on equipping, alert the caster that this item can block any of their spells /// This changes between true and false on equip and drop, don't set it outright to something var/alert_caster_on_equip = TRUE @@ -25,8 +27,9 @@ * * antimagic_flags (optional) A bitflag with the types of magic resistance on the object * * charges (optional) The amount of times the object can protect the user from magic * * inventory_flags (optional) The inventory slot the object must be located at in order to activate - * * drain_antimagic (optional) The proc that is triggered when an object has been drained a antimagic charge + * * block_magic (optional) The proc that is triggered when an object blocks magic * * expiration (optional) The proc that is triggered when the object is depleted of charges + * * check_blocking (optional) The proc that is triggered to check if we can block magic * * * antimagic bitflags: (see code/__DEFINES/magic.dm) * * MAGIC_RESISTANCE - Default magic resistance that blocks normal magic (wizard, spells, staffs) @@ -37,8 +40,9 @@ antimagic_flags = MAGIC_RESISTANCE, charges = INFINITY, inventory_flags = ALL, - datum/callback/drain_antimagic, + datum/callback/block_magic, datum/callback/expiration, + datum/callback/check_blocking, ) @@ -67,11 +71,12 @@ src.antimagic_flags = antimagic_flags src.charges = charges src.inventory_flags = inventory_flags - src.drain_antimagic = drain_antimagic + src.block_magic = block_magic src.expiration = expiration + src.check_blocking = check_blocking /datum/component/anti_magic/Destroy(force) - drain_antimagic = null + block_magic = null expiration = null return ..() @@ -124,6 +129,9 @@ /datum/component/anti_magic/proc/block_receiving_magic(mob/living/carbon/source, casted_magic_flags, charge_cost, list/antimagic_sources) SIGNAL_HANDLER + if(check_blocking && !check_blocking.Invoke()) + return NONE + // We do not block this type of magic, good day if(!(casted_magic_flags & antimagic_flags)) return NONE @@ -135,8 +143,8 @@ // Block success! Add this parent to the list of antimagic sources antimagic_sources += parent + block_magic?.Invoke(source, parent) if((charges != INFINITY) && charge_cost > 0) - drain_antimagic?.Invoke(source, parent) charges -= charge_cost if(charges <= 0) expiration?.Invoke(source, parent) diff --git a/code/datums/components/aquarium.dm b/code/datums/components/aquarium.dm index 576852a471ef..fd442427bbb9 100644 --- a/code/datums/components/aquarium.dm +++ b/code/datums/components/aquarium.dm @@ -617,7 +617,7 @@ "fish_happiness" = fish.get_happiness_value(), "fish_icon" = fish::icon, "fish_icon_state" = fish::icon_state, - "fish_health" = fish.health, + "fish_alive" = fish.status == FISH_ALIVE, )) continue .["propData"] += list(list( diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm index 5d54bbd81703..a7296eb1202c 100644 --- a/code/datums/components/bakeable.dm +++ b/code/datums/components/bakeable.dm @@ -29,6 +29,18 @@ if(positive_result) ADD_TRAIT(parent, TRAIT_BAKEABLE, REF(src)) + + var/obj/item/item_target = parent + if(!PERFORM_ALL_TESTS(focus_only/check_materials_when_processed) || !positive_result || !item_target.custom_materials) + return + + var/atom/result = new bake_result + if(!item_target.compare_materials(result)) + var/warning = "custom_materials of [result.type] when baked compared to just spawned don't match" + var/what_it_should_be = item_target.get_materials_english_list() + stack_trace("[warning]. custom_materials should be [what_it_should_be].") + qdel(result) + // Inherit the new values passed to the component /datum/component/bakeable/InheritComponent(datum/component/bakeable/new_comp, original, bake_result, required_bake_time, positive_result, use_large_steam_sprite) if(!original) @@ -113,6 +125,7 @@ ignored_mobs = asomnia_hadders, ) SEND_SIGNAL(parent, COMSIG_ITEM_BAKED, baked_result) + SEND_SIGNAL(baked_result, COMSIG_ITEM_BAKED_RESULT, parent) qdel(parent) ///Gives info about the items baking status so you can see if its almost done diff --git a/code/datums/components/blob_minion.dm b/code/datums/components/blob_minion.dm index a17fd4b4a15d..75eee8410d25 100644 --- a/code/datums/components/blob_minion.dm +++ b/code/datums/components/blob_minion.dm @@ -172,11 +172,17 @@ /// We only speak telepathically to blobs /datum/component/blob_minion/proc/on_try_speech(mob/living/minion, message, ignore_spam, forced) SIGNAL_HANDLER - minion.log_talk(message, LOG_SAY, tag = "blob hivemind telepathy") - var/spanned_message = minion.say_quote(message) + INVOKE_ASYNC(src, PROC_REF(send_blob_telepathy), minion, message) + return COMPONENT_CANNOT_SPEAK + +/datum/component/blob_minion/proc/send_blob_telepathy(mob/living/minion, message) + var/list/message_mods = list() + // Note: check_for_custom_say_emote can sleep. + var/adjusted_message = minion.check_for_custom_say_emote(message, message_mods) + minion.log_sayverb_talk(message, message_mods, tag = "blob hivemind telepathy") + var/spanned_message = minion.generate_messagepart(adjusted_message, message_mods = message_mods) var/rendered = span_blob("\[Blob Telepathy\] [minion.real_name] [spanned_message]") relay_to_list_and_observers(rendered, GLOB.blob_telepathy_mobs, minion, MESSAGE_TYPE_RADIO) - return COMPONENT_CANNOT_SPEAK /// Called when a blob minion is transformed into something else, hopefully a spore into a zombie /datum/component/blob_minion/proc/on_transformed(mob/living/minion, mob/living/replacement) diff --git a/code/datums/components/bullet_intercepting.dm b/code/datums/components/bullet_intercepting.dm index f327cae95430..53a2874f6d65 100644 --- a/code/datums/components/bullet_intercepting.dm +++ b/code/datums/components/bullet_intercepting.dm @@ -4,8 +4,8 @@ /datum/component/bullet_intercepting /// Chance to intercept a projectile var/block_chance - /// Type of bullet to intercept - var/block_type + /// List of types of bullets to intercept + var/list/block_type /// Slots in which effect can be active var/active_slots /// Person currently wearing us @@ -14,8 +14,10 @@ var/datum/callback/on_intercepted /// Number of things we can block before we delete ourself (stop being able to block) var/block_charges = INFINITY + /// Callback to check if the object is currently able to block + var/datum/callback/is_blocking_check -/datum/component/bullet_intercepting/Initialize(block_chance = 2, block_type = BULLET, active_slots, datum/callback/on_intercepted, block_charges = INFINITY) +/datum/component/bullet_intercepting/Initialize(block_chance = 2, list/block_type = list(BULLET), active_slots, datum/callback/on_intercepted, block_charges = INFINITY, datum/callback/is_blocking_check = null) . = ..() if (!isitem(parent)) return COMPONENT_INCOMPATIBLE @@ -24,6 +26,7 @@ src.active_slots = active_slots src.on_intercepted = on_intercepted src.block_charges = block_charges + src.is_blocking_check = is_blocking_check RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(on_parent_equipped)) RegisterSignal(parent, COMSIG_ITEM_PRE_UNEQUIP, PROC_REF(on_unequipped)) @@ -58,15 +61,18 @@ /// Called when wearer is shot, check if we're going to block the hit /datum/component/bullet_intercepting/proc/on_wearer_shot(mob/living/victim, obj/projectile/bullet) SIGNAL_HANDLER - if (victim != wearer || victim.stat == DEAD || bullet.armor_flag != block_type) + if(!isnull(is_blocking_check) && !is_blocking_check.Invoke()) return NONE - if (!prob(block_chance)) + if (victim != wearer || victim.stat == DEAD || !prob(block_chance)) return NONE - on_intercepted?.Invoke(victim, bullet) - block_charges-- - if (block_charges <= 0) - qdel(src) - return PROJECTILE_INTERRUPT_HIT + for (var/blocktype in block_type) + if (bullet.armor_flag == blocktype) + on_intercepted?.Invoke(victim, bullet) + block_charges-- + if (block_charges <= 0) + qdel(src) + return PROJECTILE_INTERRUPT_HIT + return NONE /// Called when wearer is deleted, stop tracking them /datum/component/bullet_intercepting/proc/on_wearer_deleted() diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 45effde83b00..7ce66b86c1ac 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -114,22 +114,13 @@ if(HAS_TRAIT(thing_to_check, TRAIT_CHASM_STOPPER)) return CHASM_NOT_DROPPING + if(!ismob(dropped_thing)) + return CHASM_DROPPING + //Flies right over the chasm - if(ismob(dropped_thing)) - var/mob/M = dropped_thing - if(M.buckled) //middle statement to prevent infinite loops just in case! - var/mob/buckled_to = M.buckled - if((!ismob(M.buckled) || (buckled_to.buckled != M)) && !droppable(M.buckled)) - return CHASM_REGISTER_SIGNALS - if(ishuman(dropped_thing)) - var/mob/living/carbon/human/victim = dropped_thing - if(istype(victim.belt, /obj/item/wormhole_jaunter)) - var/obj/item/wormhole_jaunter/jaunter = victim.belt - var/turf/chasm = get_turf(victim) - var/fall_into_chasm = jaunter.chasm_react(victim) - if(!fall_into_chasm) - chasm.visible_message(span_boldwarning("[victim] falls into the [chasm]!")) //To freak out any bystanders - return fall_into_chasm ? CHASM_DROPPING : CHASM_NOT_DROPPING + var/mob/victim = dropped_thing + if(victim.buckled && droppable(victim.buckled) != CHASM_DROPPING) + return CHASM_REGISTER_SIGNALS return CHASM_DROPPING #undef CHASM_NOT_DROPPING @@ -142,6 +133,7 @@ if(!dropped_thing || !falling_ref?.resolve()) falling_atoms -= falling_ref return + falling_atoms[falling_ref] = (falling_atoms[falling_ref] || 0) + 1 var/turf/below_turf = target_turf var/atom/parent = src.parent @@ -149,6 +141,14 @@ if(falling_atoms[falling_ref] > 1) return // We're already handling this + if(SEND_SIGNAL(dropped_thing, COMSIG_MOVABLE_CHASM_DROPPED, parent) & COMPONENT_NO_CHASM_DROP) + return + + // Free (if possible) and drop all buckled mobs separately, so drivers can escape their doomed vehicle if they're not glued to it + for(var/mob/living/buckled as anything in dropped_thing.buckled_mobs) + dropped_thing.unbuckle_mob(buckled) + drop_stuff(buckled) + if(below_turf) if(HAS_TRAIT(dropped_thing, TRAIT_CHASM_DESTROYED)) qdel(dropped_thing) diff --git a/code/datums/components/crafting/atmospheric.dm b/code/datums/components/crafting/atmospheric.dm index 6bf75e1c8842..0e59d00a7141 100644 --- a/code/datums/components/crafting/atmospheric.dm +++ b/code/datums/components/crafting/atmospheric.dm @@ -39,6 +39,19 @@ blacklist = list(/obj/item/analyzer/ranged) category = CAT_ATMOSPHERIC +/datum/crafting_recipe/portable_wind_turbine + name = "Portable Wind Turbine" + result = /obj/item/portable_wind_turbine + tool_behaviors = list(TOOL_WELDER) + reqs = list( + /obj/item/knife/kitchen = 3, + /obj/item/stack/sheet/plastic = 5, + /obj/item/stack/rods = 8, + /obj/item/stock_parts/servo = 2, + /obj/item/stack/cable_coil = 5, + ) + category = CAT_ATMOSPHERIC + ///abstract path for pipe crafting recipes that set the pipe_type of their results and have other checks as well /datum/crafting_recipe/spec_pipe var/pipe_type diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 14e277f18c34..d8382257d806 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -5,6 +5,9 @@ #define CONTENTS_REAGENTS "reagents" #define CONTENTS_TOOL_BEHAVIOUR "tool_behaviour" +/// The portion of time spent crafting that recipe dependant on the speed of the tools +#define RECIPE_DYNAMIC_TIME_COEFF 0.85 + /datum/component/personal_crafting /// Custom screen_loc for our element var/screen_loc_override @@ -151,7 +154,9 @@ .[CONTENTS_REAGENTS][reagent.type] += reagent.volume else //a reagent container that is empty can also be used as a tool. e.g. glass bottle can be used as a rolling pin if(item.tool_behaviour) - .[CONTENTS_TOOL_BEHAVIOUR] += item.tool_behaviour + var/current_tool_speed = .[CONTENTS_TOOL_BEHAVIOUR][item.tool_behaviour] + if(current_tool_speed < item.toolspeed) + .[CONTENTS_TOOL_BEHAVIOUR][item.tool_behaviour] = item.toolspeed else if (ismachinery(object)) LAZYADDASSOCLIST(.[CONTENTS_MACHINERY], object.type, object) else if (isstructure(object)) @@ -217,7 +222,31 @@ //If we're a mob we'll try a do_after; non mobs will instead instantly construct the item if(!(ignored_flags & CRAFT_IGNORE_DO_AFTER)) - if(!do_after(crafter, recipe.time, target = crafter)) + var/recipe_time = recipe.time + var/tools_used = length(recipe.tool_behaviors) + length(recipe.tool_paths) + + // If there's any, the speed of the tools used to craft the recipe influence the time spent crafting it + if(tools_used > 0) + //get the portion of time that's affected by tool speed at all and subtract it from the full recipe time + var/dynamic_recipe_time = recipe.time * RECIPE_DYNAMIC_TIME_COEFF + recipe_time -= dynamic_recipe_time + //Then divide it by the number of tools used in the recipe, and recalculate it. + dynamic_recipe_time /= tools_used + + var/instances = contents[CONTENTS_INSTANCES] + for(var/tool in recipe.tool_paths) + var/best_speed = 10 //failsafe-ish + for(var/obj/item/item as anything in instances) + if(!istype(item, tool) || best_speed < item.toolspeed) + continue + best_speed = item.toolspeed + recipe_time += dynamic_recipe_time * best_speed + + var/found_behaviors = contents[CONTENTS_TOOL_BEHAVIOUR] + for(var/behavior in recipe.tool_behaviors) + recipe_time += found_behaviors[behavior] + + if(!do_after(crafter, round(recipe_time, 0.1 SECONDS), target = crafter)) return "." contents = get_surroundings(crafter, recipe.blacklist) fail_message = perform_all_checks(crafter, recipe, contents, check_tools_last = TRUE) @@ -723,3 +752,4 @@ #undef CONTENTS_STRUCTURES #undef CONTENTS_REAGENTS #undef CONTENTS_TOOL_BEHAVIOUR +#undef RECIPE_DYNAMIC_TIME_COEFF diff --git a/code/datums/components/crafting/equipment.dm b/code/datums/components/crafting/equipment.dm index cc57f4c1641f..84c031afe114 100644 --- a/code/datums/components/crafting/equipment.dm +++ b/code/datums/components/crafting/equipment.dm @@ -151,7 +151,7 @@ /datum/crafting_recipe/flashlight_eyes name = "Flashlight Eyes" result = /obj/item/organ/eyes/robotic/flashlight - time = 10 + time = 1 SECONDS reqs = list( /obj/item/flashlight = 2, /obj/item/restraints/handcuffs/cable = 1 @@ -225,7 +225,7 @@ /datum/crafting_recipe/ghettojetpack name = "Improvised Jetpack" result = /obj/item/tank/jetpack/improvised - time = 30 + time = 3 SECONDS reqs = list( /obj/item/tank/internals/oxygen = 2, /obj/item/extinguisher = 1, @@ -262,7 +262,7 @@ /datum/crafting_recipe/rebar_quiver name = "Rebar Storage Quiver" result = /obj/item/storage/bag/rebar_quiver - time = 10 + time = 1 SECONDS reqs = list( /obj/item/tank/internals/oxygen = 1, /obj/item/stack/cable_coil = 15, @@ -273,7 +273,7 @@ /datum/crafting_recipe/arrow_quiver name = "Archery Quiver" result = /obj/item/storage/bag/quiver/lesser - time = 10 + time = 1 SECONDS reqs = list( /obj/item/stack/sheet/leather = 4, /obj/item/stack/sheet/cardboard = 4 diff --git a/code/datums/components/crafting/guncrafting.dm b/code/datums/components/crafting/guncrafting.dm index 67e84083a5b4..42d21ba12bfc 100644 --- a/code/datums/components/crafting/guncrafting.dm +++ b/code/datums/components/crafting/guncrafting.dm @@ -70,6 +70,7 @@ /obj/item/weaponcrafting/gunkit/tesla name = "tesla cannon parts kit (lethal)" desc = "A suitcase containing the necessary gun parts to construct a tesla cannon around a stabilized flux anomaly. Handle with care." + icon_state = "weaponskit_tesla" /obj/item/weaponcrafting/gunkit/xray name = "x-ray laser gun parts kit (lethal)" diff --git a/code/datums/components/earprotection.dm b/code/datums/components/earprotection.dm index 6dfa7d9568ba..542a1d0c60f3 100644 --- a/code/datums/components/earprotection.dm +++ b/code/datums/components/earprotection.dm @@ -3,10 +3,10 @@ mobtype = /mob/living/carbon proctype = PROC_REF(reducebang) var/reduce_amount = 1 + valid_slots = ITEM_SLOT_EARS | ITEM_SLOT_HEAD -/datum/component/wearertargeting/earprotection/Initialize(valid_slots, reduce_amount = 1) +/datum/component/wearertargeting/earprotection/Initialize(reduce_amount = 1) . = ..() - src.valid_slots = valid_slots if(reduce_amount) src.reduce_amount = reduce_amount diff --git a/code/datums/components/echolocation.dm b/code/datums/components/echolocation.dm index 915b99843ce5..a40c14306290 100644 --- a/code/datums/components/echolocation.dm +++ b/code/datums/components/echolocation.dm @@ -127,7 +127,7 @@ /datum/component/echolocation/proc/show_image(image/input_appearance, atom/input, current_time) var/image/final_image = image(input_appearance) - //final_image.layer += FOV_EFFECT_LAYER + final_image.layer += EFFECTS_LAYER final_image.plane = FULLSCREEN_PLANE final_image.loc = images_are_static ? get_turf(input) : input final_image.dir = input.dir diff --git a/code/datums/components/fearful/effects.dm b/code/datums/components/fearful/effects.dm index a46f922bd5f1..b2b4458cbfa1 100644 --- a/code/datums/components/fearful/effects.dm +++ b/code/datums/components/fearful/effects.dm @@ -108,6 +108,8 @@ var/active_attack = FALSE /// Breath loop used during a panic attack var/datum/looping_sound/breathing/breath_loop + /// Timer that will stop our panic attack + var/panic_end_timer = null /datum/terror_handler/panic/New(mob/living/new_owner, datum/component/fearful/new_component) . = ..() @@ -116,12 +118,13 @@ /datum/terror_handler/panic/Destroy(force) owner.remove_fov_trait(type, FOV_270_DEGREES) QDEL_NULL(breath_loop) + deltimer(panic_end_timer) return ..() /datum/terror_handler/panic/tick(seconds_per_tick, terror_buildup) . = ..() if (owner.stat >= UNCONSCIOUS) - active_attack = FALSE + stop_panic_attack() active = FALSE owner.remove_fov_trait(type, FOV_270_DEGREES) return @@ -154,12 +157,14 @@ owner.emote("gasp") owner.Knockdown(0.5 SECONDS) breath_loop.start() - addtimer(CALLBACK(src, PROC_REF(stop_panic_attack)), rand(3 SECONDS, 5 SECONDS)) + panic_end_timer = addtimer(CALLBACK(src, PROC_REF(stop_panic_attack)), rand(3 SECONDS, 5 SECONDS), TIMER_UNIQUE|TIMER_STOPPABLE) owner.visible_message(span_warning("[owner] drops to the floor for a moment, clutching their chest."), span_alert("Your heart lurches in your chest. You can't take much more of this!")) return PANIC_ATTACK_TERROR_AMOUNT /datum/terror_handler/panic/proc/stop_panic_attack() breath_loop.stop() active_attack = FALSE + deltimer(panic_end_timer) + panic_end_timer = null #undef FEAR_SCALING diff --git a/code/datums/components/fish_growth.dm b/code/datums/components/fish_growth.dm index f4c835045e88..380a82912b85 100644 --- a/code/datums/components/fish_growth.dm +++ b/code/datums/components/fish_growth.dm @@ -72,8 +72,7 @@ var/obj/item/fish/fishie = result fishie.breeding_wait = source.breeding_wait fishie.last_feeding = source.last_feeding - var/health_percent = source.health / initial(source.health) - fishie.adjust_health(fishie.health * health_percent) + fishie.update_integrity(fishie.max_integrity * source.get_integrity_percentage()) else result = new result_type (location) if(location != source.loc) diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 21bb8a49f97e..8a9255d3a188 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -327,7 +327,7 @@ Behavior that's still missing from this component that original food items had t var/volume = ROUND_UP(original_atom.reagents.maximum_volume / chosen_processing_option[TOOL_PROCESSING_AMOUNT]) this_food.create_reagents(volume, this_food.reagents?.flags) - original_atom.reagents.copy_to(this_food, original_atom.reagents.total_volume / chosen_processing_option[TOOL_PROCESSING_AMOUNT], 1) + original_atom.reagents.trans_to(this_food, original_atom.reagents.total_volume / chosen_processing_option[TOOL_PROCESSING_AMOUNT], copy_only = TRUE) if(original_atom.name != initial(original_atom.name)) this_food.name = "slice of [original_atom.name]" diff --git a/code/datums/components/fullauto.dm b/code/datums/components/fullauto.dm index 61a216666770..bf19c5b16727 100644 --- a/code/datums/components/fullauto.dm +++ b/code/datums/components/fullauto.dm @@ -28,9 +28,12 @@ var/windup_spindown = 3 SECONDS ///Timer for tracking the spindown reset timings var/timerid + ///Looping sound while firing. + var/datum/looping_sound/autofire_sound_loop COOLDOWN_DECLARE(next_shot_cd) -/datum/component/automatic_fire/Initialize(autofire_shot_delay, windup_autofire, windup_autofire_reduction_multiplier, windup_autofire_cap, windup_spindown, allow_akimbo = TRUE) + +/datum/component/automatic_fire/Initialize(autofire_shot_delay, windup_autofire, windup_autofire_reduction_multiplier, windup_autofire_cap, windup_spindown, allow_akimbo = TRUE, firing_sound_loop) . = ..() if(!isgun(parent)) return COMPONENT_INCOMPATIBLE @@ -48,8 +51,12 @@ var/mob/user = gun.loc wake_up(src, user) + if(firing_sound_loop) + autofire_sound_loop = new firing_sound_loop(parent) + /datum/component/automatic_fire/Destroy() + QDEL_NULL(autofire_sound_loop) autofire_off() return ..() @@ -191,6 +198,8 @@ START_PROCESSING(SSprojectiles, src) RegisterSignal(clicker, COMSIG_CLIENT_MOUSEDRAG, PROC_REF(on_mouse_drag)) + if(autofire_sound_loop) + autofire_sound_loop.start(shooter) /datum/component/automatic_fire/proc/on_mouse_up(datum/source, atom/object, turf/location, control, params) SIGNAL_HANDLER @@ -217,6 +226,9 @@ target_loc = null mouse_parameters = null + if(autofire_sound_loop) + autofire_sound_loop.stop() + /datum/component/automatic_fire/proc/on_mouse_drag(client/source, atom/src_object, atom/over_object, turf/src_location, turf/over_location, src_control, over_control, params) SIGNAL_HANDLER if(isnull(over_location)) //This happens when the mouse is over an inventory or screen object, or on entering deep darkness, for example. @@ -238,7 +250,6 @@ target_loc = get_turf(over_object) mouse_parameters = params - /datum/component/automatic_fire/proc/process_shot() if(autofire_stat != AUTOFIRE_STAT_FIRING) return FALSE diff --git a/code/datums/components/grillable.dm b/code/datums/components/grillable.dm index dd23854fee98..53042e2e3881 100644 --- a/code/datums/components/grillable.dm +++ b/code/datums/components/grillable.dm @@ -34,6 +34,17 @@ src.use_large_steam_sprite = use_large_steam_sprite src.added_reagents = added_reagents + var/obj/item/item_parent = parent + if(!PERFORM_ALL_TESTS(focus_only/check_materials_when_processed) || !positive_result || !item_parent.custom_materials || isstack(parent)) + return + + var/atom/result = new cook_result + if(!item_parent.compare_materials(result)) + var/warning = "custom_materials of [result.type] when grilled compared to just spawned don't match" + var/what_it_should_be = item_parent.get_materials_english_list() + stack_trace("[warning]. custom_materials should be [what_it_should_be].") + qdel(result) + /datum/component/grillable/RegisterWithParent() RegisterSignal(parent, COMSIG_ITEM_GRILL_PLACED, PROC_REF(on_grill_placed)) RegisterSignal(parent, COMSIG_ITEM_GRILL_TURNED_ON, PROC_REF(on_grill_turned_on)) @@ -153,6 +164,7 @@ grilled_result.reagents.add_reagent_list(added_reagents) SEND_SIGNAL(parent, COMSIG_ITEM_GRILLED, grilled_result) + SEND_SIGNAL(grilled_result, COMSIG_ITEM_GRILLED_RESULT, parent) if(who_placed_us) ADD_TRAIT(grilled_result, TRAIT_FOOD_CHEF_MADE, who_placed_us) diff --git a/code/datums/components/manual_blinking.dm b/code/datums/components/manual_blinking.dm index 59e963b27ca6..aed2c531e3d9 100644 --- a/code/datums/components/manual_blinking.dm +++ b/code/datums/components/manual_blinking.dm @@ -5,7 +5,9 @@ var/warn_grace = FALSE var/warn_dying = FALSE var/last_blink - var/check_every = 20 SECONDS + /// How long can you not blink before you get a warning? + var/warning_delay = 20 SECONDS + /// Delay between getting a warning and you starting to take eye damage var/grace_period = 6 SECONDS /// Organ damage taken per tick var/damage_rate = 1 @@ -15,12 +17,12 @@ var/display_message = TRUE var/list/valid_emotes = list(/datum/emote/living/carbon/human/blink, /datum/emote/living/carbon/human/blink_r) -/datum/component/manual_blinking/Initialize(damage_rate = 1, check_every = 20 SECONDS, grace_period = 6 SECONDS, display_message = TRUE) +/datum/component/manual_blinking/Initialize(damage_rate = 1, warning_delay = 20 SECONDS, grace_period = 6 SECONDS, display_message = TRUE) if(!iscarbon(parent)) return COMPONENT_INCOMPATIBLE src.damage_rate = damage_rate - src.check_every = check_every + src.warning_delay = warning_delay src.grace_period = grace_period src.display_message = display_message @@ -70,12 +72,12 @@ STOP_PROCESSING(SSdcs, src) /datum/component/manual_blinking/process() - if(world.time > (last_blink + check_every + grace_period)) + if(world.time > (last_blink + warning_delay + grace_period)) if(!warn_dying) to_chat(parent, span_userdanger("Your eyes begin to wither, you need to blink!")) warn_dying = TRUE parent_eyes.apply_organ_damage(damage_rate) - else if(world.time > (last_blink + check_every)) + else if(world.time > (last_blink + warning_delay)) if(!warn_grace) to_chat(parent, span_danger("You feel a need to blink!")) warn_grace = TRUE diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index 4ca738a2f1ab..34ecac634bab 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -108,6 +108,8 @@ // things like mouth executions and gunpoints can multiply the damage and wounds of projectiles, so this makes sure those effects are applied to each pellet instead of just one var/original_damage = shell.loaded_projectile.damage + var/original_stamina = shell.loaded_projectile.stamina + var/original_speed = shell.loaded_projectile.speed var/original_wounds_bonus = shell.loaded_projectile.wound_bonus var/original_bare_wounds_bonus = shell.loaded_projectile.exposed_wound_bonus var/original_ignored_faction = shell.loaded_projectile.ignored_factions @@ -123,6 +125,8 @@ RegisterSignal(shell.loaded_projectile, COMSIG_PROJECTILE_SELF_ON_HIT, PROC_REF(pellet_hit)) RegisterSignals(shell.loaded_projectile, list(COMSIG_PROJECTILE_RANGE_OUT, COMSIG_QDELETING), PROC_REF(pellet_range)) shell.loaded_projectile.damage = original_damage + shell.loaded_projectile.stamina = original_stamina + shell.loaded_projectile.speed = original_speed shell.loaded_projectile.wound_bonus = original_wounds_bonus shell.loaded_projectile.exposed_wound_bonus = original_bare_wounds_bonus shell.loaded_projectile.ignored_factions = original_ignored_faction diff --git a/code/datums/components/punchcooldown.dm b/code/datums/components/punchcooldown.dm index 22a212d4512a..72220a91cab4 100644 --- a/code/datums/components/punchcooldown.dm +++ b/code/datums/components/punchcooldown.dm @@ -3,7 +3,7 @@ signals = list(COMSIG_LIVING_UNARMED_ATTACK, COMSIG_LIVING_HAND_ITEM_ATTACK) mobtype = /mob/living/carbon proctype = PROC_REF(reducecooldown) - valid_slots = list(ITEM_SLOT_GLOVES) + valid_slots = ITEM_SLOT_GLOVES ///The warcry this generates var/warcry = "AT" diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index aac0755f8e54..e966012bdae9 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -11,6 +11,8 @@ var/list/override_unsharable_abilities = list() /// abilities that are always blacklisted from sharing var/list/blacklist_abilities = list() + /// flag that determine how our ai acts while ridden + var/ai_behavior_while_ridden = RIDING_PAUSE_AI_PLANNING | RIDING_PAUSE_AI_MOVEMENT /datum/component/riding/creature/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE) if(!isliving(parent)) @@ -35,7 +37,7 @@ if(isanimal(parent)) var/mob/living/simple_animal/simple_parent = parent simple_parent.stop_automated_movement = FALSE - REMOVE_TRAIT(parent, TRAIT_AI_PAUSED, REF(src)) + parent.remove_traits(list(TRAIT_AI_PAUSED, TRAIT_AI_MOVEMENT_HALTED), REF(src)) return ..() /datum/component/riding/creature/RegisterWithParent() @@ -83,7 +85,10 @@ rider.layer = initial(rider.layer) if(can_be_driven) //let the player take over if they should be controlling movement - ADD_TRAIT(ridden, TRAIT_AI_PAUSED, REF(src)) + if(ai_behavior_while_ridden & RIDING_PAUSE_AI_PLANNING) + ADD_TRAIT(ridden, TRAIT_AI_PAUSED, REF(src)) + if(ai_behavior_while_ridden & RIDING_PAUSE_AI_MOVEMENT) + ADD_TRAIT(ridden, TRAIT_AI_MOVEMENT_HALTED, REF(src)) return ..() /datum/component/riding/creature/vehicle_mob_unbuckle(mob/living/formerly_ridden, mob/living/former_rider, force = FALSE) @@ -92,7 +97,7 @@ former_rider.log_message("is no longer riding [formerly_ridden].", LOG_GAME, color="pink") remove_abilities(former_rider) if(!formerly_ridden.buckled_mobs.len) - REMOVE_TRAIT(formerly_ridden, TRAIT_AI_PAUSED, REF(src)) + formerly_ridden.remove_traits(list(TRAIT_AI_PAUSED, TRAIT_AI_MOVEMENT_HALTED), REF(src)) // We gotta reset those layers at some point, don't we? former_rider.layer = MOB_LAYER formerly_ridden.layer = MOB_LAYER @@ -652,16 +657,16 @@ /datum/component/riding/creature/raptor/get_rider_offsets_and_layers(pass_index, mob/offsetter) if(!SSmapping.is_planetary()) return list( - TEXT_NORTH = list( 7, 7), - TEXT_SOUTH = list( 2, 10), - TEXT_EAST = list(12, 7), - TEXT_WEST = list(10, 7), + TEXT_NORTH = list(-1, 7), + TEXT_SOUTH = list(2, 10), + TEXT_EAST = list(0, 7), + TEXT_WEST = list(0, 7), ) return list( - TEXT_NORTH = list( 0, 7), - TEXT_SOUTH = list( 0, 10), + TEXT_NORTH = list(0, 7), + TEXT_SOUTH = list(0, 10), TEXT_EAST = list(-3, 9), - TEXT_WEST = list( 3, 9), + TEXT_WEST = list(3, 9), ) /datum/component/riding/creature/raptor/get_parent_offsets_and_layers() @@ -672,5 +677,14 @@ TEXT_WEST = list(0, 0, MOB_BELOW_PIGGYBACK_LAYER), ) +/datum/component/riding/creature/raptor/update_parent_layer_and_offsets(dir, animate) + . = ..() + var/mob/living/basic/raptor/raptor = parent + if (istype(raptor)) + raptor.adjust_offsets(dir) + /datum/component/riding/creature/raptor/fast vehicle_move_delay = 1.5 + +/datum/component/riding/creature/raptor/combat + ai_behavior_while_ridden = RIDING_PAUSE_AI_MOVEMENT diff --git a/code/datums/components/sitcomlaughter.dm b/code/datums/components/sitcomlaughter.dm index bc69a08b80c9..835a82cee422 100644 --- a/code/datums/components/sitcomlaughter.dm +++ b/code/datums/components/sitcomlaughter.dm @@ -1,5 +1,5 @@ /datum/component/wearertargeting/sitcomlaughter - valid_slots = list(ITEM_SLOT_HANDS, ITEM_SLOT_BELT, ITEM_SLOT_ID, ITEM_SLOT_LPOCKET, ITEM_SLOT_RPOCKET, ITEM_SLOT_SUITSTORE, ITEM_SLOT_DEX_STORAGE) + valid_slots = ITEM_SLOT_HANDS | ITEM_SLOT_BELT | ITEM_SLOT_ID | ITEM_SLOT_LPOCKET | ITEM_SLOT_RPOCKET | ITEM_SLOT_SUITSTORE | ITEM_SLOT_DEX_STORAGE signals = list(COMSIG_MOB_HIT_BY_SPLAT, COMSIG_ON_CARBON_SLIP, COMSIG_POST_TILT_AND_CRUSH, COMSIG_MOB_CLUMSY_SHOOT_FOOT) proctype = PROC_REF(EngageInComedy) mobtype = /mob/living diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 370b3406ff9f..edc48a512d22 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -33,8 +33,8 @@ var/datum/callback/on_slip_callback /// If parent is an item, this is the person currently holding/wearing the parent (or the parent if no one is holding it) var/mob/living/holder - /// Whitelist of item slots the parent can be equipped in that make the holder slippery. If null or empty, it will always make the holder slippery. - var/list/slot_whitelist = list(ITEM_SLOT_OCLOTHING, ITEM_SLOT_ICLOTHING, ITEM_SLOT_GLOVES, ITEM_SLOT_FEET, ITEM_SLOT_HEAD, ITEM_SLOT_MASK, ITEM_SLOT_BELT, ITEM_SLOT_NECK) + /// Whitelist bitfields of item slots bitflags the parent can be equipped in that make the holder slippery. If null or empty, it will always make the holder slippery. + var/slot_whitelist = ITEM_SLOT_OCLOTHING | ITEM_SLOT_ICLOTHING | ITEM_SLOT_GLOVES | ITEM_SLOT_FEET | ITEM_SLOT_HEAD | ITEM_SLOT_MASK | ITEM_SLOT_BELT | ITEM_SLOT_NECK ///what we give to connect_loc by default, makes slippable mobs moving over us slip var/static/list/default_connections = list( COMSIG_ATOM_ENTERED = PROC_REF(Slip), @@ -191,7 +191,7 @@ /datum/component/slippery/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER - if((!LAZYLEN(slot_whitelist) || (slot in slot_whitelist)) && isliving(equipper)) + if((!slot || (slot & slot_whitelist)) && isliving(equipper)) holder = equipper qdel(GetComponent(/datum/component/connect_loc_behalf)) AddComponent(/datum/component/connect_loc_behalf, holder, mob_connections) diff --git a/code/datums/components/style/style.dm b/code/datums/components/style/style.dm index 9de22c1772ef..2e8fb5cd07c1 100644 --- a/code/datums/components/style/style.dm +++ b/code/datums/components/style/style.dm @@ -139,16 +139,15 @@ /datum/component/style/proc/add_action(action, amount) if(length(actions) > 9) actions.Cut(1, 2) + var/action_id = 0 if(length(actions)) var/last_action = actions[length(actions)] if(action == actions[last_action]) amount *= 0.5 - var/id - while(!id || (id in actions)) - id = "action[rand(1, 1000)]" - actions[id] = action + action_id = text2num(last_action) + 1 + actions["[action_id]"] = action change_points(amount) - addtimer(CALLBACK(src, PROC_REF(remove_action), id), 10 SECONDS) + addtimer(CALLBACK(src, PROC_REF(remove_action), action_id), 10 SECONDS) /datum/component/style/proc/remove_action(action_id) actions -= action_id @@ -197,7 +196,7 @@ rank = rank_changed meter.maptext = "[format_rank_string(rank)][generate_multiplier()][generate_actions()]" - meter.maptext_y = 94 - 12 * length(actions) + meter.maptext_y = initial(meter.maptext_y) - 12 * length(actions) update_meter(point_to_rank(), go_back) /datum/component/style/proc/update_meter(new_rank, go_back) diff --git a/code/datums/components/style/style_meter.dm b/code/datums/components/style/style_meter.dm index eb9ca3653fc8..7b399927e33e 100644 --- a/code/datums/components/style/style_meter.dm +++ b/code/datums/components/style/style_meter.dm @@ -127,11 +127,11 @@ icon_state = "style_meter_background" icon = 'icons/hud/style_meter.dmi' mouse_opacity = MOUSE_OPACITY_TRANSPARENT - screen_loc = "WEST,CENTER:16" - maptext_height = 120 + screen_loc = "WEST,CENTER-1:19" + maptext_height = 160 maptext_width = 105 maptext_x = 5 - maptext_y = 94 + maptext_y = 124 maptext = "" layer = SCREENTIP_LAYER diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index d62f05422028..ac4a44c99799 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -31,7 +31,7 @@ ///A wearkef to the throwdatum we're currently dealing with, if we need it var/datum/weakref/tackle_ref -/datum/component/tackler/Initialize(stamina_cost = 25, base_knockdown = 1 SECONDS, range = 4, speed = 1, skill_mod = 0, min_distance = min_distance) +/datum/component/tackler/Initialize(stamina_cost = 25, base_knockdown = 1 SECONDS, range = 4, speed = 1, skill_mod = 0, min_distance = min_distance, silent_gain = FALSE) if(!iscarbon(parent)) return COMPONENT_INCOMPATIBLE @@ -42,8 +42,9 @@ src.skill_mod = skill_mod src.min_distance = min_distance - var/mob/P = parent - to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and ") + span_boldnotice("RIGHT-CLICKING on your target with an empty hand.")) + if(!silent_gain) + var/mob/P = parent + to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and ") + span_boldnotice("RIGHT-CLICKING on your target with an empty hand.")) addtimer(CALLBACK(src, PROC_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE) diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm index 17309b888eac..80ea33f24451 100644 --- a/code/datums/components/tactical.dm +++ b/code/datums/components/tactical.dm @@ -44,6 +44,7 @@ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) RegisterSignal(user, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(on_name_inquiry)) RegisterSignal(user, COMSIG_HUMAN_GET_FORCED_NAME, PROC_REF(on_name_inquiry)) + // This forces a name update on the user, so we don't need to call name update ourselves ADD_TRAIT(user, TRAIT_UNKNOWN, REF(src)) current_slot = slot diff --git a/code/datums/components/temporary_body.dm b/code/datums/components/temporary_body.dm index deadf90e6f99..3af84faaee94 100644 --- a/code/datums/components/temporary_body.dm +++ b/code/datums/components/temporary_body.dm @@ -12,8 +12,10 @@ var/datum/weakref/old_body_ref /// Returns the mind if the parent dies by any means var/delete_on_death = FALSE + /// If the temporary body is attached to a permanent body (split personality body) then we dont ghostize and instead just simply transfer client back + var/perma_body_attached -/datum/component/temporary_body/Initialize(datum/mind/old_mind, mob/living/old_body, delete_on_death = FALSE) +/datum/component/temporary_body/Initialize(datum/mind/old_mind, mob/living/old_body, delete_on_death = FALSE, perma_body_attached = FALSE) if(!isliving(parent)) return COMPONENT_INCOMPATIBLE src.old_mind_ref = WEAKREF(old_mind) @@ -21,6 +23,7 @@ ADD_TRAIT(old_body, TRAIT_MIND_TEMPORARILY_GONE, REF(src)) src.old_body_ref = WEAKREF(old_body) src.delete_on_death = delete_on_death + src.perma_body_attached = perma_body_attached /datum/component/temporary_body/RegisterWithParent() RegisterSignal(parent, COMSIG_QDELETING, PROC_REF(on_parent_destroy)) @@ -45,12 +48,13 @@ return var/mob/living/living_parent = parent - var/mob/dead/observer/ghost = living_parent.ghostize() - if(!ghost) - ghost = living_parent.get_ghost() - if(!ghost) - CRASH("[src] belonging to [parent] was completely unable to find a ghost to put back into a body!") - ghost.mind = old_mind + if(!perma_body_attached) + var/mob/dead/observer/ghost = living_parent.ghostize() + if(!ghost) + ghost = living_parent.get_ghost() + if(!ghost) + CRASH("[src] belonging to [parent] was completely unable to find a ghost to put back into a body!") + ghost.mind = old_mind if(old_body?.stat != DEAD) old_mind.transfer_to(old_body, force_key_move = TRUE) else diff --git a/code/datums/components/tether.dm b/code/datums/components/tether.dm index d04716a0af0a..cbbd2b1c18f7 100644 --- a/code/datums/components/tether.dm +++ b/code/datums/components/tether.dm @@ -15,7 +15,7 @@ var/datum/beam/tether_beam /// Tether module if we were created by one var/obj/item/mod/module/tether/parent_module - /// Source, if any, for TRAIT_TETHER_ATTACHED we add + /// Ref of source, if any, for TRAIT_TETHER_ATTACHED we add var/tether_trait_source /// If TRUE, only add TRAIT_TETHER_ATTACHED to our parent var/no_target_trait @@ -24,6 +24,9 @@ parent_module = null, tether_trait_source = null, no_target_trait = FALSE) if(!ismovable(parent) || !istype(tether_target) || !tether_target.loc) return COMPONENT_INCOMPATIBLE + if(isatom(tether_trait_source)) + stack_trace("Tried to add a [src.type] with a tether_trait_source that is a hard ref! Use REF() first before passing!") + return COMPONENT_INCOMPATIBLE src.tether_target = tether_target src.embed_target = embed_target diff --git a/code/datums/components/wearertargeting.dm b/code/datums/components/wearertargeting.dm index 44c16aa72bd1..fa04ebb3918e 100644 --- a/code/datums/components/wearertargeting.dm +++ b/code/datums/components/wearertargeting.dm @@ -1,7 +1,9 @@ // A dummy parent type used for easily making components that target an item's wearer rather than the item itself. /datum/component/wearertargeting - var/list/valid_slots = list() + /// Bitflag value of valid slots. + /// You can find all slot bitflags in code/__DEFINES/inventory.dm + var/valid_slots = NONE var/list/signals = list() var/proctype = GLOBAL_PROC_REF(pass) var/mobtype = /mob/living @@ -15,7 +17,7 @@ /datum/component/wearertargeting/proc/on_equip(datum/source, mob/equipper, slot) SIGNAL_HANDLER - if((slot in valid_slots) && istype(equipper, mobtype)) + if((valid_slots & slot) && istype(equipper, mobtype)) RegisterSignals(equipper, signals, proctype, TRUE) else UnregisterSignal(equipper, signals) diff --git a/code/datums/drift_handler.dm b/code/datums/drift_handler.dm index 559ea9e13ca8..53133025657f 100644 --- a/code/datums/drift_handler.dm +++ b/code/datums/drift_handler.dm @@ -209,8 +209,6 @@ /datum/drift_handler/proc/attempt_halt(movement_dir, continuous_move, atom/backup) if ((backup.density || !backup.CanPass(parent, get_dir(backup, parent))) && (get_dir(parent, backup) == movement_dir || parent.loc == backup.loc)) - if (drift_force >= INERTIA_FORCE_THROW_FLOOR) - parent.throw_at(backup, 1, floor(1 + (drift_force - INERTIA_FORCE_THROW_FLOOR) / INERTIA_FORCE_PER_THROW_FORCE), spin = FALSE) return FALSE if (drift_force < INERTIA_FORCE_SPACEMOVE_GRAB || isnull(drifting_loop)) diff --git a/code/datums/elements/above_mob_drop.dm b/code/datums/elements/above_mob_drop.dm new file mode 100644 index 000000000000..552f6c863a1e --- /dev/null +++ b/code/datums/elements/above_mob_drop.dm @@ -0,0 +1,21 @@ +/// Element that makes mob drops appear above their corpses until moved or picked up +/datum/element/above_mob_drop + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + /// Layer to which items are initially changed + var/target_layer = ABOVE_LYING_MOB_LAYER + +/datum/element/above_mob_drop/Attach(datum/target, target_layer = ABOVE_LYING_MOB_LAYER) + . = ..() + if (!ismovable(target)) + return ELEMENT_INCOMPATIBLE + src.target_layer = target_layer + var/atom/movable/owner = target + owner.layer = target_layer + RegisterSignal(owner, COMSIG_MOVABLE_MOVED, PROC_REF(on_moved)) + +/datum/element/above_mob_drop/proc/on_moved(atom/movable/source) + SIGNAL_HANDLER + if (source.layer == target_layer) + source.layer = initial(source.layer) + Detach(source) diff --git a/code/datums/elements/blood_reagent.dm b/code/datums/elements/blood_reagent.dm index 9373eaf5e4db..78ecae8c1179 100644 --- a/code/datums/elements/blood_reagent.dm +++ b/code/datums/elements/blood_reagent.dm @@ -156,7 +156,7 @@ return if (blood_type.blood_flags & (BLOOD_ADD_DNA | BLOOD_COVER_ITEMS)) - exposed_obj.add_blood_DNA(list(list("[source.data?["blood_DNA"] || blood_type.dna_string]" = blood_type) = blood_type)) + exposed_obj.add_blood_DNA(list("[source.data?["blood_DNA"] || blood_type.dna_string]" = blood_type)) if (!(blood_type.blood_flags & BLOOD_TRANSFER_VIRAL_DATA) || !source.data?["viruses"]) return diff --git a/code/datums/elements/climbable.dm b/code/datums/elements/climbable.dm index eb3bc611b29d..2a928900b8e9 100644 --- a/code/datums/elements/climbable.dm +++ b/code/datums/elements/climbable.dm @@ -99,7 +99,7 @@ if(istype(buckle_target)) if(buckle_target.is_buckle_possible(user)) buckle_target.buckle_mob(user) - user.mind?.adjust_experience(/datum/skill/athletics, 5) //Get a bit fitter with every climb. + user.mind?.adjust_experience(/datum/skill/athletics, round(ATHLETICS_SKILL_MISC_EXP/(fitness_level || 1), 1)) //Get a bit fitter with every climb. But it has diminishing returns at a certain point. else to_chat(user, span_warning("You fail to climb onto [climbed_thing].")) LAZYREMOVEASSOC(current_climbers, climbed_thing, user) diff --git a/code/datums/elements/crusher_loot.dm b/code/datums/elements/crusher_loot.dm index 024997560954..16b5253dca26 100644 --- a/code/datums/elements/crusher_loot.dm +++ b/code/datums/elements/crusher_loot.dm @@ -36,14 +36,15 @@ var/datum/status_effect/crusher_damage/damage = target.has_status_effect(/datum/status_effect/crusher_damage) if(damage && prob((damage.total_damage/target.maxHealth) * drop_mod)) //on average, you'll need to kill 4 creatures before getting the item. by default. - if(islist(trophy_type)) - for(var/trophypath in trophy_type) - make_path(target, trophypath) + if(!islist(trophy_type)) + make_path(target, trophy_type) return - make_path(target, trophy_type) + + for(var/trophypath in trophy_type) + make_path(target, trophypath) /datum/element/crusher_loot/proc/make_path(mob/living/target, path) if(drop_immediately) new path(get_turf(target)) else - target.butcher_results[path] = 1 + target.guaranteed_butcher_results[path] = 1 diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm index 801a0bd7b520..16a338888932 100644 --- a/code/datums/elements/decals/blood.dm +++ b/code/datums/elements/decals/blood.dm @@ -37,7 +37,7 @@ blood_splatter.color = _color var/mutable_appearance/emissive_splatter = null if (emissive_alpha) - emissive_splatter = emissive_appearance('icons/effects/blood.dmi', "itemblood", as_item, alpha = emissive_alpha) + emissive_splatter = emissive_appearance('icons/effects/blood.dmi', "itemblood", as_item, alpha = emissive_alpha, effect_type = EMISSIVE_NO_BLOOM) emissive_splatter.blend_mode = BLEND_INSET_OVERLAY if (uses_filter) blood_splatter.appearance_flags |= KEEP_APART diff --git a/code/datums/elements/drag_pickup.dm b/code/datums/elements/drag_pickup.dm index d86c615c6389..8eb73bbb4389 100644 --- a/code/datums/elements/drag_pickup.dm +++ b/code/datums/elements/drag_pickup.dm @@ -21,6 +21,10 @@ var/mob/living/picker = user if(!istype(picker) || !user.can_perform_action(source, FORBID_TELEKINESIS_REACH)) return + var/obj/pickup_object = source + if (pickup_object) + if (pickup_object.anchored) + return COMPONENT_CANCEL_MOUSEDROP_ONTO if(over == picker) INVOKE_ASYNC(picker, TYPE_PROC_REF(/mob/, put_in_hands), source) diff --git a/code/datums/elements/dryable.dm b/code/datums/elements/dryable.dm index 16c5a8c1a5dd..3d7842b30891 100644 --- a/code/datums/elements/dryable.dm +++ b/code/datums/elements/dryable.dm @@ -14,6 +14,17 @@ RegisterSignal(target, COMSIG_ITEM_DRIED, PROC_REF(finish_drying)) ADD_TRAIT(target, TRAIT_DRYABLE, ELEMENT_TRAIT(type)) + var/atom/atom_target = target + if(!PERFORM_ALL_TESTS(focus_only/check_materials_when_processed) || !atom_target.custom_materials || !dry_result || isstack(atom_target)) + return + + var/atom/result = new dry_result + if(!atom_target.compare_materials(result)) + var/warning = "custom_materials of [result.type] when dried compared to just spawned don't match" + var/what_it_should_be = atom_target.get_materials_english_list() + stack_trace("[warning]. custom_materials should be [what_it_should_be].") + qdel(result) + /datum/element/dryable/Detach(datum/target) . = ..() diff --git a/code/datums/elements/fish_safe_storage.dm b/code/datums/elements/fish_safe_storage.dm index a5eb5c561316..92416789148e 100644 --- a/code/datums/elements/fish_safe_storage.dm +++ b/code/datums/elements/fish_safe_storage.dm @@ -51,5 +51,5 @@ ///Keep delaying hunger and breeding while in stasis, and also heal them. fish.last_feeding += seconds_per_tick SECONDS fish.breeding_wait += seconds_per_tick SECONDS - if(fish.health < initial(fish.health) * 0.65) - fish.adjust_health(fish.health + 0.75 * seconds_per_tick) + if(fish.get_health_percentage() < 0.65) + fish.repair_damage(0.75 * seconds_per_tick) diff --git a/code/datums/elements/food/microwavable.dm b/code/datums/elements/food/microwavable.dm index 86f0b2083b89..325f7fe865d0 100644 --- a/code/datums/elements/food/microwavable.dm +++ b/code/datums/elements/food/microwavable.dm @@ -3,15 +3,15 @@ element_flags = ELEMENT_BESPOKE argument_hash_start_idx = 2 /// The typepath we default to if we were passed no microwave result - var/atom/default_typepath = /obj/item/food/badrecipe + var/atom/default_typepath /// Resulting atom typepath on a completed microwave. var/atom/result_typepath /// Reagents that should be added to the result var/list/added_reagents -/datum/element/microwavable/Attach(datum/target, microwave_type, list/reagents) +/datum/element/microwavable/Attach(obj/item/target, microwave_type, list/reagents, skip_matcheck = FALSE) . = ..() - if(!isitem(target)) + if(!istype(target)) return ELEMENT_INCOMPATIBLE result_typepath = microwave_type || default_typepath @@ -23,6 +23,16 @@ if(!ispath(result_typepath, default_typepath)) RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + if(!PERFORM_ALL_TESTS(focus_only/check_materials_when_processed) || skip_matcheck || !target.custom_materials || isstack(target)) + return + + var/atom/result = new result_typepath + if(!target.compare_materials(result)) + var/warning = "custom_materials of [result.type] when microwaved compared to just spawned don't match" + var/what_it_should_be = target.get_materials_english_list() + stack_trace("[warning]. custom_materials should be [what_it_should_be].") + qdel(result) + /datum/element/microwavable/Detach(datum/source) UnregisterSignal(source, list(COMSIG_ITEM_MICROWAVE_ACT, COMSIG_ATOM_EXAMINE)) return ..() @@ -44,8 +54,6 @@ result.set_custom_materials(source.custom_materials) var/efficiency = istype(used_microwave) ? used_microwave.efficiency : 1 - SEND_SIGNAL(result, COMSIG_ITEM_MICROWAVE_COOKED, source, efficiency) - SEND_SIGNAL(source, COMSIG_ITEM_MICROWAVE_COOKED_FROM, result, efficiency) if(IS_EDIBLE(result) && (result_typepath != default_typepath)) BLACKBOX_LOG_FOOD_MADE(result.type) @@ -62,6 +70,10 @@ if(microwaver && microwaver.mind) ADD_TRAIT(result, TRAIT_FOOD_CHEF_MADE, REF(microwaver.mind)) + + SEND_SIGNAL(result, COMSIG_ITEM_MICROWAVE_COOKED, source, efficiency) + SEND_SIGNAL(source, COMSIG_ITEM_MICROWAVE_COOKED_FROM, result, efficiency) + qdel(source) var/recipe_result = COMPONENT_MICROWAVE_SUCCESS diff --git a/code/datums/elements/food/processable.dm b/code/datums/elements/food/processable.dm index 9ca96b3821b2..59c8c0462635 100644 --- a/code/datums/elements/food/processable.dm +++ b/code/datums/elements/food/processable.dm @@ -34,6 +34,22 @@ RegisterSignal(target, COMSIG_ATOM_TOOL_ACT(tool_behaviour), PROC_REF(try_process)) RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(OnExamine)) + if(!PERFORM_ALL_TESTS(focus_only/check_materials_when_processed) || !atom_target.custom_materials) + return + + var/atom/movable/prototype = new + prototype.set_custom_materials(atom_target.custom_materials, 1 / amount_created) + var/atom/movable/result = new result_atom_type + if(!prototype.compare_materials(result)) + var/warning = "custom_materials of [result.type] when processed compared to just spawned don't match" + var/what_it_should_be = prototype.get_materials_english_list() + //compose a text string containing the syntax and paths to use for editing the custom_materials var + if(result.custom_materials) + what_it_should_be += " (you can round values a bit)" + stack_trace("[warning]. custom_materials should be [what_it_should_be] (you can round values a bit).") + qdel(prototype) + qdel(result) + /datum/element/processable/Detach(datum/target) . = ..() UnregisterSignal(target, list(COMSIG_ATOM_TOOL_ACT(tool_behaviour), COMSIG_ATOM_EXAMINE, COMSIG_ATOM_REQUESTING_CONTEXT_FROM_ITEM)) diff --git a/code/datums/elements/mirage_border.dm b/code/datums/elements/mirage_border.dm index b7af7ee91f60..432426ddcf3a 100644 --- a/code/datums/elements/mirage_border.dm +++ b/code/datums/elements/mirage_border.dm @@ -40,3 +40,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/mirage_holder) /atom/movable/mirage_holder name = "Mirage holder" mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/// If we, hypothetically, spawned on a turf that calls init (so non-space tiles), we would be transported to the other Z, which would be very bad +/atom/movable/mirage_holder/forceMove(atom/destination) + return FALSE diff --git a/code/datums/elements/organ_set_bonus.dm b/code/datums/elements/organ_set_bonus.dm index 3e8f030a13d3..fa6b272897a0 100644 --- a/code/datums/elements/organ_set_bonus.dm +++ b/code/datums/elements/organ_set_bonus.dm @@ -30,7 +30,7 @@ var/datum/status_effect/organ_set_bonus/set_bonus = receiver.has_status_effect(bonus_type) if(!set_bonus) set_bonus = receiver.apply_status_effect(bonus_type) - set_bonus.set_organs(set_bonus.organs + 1) + set_bonus.set_organs(set_bonus.organs + 1, target) /datum/element/organ_set_bonus/proc/on_removed(obj/item/organ/target, mob/living/carbon/loser) SIGNAL_HANDLER @@ -38,7 +38,7 @@ //get status effect or remove it var/datum/status_effect/organ_set_bonus/set_bonus = loser.has_status_effect(bonus_type) if(set_bonus) - set_bonus.set_organs(set_bonus.organs - 1) + set_bonus.set_organs(set_bonus.organs - 1, target) /datum/status_effect/organ_set_bonus id = "organ_set_bonus" @@ -66,17 +66,17 @@ /// Color priority for limb overlay var/color_overlay_priority -/datum/status_effect/organ_set_bonus/proc/set_organs(new_value) +/datum/status_effect/organ_set_bonus/proc/set_organs(new_value, obj/item/organ/organ) organs = new_value if(!organs) //initial value but won't kick in without calling the setter qdel(src) if(organs >= organs_needed) if(!bonus_active) - INVOKE_ASYNC(src, PROC_REF(enable_bonus)) + INVOKE_ASYNC(src, PROC_REF(enable_bonus), organ) else if(bonus_active) - INVOKE_ASYNC(src, PROC_REF(disable_bonus)) + INVOKE_ASYNC(src, PROC_REF(disable_bonus), organ) -/datum/status_effect/organ_set_bonus/proc/enable_bonus() +/datum/status_effect/organ_set_bonus/proc/enable_bonus(obj/item/organ/inserted_organ) SHOULD_CALL_PARENT(TRUE) if(required_biotype) if(!(owner.mob_biotypes & required_biotype)) @@ -113,7 +113,7 @@ carbon_owner.update_body() return TRUE -/datum/status_effect/organ_set_bonus/proc/disable_bonus() +/datum/status_effect/organ_set_bonus/proc/disable_bonus(obj/item/organ/removed_organ) SHOULD_CALL_PARENT(TRUE) bonus_active = FALSE @@ -150,7 +150,7 @@ /datum/status_effect/organ_set_bonus/proc/texture_limb(atom/source, obj/item/bodypart/limb) SIGNAL_HANDLER - // Not updating because enable/disable_bonus() call it down the line, and calls coming from comsigs update the owner's body themselves + // Not updating because enable/disable_bonus(obj/item/organ/removed_organ) call it down the line, and calls coming from comsigs update the owner's body themselves limb.add_bodypart_overlay(new limb_overlay(), update = FALSE) if(color_overlay_priority) limb.add_color_override(COLOR_WHITE, color_overlay_priority) diff --git a/code/datums/elements/strippable.dm b/code/datums/elements/strippable.dm index 7f4d9f972040..70b7e2968abd 100644 --- a/code/datums/elements/strippable.dm +++ b/code/datums/elements/strippable.dm @@ -43,10 +43,10 @@ if(!user.can_perform_action(source, FORBID_TELEKINESIS_REACH | ALLOW_RESTING)) return - // Snowflake for cyborgs buckling people by dragging them onto them, unless in combat mode. - if (iscyborg(user)) - var/mob/living/silicon/robot/cyborg_user = user - if (!cyborg_user.combat_mode) + // Snowflake for cyborgs and bots buckling people by dragging them onto them, unless in combat mode. + if(iscyborg(user) || isbot(user)) + var/mob/living/bot_user = user + if (!bot_user.combat_mode) return // Snowflake for xeno consumption code if (isalienadult(user)) @@ -311,9 +311,6 @@ user.log_message("has stripped [key_name(source)] of [item].", LOG_ATTACK, color="red") source.log_message("has been stripped of [item] by [key_name(user)].", LOG_VICTIM, color="orange", log_globally=FALSE) - // Updates speed in case stripped speed affecting item - source.update_equipment_speed_mods() - /// A representation of the stripping UI /datum/strip_menu /// The owner who has the element /datum/element/strippable diff --git a/code/datums/elements/swimming_tile.dm b/code/datums/elements/swimming_tile.dm index eb4330549b0a..738a8d315efb 100644 --- a/code/datums/elements/swimming_tile.dm +++ b/code/datums/elements/swimming_tile.dm @@ -60,7 +60,7 @@ var/effective_stamina_entry_cost = HAS_TRAIT(floater, TRAIT_STRENGTH) ? (stamina_entry_cost + clothing_weight(floater)) : ((stamina_entry_cost + clothing_weight(floater)) / 2) //Being in high gravity doubles our effective stamina cost - var/gravity_modifier = floater.has_gravity() > STANDARD_GRAVITY ? 1 : 2 + var/gravity_modifier = floater.has_gravity() > STANDARD_GRAVITY ? 2 : 1 //If our floater has a specialized spine, include that as a factor. var/obj/item/organ/cyberimp/chest/spine/potential_spine = floater.get_organ_slot(ORGAN_SLOT_SPINE) @@ -120,7 +120,7 @@ var/effective_stamina_per_interval = HAS_TRAIT(owner, TRAIT_STRENGTH) ? stamina_per_interval : (stamina_per_interval / 2) - var/gravity_modifier = owner.has_gravity() > STANDARD_GRAVITY ? 1 : 2 + var/gravity_modifier = owner.has_gravity() > STANDARD_GRAVITY ? 2 : 1 var/under_pressure = prob(drowning_process_probability * gravity_modifier) diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm index 4b8b63061757..e0b6a79aea26 100644 --- a/code/datums/id_trim/jobs.dm +++ b/code/datums/id_trim/jobs.dm @@ -848,6 +848,7 @@ extra_access = list( ACCESS_SURGERY, ACCESS_VIROLOGY, + ACCESS_PHARMACY, ) template_access = list( ACCESS_CAPTAIN, diff --git a/code/datums/id_trim/ruins.dm b/code/datums/id_trim/ruins.dm index 6664058ce965..51093933b3ee 100644 --- a/code/datums/id_trim/ruins.dm +++ b/code/datums/id_trim/ruins.dm @@ -181,6 +181,17 @@ access = list(ACCESS_SYNDICATE, ACCESS_AWAY_COMMAND) big_pointer = TRUE +//Roroco Factory IDs +/datum/id_trim/away/roroco + assignment = "Glove Packer" + department_color = COLOR_ENGINEERING_ORANGE + access = list(ACCESS_ROROCO) + +/datum/id_trim/away/roroco/boss + assignment = "Fabric Technician" + access = list(ACCESS_ROROCO, ACCESS_ROROCO_SECURE) + big_pointer = TRUE + //Film Studio Trims /datum/id_trim/away/actor assignment = "Actor" diff --git a/code/datums/json_savefile.dm b/code/datums/json_savefile.dm index f68efd432d1a..1897c5a83011 100644 --- a/code/datums/json_savefile.dm +++ b/code/datums/json_savefile.dm @@ -118,3 +118,7 @@ GENERAL_PROTECT_DATUM(/datum/json_savefile) return TRUE return FALSE + +/// Copies the entire tree to another json savefile datum, overwriting whatever was in the other datum before. +/datum/json_savefile/proc/copy_to_savefile(datum/json_savefile/other_savefile) + other_savefile.tree = tree.Copy() diff --git a/code/datums/keybinding/human.dm b/code/datums/keybinding/human.dm index e45109cca0ed..ab432c09e8d0 100644 --- a/code/datums/keybinding/human.dm +++ b/code/datums/keybinding/human.dm @@ -6,7 +6,7 @@ return ishuman(user.mob) /datum/keybinding/human/quick_equip - hotkey_keys = list("E") + hotkey_keys = list("R") name = "quick_equip" full_name = "Quick equip" description = "Quickly puts an item in the best slot available" @@ -21,7 +21,7 @@ return TRUE /datum/keybinding/human/quick_equip_belt - hotkey_keys = list("ShiftE") + hotkey_keys = list("ShiftR") name = "quick_equip_belt" full_name = "Quick equip belt" description = "Put held thing in belt or take out most recent thing from belt" diff --git a/code/datums/keybinding/living.dm b/code/datums/keybinding/living.dm index 766e2b85851b..84a013c89abc 100644 --- a/code/datums/keybinding/living.dm +++ b/code/datums/keybinding/living.dm @@ -167,7 +167,7 @@ return TRUE /datum/keybinding/living/toggle_throw_mode - hotkey_keys = list("R", "Southwest") // END + hotkey_keys = list("Southwest") // END name = "toggle_throw_mode" full_name = "Toggle throw mode" description = "Toggle throwing the current item or not." diff --git a/code/datums/keybinding/mob.dm b/code/datums/keybinding/mob.dm index d122a802405c..081ea131f584 100644 --- a/code/datums/keybinding/mob.dm +++ b/code/datums/keybinding/mob.dm @@ -21,7 +21,7 @@ return TRUE /datum/keybinding/mob/swap_hands - hotkey_keys = list("X") + hotkey_keys = list("Unbound") name = "swap_hands" full_name = "Swap hands" description = "" @@ -35,6 +35,36 @@ M.swap_hand() return TRUE +/datum/keybinding/mob/select_hand + var/hand_index = NONE + +/datum/keybinding/mob/select_hand/right + hotkey_keys = list("Q") + name = "select_right_hand" + full_name = "Swap to Right Hand" + keybind_signal = COMSIG_KB_MOB_SELECTRIGHTHAND_DOWN + hand_index = RIGHT_HANDS + +/datum/keybinding/mob/select_hand/left + hotkey_keys = list("E") + name = "select_left_hand" + full_name = "Swap to Left Hand" + keybind_signal = COMSIG_KB_MOB_SELECTLEFTHAND_DOWN + hand_index = LEFT_HANDS + +/datum/keybinding/mob/select_hand/down(client/user, turf/target) + . = ..() + if(.) + return + + var/mob/user_mob = user.mob + var/active_hand_set = ceil(user_mob.active_hand_index / 2) - 1 //offset + var/desired_hand_index = hand_index + (2 * active_hand_set) + + user_mob.swap_hand(desired_hand_index) + + return TRUE + /datum/keybinding/mob/activate_inhand hotkey_keys = list("Z") name = "activate_inhand" @@ -51,7 +81,7 @@ return TRUE /datum/keybinding/mob/drop_item - hotkey_keys = list("Q") + hotkey_keys = list("X") name = "drop_item" full_name = "Drop Item" description = "" diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 59b876b18722..2b2b00e19a16 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -63,6 +63,10 @@ var/direct /// Sound channel to play on, random if not provided var/sound_channel + ///If we want to reserve a random channel when we start playing sounds. Good for when there could be several sources of the same looping sound heard by the same + var/reserve_random_channel = FALSE + //If we reserve a random sound channel, store the channel number here so we can clean it up later. + var/reserved_channel /datum/looping_sound/New(_parent, start_immediately = FALSE, _direct = FALSE, _skip_starting_sounds = FALSE) if(!mid_sounds) @@ -91,6 +95,11 @@ set_parent(on_behalf_of) if(timer_id) return + + if(!sound_channel && reserve_random_channel) + sound_channel = SSsounds.reserve_sound_channel_datumless() + reserved_channel = sound_channel + on_start() /** @@ -110,6 +119,11 @@ timer_id = null loop_started = FALSE + if(reserved_channel) + sound_channel = null + SSsounds.free_sound_channel(reserved_channel) + + /// The proc that handles starting the actual core sound loop. /datum/looping_sound/proc/start_sound_loop() loop_started = TRUE @@ -165,7 +179,8 @@ pressure_affected = pressure_affected, ignore_walls = ignore_walls, falloff_distance = falloff_distance, - use_reverb = use_reverb + use_reverb = use_reverb, + channel = sound_channel || SSsounds.random_available_channel() ) /// Returns the sound we should now be playing. diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index dd2de0c9cd8d..e5950566d4f3 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -47,3 +47,15 @@ /datum/looping_sound/zipline mid_sounds = list('sound/items/weapons/zipline_mid.ogg' = 1) volume = 5 + +/datum/looping_sound/tesla_cannon + start_sound = list('sound/items/weapons/gun/tesla/tesla_start.ogg' = 1) + start_volume = 100 + start_length = 200 MILLISECONDS + mid_sounds = list('sound/items/weapons/gun/tesla/tesla_loop.ogg' = 1) + mid_length = 3.8 SECONDS + volume = 100 + end_sound = list('sound/items/weapons/gun/tesla/power_breaker_fan.ogg' = 1) + end_volume = 15 + ignore_walls = FALSE + reserve_random_channel = TRUE diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 3bd5a28235bd..bb7dd27e947a 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -27,8 +27,15 @@ var/traits = null var/space_ruin_levels = DEFAULT_SPACE_RUIN_LEVELS var/space_empty_levels = DEFAULT_SPACE_EMPTY_LEVELS + /// Boolean that tells us if this is a planetary station. (like IceBoxStation) var/planetary = FALSE + /// How many z's to generate around a planetary station + var/wilderness_levels = 0 + /// Directory to the wilderness area we can spawn in + var/wilderness_directory + /// Index of map names (inside wilderness_directory) with the amount to spawn. ("ice_planes" = 1) for one ice spawn + var/list/maps_to_spawn = list() ///The type of mining Z-level that should be loaded. var/minetype = MINETYPE_LAVALAND @@ -189,6 +196,13 @@ log_world("map_config space_empty_levels is not a number!") return + temp = json["wilderness_levels"] + if (isnum(temp)) + wilderness_levels = temp + else if (!isnull(temp)) + log_world("map_config wilderness_levels is not a number!") + return + if ("minetype" in json) minetype = json["minetype"] @@ -226,6 +240,17 @@ if ("height_autosetup" in json) height_autosetup = json["height_autosetup"] + var/list/wilderness = json["wilderness"] + // If we got wilderness levels, fetch them from the config + if (islist(wilderness)) + wilderness_directory = wilderness["directory"] + wilderness.Remove("directory") + + // Just pick and take based on weight + for(var/i in 1 to wilderness_levels) + maps_to_spawn += pick_weight_take(wilderness) + shuffle(maps_to_spawn) + #ifdef UNIT_TESTS // Check for unit tests to skip, no reason to check these if we're not running tests for(var/path_as_text in json["ignored_unit_tests"]) diff --git a/code/datums/mapgen/Cavegens/IcemoonCaves.dm b/code/datums/mapgen/Cavegens/IcemoonCaves.dm index 926c05ce45cf..475465783617 100644 --- a/code/datums/mapgen/Cavegens/IcemoonCaves.dm +++ b/code/datums/mapgen/Cavegens/IcemoonCaves.dm @@ -35,12 +35,15 @@ ) /datum/map_generator/cave_generator/icemoon/surface - flora_spawn_chance = 4 + weighted_open_turf_types = list(/turf/open/misc/asteroid/snow/icemoon = 1) + flora_spawn_chance = 60 weighted_mob_spawn_list = null - initial_closed_chance = 53 + initial_closed_chance = 0 birth_limit = 5 death_limit = 4 smoothing_iterations = 10 + + feature_spawn_chance = 0.15 weighted_feature_spawn_list = list( /obj/structure/geyser/hollowwater = 10, /obj/structure/geyser/plasma_oxide = 10, @@ -49,9 +52,14 @@ /obj/structure/geyser/wittel = 10, ) + weighted_flora_spawn_list = list( + /obj/structure/flora/ash/chilly = 2, + /obj/structure/flora/grass/both/style_random = 20, + /obj/structure/flora/tree/pine/style_random = 2, + ) + /// Surface snow generator variant for forested station trait, WITH FORESTSSSS /datum/map_generator/cave_generator/icemoon/surface/forested - weighted_open_turf_types = list(/turf/open/misc/asteroid/snow/icemoon = 1) initial_closed_chance = 10 flora_spawn_chance = 80 @@ -69,6 +77,10 @@ mob_spawn_chance = 0.2 weighted_mob_spawn_list = list(/mob/living/basic/deer/ice = 99, /mob/living/basic/tree = 1, /obj/effect/spawner/random/lavaland_mob/raptor = 15) +/datum/map_generator/cave_generator/icemoon/surface/rocky + initial_closed_chance = 53 + mob_spawn_chance = 0.5 + /datum/map_generator/cave_generator/icemoon/surface/noruins //use this for when you don't want ruins to spawn in a certain area /datum/map_generator/cave_generator/icemoon/deep diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm index d29aa3ef218b..4a0c9c84b308 100644 --- a/code/datums/martial/_martial.dm +++ b/code/datums/martial/_martial.dm @@ -35,6 +35,15 @@ /// If TRUE, the user is locked to using this martial art, and can't swap to other ones they know. /// If the mob has two locked martial arts, it's first come first serve. var/locked_to_use = FALSE + /// A modifier to the effective grab state for resist grabs of users of this martial art. + /// IE: grab_state_modifier = 1 means passive grabs are aggro grab difficulty, and aggro grabs are neckgrab difficulty. + var/grab_state_modifier = 0 + /// A modifier to the damage dealt on a failed grab resist. + /// IE: grab_damage_modifier = 10 means 10 more stamina damage dealt + var/grab_damage_modifier = 0 + /// A modifier to the chance of escaping a grab. + /// IE: grab_escape_chance_modifier = -10 means 10% less chance to escape a grab + var/grab_escape_chance_modifier = 0 /datum/martial_art/serialize_list(list/options, list/semvers) . = ..() @@ -217,6 +226,43 @@ /datum/martial_art/proc/can_use(mob/living/martial_artist) return TRUE +/** + * Gets what limb is being used going when punching with this martial art. + * + * Override get_prefered_attacking_limb() to change the limb used. + * + * Arguments + * * mob/living/martial_artist - The mob using the martial art + * * mob/living/target - The target of the attack + * + * Returns + * A bodypart, or null if we want to use default behavior (brain determines, or active hand). + */ +/datum/martial_art/proc/get_attacking_limb(mob/living/martial_artist, mob/living/target) + SHOULD_NOT_OVERRIDE(TRUE) + if(!can_use(martial_artist)) + return null + var/preferred_zone = get_prefered_attacking_limb(martial_artist, target) + if(!preferred_zone) + return null + return martial_artist.get_bodypart(preferred_zone) + +/** + * Allows martial arts to have a say which limb the user should be striking with. + * + * + * Arguments + * * mob/living/martial_artist - The mob using the martial art + * * mob/living/target - The target of the attack + * + * Returns + * * A body zone, or null if we have no preference. + */ +/datum/martial_art/proc/get_prefered_attacking_limb(mob/living/martial_artist, mob/living/target) + SHOULD_CALL_PARENT(FALSE) + PROTECTED_PROC(TRUE) + return null + /** * Adds the passed element to the current streak, resetting it if the target is not the same as the last target. * diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 25bdd31b288d..f7a951567845 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -24,7 +24,7 @@ button_icon_state = "neckchop" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS -/datum/action/neck_chop/Trigger(trigger_flags) +/datum/action/neck_chop/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -43,7 +43,7 @@ button_icon_state = "legsweep" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS -/datum/action/leg_sweep/Trigger(trigger_flags) +/datum/action/leg_sweep/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -62,7 +62,7 @@ button_icon_state = "lungpunch" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS -/datum/action/lung_punch/Trigger(trigger_flags) +/datum/action/lung_punch/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -237,7 +237,7 @@ icon_state = "black" greyscale_colors = "#2f2e31" siemens_coefficient = 0 - strip_delay = 80 + strip_delay = 8 SECONDS cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 3bc463dbb72a..b4021fd0b402 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -231,7 +231,7 @@ set desc = "Remember the martial techniques of the Sleeping Carp clan." set category = "Sleeping Carp" - to_chat(usr, "You retreat inward and recall the teachings of the Sleeping Carp...\n\ + to_chat(usr, span_info("You retreat inward and recall the teachings of the Sleeping Carp...\n\ [span_notice("Gnashing Teeth")]: Punch Punch. Deal additional damage every second (consecutive) punch! Very good chance to wound!\n\ [span_notice("Crashing Wave Kick")]: Punch Shove. Launch your opponent away from you with incredible force!\n\ [span_notice("Keelhaul")]: Shove Shove. Nonlethally kick an opponent to the floor, knocking them down, discombobulating them and dealing substantial stamina damage. If they're already prone, disarm them as well.\n\ @@ -239,7 +239,7 @@ While in combat mode (and not stunned, not a hulk, and not in a mech), you can reflect all projectiles that come your way, sending them back at the people who fired them! \n\ Also, you are more resilient against suffering wounds in combat, and your limbs cannot be dismembered. This grants you extra staying power during extended combat, especially against slashing and other bleeding weapons. \n\ You are not invincible, however- while you may not suffer debilitating wounds often, you must still watch your health and should have appropriate medical supplies for use during downtime. \n\ - In addition, your training has imbued you with a loathing of guns, and you can no longer use them.") + In addition, your training has imbued you with a loathing of guns, and you can no longer use them.")) /obj/item/staff/bostaff diff --git a/code/datums/martial/spiders_bite.dm b/code/datums/martial/spiders_bite.dm new file mode 100644 index 000000000000..3ace8bdcb1ac --- /dev/null +++ b/code/datums/martial/spiders_bite.dm @@ -0,0 +1,72 @@ +/datum/martial_art/spiders_bite + name = "Spider's Bite" + id = MARTIALART_SPIDERSBITE + help_verb = /mob/living/proc/spiders_bite_help + grab_damage_modifier = 10 + grab_escape_chance_modifier = -20 + /// REF() to the last mob we kicked + var/last_hit_ref + /// Counts the number of sequential kicks the user has landed on a target + var/last_hit_count = 0 + /// Reference to the tackling component applied + var/datum/component/tackler/tackle_comp + +/datum/martial_art/spiders_bite/activate_style(mob/living/new_holder) + . = ..() + RegisterSignal(new_holder, COMSIG_HUMAN_PUNCHED, PROC_REF(kick_disarm)) + tackle_comp = new_holder.AddComponent(/datum/component/tackler, \ + stamina_cost = 20, \ + base_knockdown = 0.2 SECONDS, \ + range = 5, \ + speed = 1.5, \ + skill_mod = 6, \ + min_distance = 1, \ + silent_gain = TRUE, \ + ) + +/datum/martial_art/spiders_bite/deactivate_style(mob/living/old_holder) + . = ..() + UnregisterSignal(old_holder, COMSIG_HUMAN_PUNCHED) + QDEL_NULL(tackle_comp) + +/datum/martial_art/spiders_bite/proc/kick_disarm(mob/living/source, mob/living/target, damage, attack_type, obj/item/bodypart/affecting, final_armor_block, kicking, limb_sharpness) + SIGNAL_HANDLER + + if(!kicking) + last_hit_ref = null + return + var/new_hit_ref = REF(target) + if(last_hit_ref == new_hit_ref) + last_hit_count++ + else + last_hit_count = 1 + last_hit_ref = new_hit_ref + + if(!prob(33 * last_hit_count)) + return + + var/obj/item/weapon = target.get_active_held_item() + if(isnull(weapon) || !target.dropItemToGround(weapon)) + return + source.visible_message( + span_warning("[source] knocks [target]'s [weapon.name] out of [target.p_their()] hands with a kick!"), + span_notice("You channel the flow of gravity and knock [target]'s [weapon.name] out of [target.p_their()] hands with a kick!"), + span_hear("You hear a thud, followed by a clatter."), + ) + +/datum/martial_art/spiders_bite/get_prefered_attacking_limb(mob/living/martial_artist, mob/living/target) + if(!target.has_status_effect(/datum/status_effect/staggered)) + return null + + return IS_LEFT_INDEX(martial_artist.active_hand_index) ? BODY_ZONE_L_LEG : BODY_ZONE_R_LEG + +/mob/living/proc/spiders_bite_help() + set name = "Recall Teachings" + set desc = "Remember the Spider Bite technique used by the Spider Clan." + set category = "Spider's Bite" + + to_chat(usr, span_info("You retreat inward and recall the Spider Clan's techniques...\n\ + • Remember, Many Legged Spider: Unarmed attacks against staggered opponents will always be kicks - granting you greater accuracy and damage.\n\ + • Remember, Jump and Climb: Right clicking on throw mode will perform a tackle which is far far less likely to fail.\n\ + • Remember, Flow of Gravity: Kicking opponents will have a chance to knock their weapons to the floor. The chance increases for each sequential kick.\n\ + • Remember, Wrap in Web: Your grabs will be harder to escape from.")) diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 1358cc20e347..4c66f236525d 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -72,7 +72,7 @@ If you make a derivative work from this code, you must include this notification button_icon_state = "wrassle_slam" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS -/datum/action/slam/Trigger(trigger_flags) +/datum/action/slam/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -85,7 +85,7 @@ If you make a derivative work from this code, you must include this notification button_icon_state = "wrassle_throw" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS -/datum/action/throw_wrassle/Trigger(trigger_flags) +/datum/action/throw_wrassle/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -98,7 +98,7 @@ If you make a derivative work from this code, you must include this notification button_icon_state = "wrassle_kick" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_CONSCIOUS // This is supposed to be usable while cuffed but it probably isn't -/datum/action/kick/Trigger(trigger_flags) +/datum/action/kick/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -111,7 +111,7 @@ If you make a derivative work from this code, you must include this notification button_icon_state = "wrassle_strike" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED|AB_CHECK_CONSCIOUS -/datum/action/strike/Trigger(trigger_flags) +/datum/action/strike/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -124,7 +124,7 @@ If you make a derivative work from this code, you must include this notification button_icon_state = "wrassle_drop" check_flags = AB_CHECK_INCAPACITATED|AB_CHECK_HANDS_BLOCKED -/datum/action/drop/Trigger(trigger_flags) +/datum/action/drop/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/datums/materials/meat.dm b/code/datums/materials/meat.dm index 1937d6c0224c..87f6318a64b3 100644 --- a/code/datums/materials/meat.dm +++ b/code/datums/materials/meat.dm @@ -134,9 +134,10 @@ subjectname = source.name var/datum/blood_type/blood_type = source.get_bloodtype() - color = blood_type.get_color() - - blood_dna = source.get_blood_dna_list() + if (blood_type && blood_type.get_color() != BLOOD_COLOR_RED) + var/list/transition_filter = color_transition_filter(blood_type.get_color()) + color = transition_filter["color"] + blood_dna = source.get_blood_dna_list() if(ishuman(source)) var/mob/living/carbon/human/human_source = source @@ -155,8 +156,10 @@ if(source.exotic_bloodtype) var/datum/blood_type/blood_type = get_blood_type(source.exotic_bloodtype) - color = blood_type.get_color() - blood_dna = list("[blood_type.dna_string]" = blood_type) + if (blood_type && blood_type.get_color() != BLOOD_COLOR_RED) + var/list/transition_filter = color_transition_filter(blood_type.get_color()) + color = transition_filter["color"] + blood_dna = list("[blood_type.dna_string]" = blood_type) return ..() @@ -170,8 +173,9 @@ var/list/blood_data = source.data name = "[blood_data["real_name"] || "mystery"] [initial(name)]" var/datum/blood_type/blood_type = blood_data["blood_type"] - if(blood_type) - color = blood_type.get_color() + if(blood_type && blood_type.get_color() != BLOOD_COLOR_RED) + var/list/transition_filter = color_transition_filter(blood_type.get_color()) + color = transition_filter["color"] blood_dna = list("[blood_type.dna_string]" = blood_type) else color = source.color diff --git a/code/datums/mood.dm b/code/datums/mood.dm index 08d493ada1ca..43fa67907751 100644 --- a/code/datums/mood.dm +++ b/code/datums/mood.dm @@ -81,9 +81,9 @@ if(MOOD_LEVEL_SAD4) adjust_sanity(-0.3 * seconds_per_tick, SANITY_INSANE) if(MOOD_LEVEL_SAD3) - adjust_sanity(-0.15 * seconds_per_tick, SANITY_INSANE) + adjust_sanity(-0.15 * seconds_per_tick, SANITY_CRAZY) if(MOOD_LEVEL_SAD2) - adjust_sanity(-0.1 * seconds_per_tick, SANITY_CRAZY) + adjust_sanity(-0.1 * seconds_per_tick, SANITY_UNSTABLE) if(MOOD_LEVEL_SAD1) adjust_sanity(-0.05 * seconds_per_tick, SANITY_UNSTABLE) if(MOOD_LEVEL_NEUTRAL) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index f5884d509ac1..2c5a97495509 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -519,7 +519,7 @@ /datum/mood_event/encountered_evil description = "I didn't want to believe it, but there are people out there that are genuinely evil." - mood_change = -4 + mood_change = -1 timeout = 1 MINUTES /datum/mood_event/smoke_in_face diff --git a/code/datums/mutations/reach.dm b/code/datums/mutations/reach.dm index 6c152da71bf0..e5757346f9b9 100644 --- a/code/datums/mutations/reach.dm +++ b/code/datums/mutations/reach.dm @@ -66,7 +66,7 @@ /// signal sent when prompting if an item can be equipped /datum/mutation/elastic_arms/proc/on_owner_equipping_item(mob/living/carbon/human/owner, obj/item/pick_item) SIGNAL_HANDLER - if((pick_item.w_class > WEIGHT_CLASS_BULKY) && !(pick_item.item_flags & ABSTRACT|HAND_ITEM)) // cant decide if i should limit to huge or bulky. + if((pick_item.w_class > WEIGHT_CLASS_BULKY) && !(pick_item.item_flags & (ABSTRACT|HAND_ITEM))) // cant decide if i should limit to huge or bulky. pick_item.balloon_alert(owner, "arms too floppy to wield!") return COMPONENT_LIVING_CANT_PUT_IN_HAND diff --git a/code/datums/mutations/tongue_spike.dm b/code/datums/mutations/tongue_spike.dm index c63f4cbd7032..4d908b6f9594 100644 --- a/code/datums/mutations/tongue_spike.dm +++ b/code/datums/mutations/tongue_spike.dm @@ -159,7 +159,7 @@ if(!istype(target, /obj/item/hardened_spike/chem)) qdel(src) -/datum/action/send_chems/Trigger(trigger_flags) +/datum/action/send_chems/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return FALSE diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index 4c6e42d36b03..1badba3f160a 100644 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -213,7 +213,7 @@ if(id_trim) if(!SSid_access.apply_trim_to_card(id_card, id_trim)) WARNING("Unable to apply trim [id_trim] to [id_card] in outfit [name].") - user.sec_hud_set_ID() + user.update_ID_card() if(suit_store) EQUIP_OUTFIT_ITEM(suit_store, ITEM_SLOT_SUITSTORE) diff --git a/code/datums/quirks/negative_quirks/allergic.dm b/code/datums/quirks/negative_quirks/allergic.dm index 4628bab0c0d7..a2442adab10e 100644 --- a/code/datums/quirks/negative_quirks/allergic.dm +++ b/code/datums/quirks/negative_quirks/allergic.dm @@ -20,7 +20,8 @@ /datum/reagent/medicine/cordiolis_hepatico, /datum/reagent/medicine/synaphydramine, /datum/reagent/medicine/diphenhydramine, - /datum/reagent/medicine/sansufentanyl + /datum/reagent/medicine/sansufentanyl, + /datum/reagent/medicine/salglu_solution, ) var/allergy_string diff --git a/code/datums/quirks/negative_quirks/family_heirloom.dm b/code/datums/quirks/negative_quirks/family_heirloom.dm index 8d2a080c534f..8b3d826cb84f 100644 --- a/code/datums/quirks/negative_quirks/family_heirloom.dm +++ b/code/datums/quirks/negative_quirks/family_heirloom.dm @@ -58,7 +58,7 @@ /datum/quirk/item_quirk/family_heirloom/process() var/obj/family_heirloom = heirloom?.resolve() - if(family_heirloom && (family_heirloom in quirk_holder.get_all_contents())) + if(family_heirloom && quirk_holder.contains(family_heirloom)) quirk_holder.clear_mood_event("family_heirloom_missing") quirk_holder.add_mood_event("family_heirloom", /datum/mood_event/family_heirloom) else diff --git a/code/datums/quirks/negative_quirks/fluoride_stare.dm b/code/datums/quirks/negative_quirks/fluoride_stare.dm index 1bd2dd91acfc..97b9c75f3e97 100644 --- a/code/datums/quirks/negative_quirks/fluoride_stare.dm +++ b/code/datums/quirks/negative_quirks/fluoride_stare.dm @@ -28,7 +28,7 @@ /datum/quirk/item_quirk/fluoride_stare/add(client/client_source) ADD_TRAIT(quirk_holder, TRAIT_NO_EYELIDS, QUIRK_TRAIT) - quirk_holder.AddComponent(/datum/component/manual_blinking, 1, 30 SECONDS, 10 SECONDS, FALSE) + quirk_holder.AddComponent(/datum/component/manual_blinking, 0.5, 3 MINUTES, 30 SECONDS, FALSE) /datum/quirk/item_quirk/fluoride_stare/remove() REMOVE_TRAIT(quirk_holder, TRAIT_NO_EYELIDS, QUIRK_TRAIT) diff --git a/code/datums/quirks/positive_quirks/settler.dm b/code/datums/quirks/positive_quirks/settler.dm index ad19b9d74172..774919bdda6c 100644 --- a/code/datums/quirks/positive_quirks/settler.dm +++ b/code/datums/quirks/positive_quirks/settler.dm @@ -1,4 +1,4 @@ -/datum/quirk/item_quirk/settler +/datum/quirk/settler name = "Settler" desc = "You are from a lineage of the earliest space settlers! While your family's generational exposure to varying gravity \ has resulted in a ... smaller height than is typical for your species, you make up for it by being much better at outdoorsmanship and \ @@ -23,22 +23,16 @@ TRAIT_STURDY_FRAME, ) -/datum/quirk/item_quirk/settler/add(client/client_source) +/datum/quirk/settler/add(client/client_source) var/mob/living/carbon/human/human_quirkholder = quirk_holder human_quirkholder.set_mob_height(HUMAN_HEIGHT_SHORTEST) human_quirkholder.add_movespeed_modifier(/datum/movespeed_modifier/settler) - human_quirkholder.physiology.hunger_mod *= 0.75 //good for you, shortass, you don't get hungry nearly as often human_quirkholder.add_traits(settler_traits, QUIRK_TRAIT) -/datum/quirk/item_quirk/settler/add_unique(client/client_source) - give_item_to_holder(/obj/item/storage/box/papersack/wheat, list(LOCATION_BACKPACK, LOCATION_HANDS)) - give_item_to_holder(/obj/item/storage/toolbox/fishing/small, list(LOCATION_BACKPACK, LOCATION_HANDS)) - -/datum/quirk/item_quirk/settler/remove() +/datum/quirk/settler/remove() if(QDELING(quirk_holder)) return var/mob/living/carbon/human/human_quirkholder = quirk_holder human_quirkholder.set_mob_height(HUMAN_HEIGHT_MEDIUM) human_quirkholder.remove_movespeed_modifier(/datum/movespeed_modifier/settler) - human_quirkholder.physiology.hunger_mod /= 0.75 human_quirkholder.remove_traits(settler_traits, QUIRK_TRAIT) diff --git a/code/datums/ruins/icemoon.dm b/code/datums/ruins/icemoon.dm index 8101acfc0c48..dffe313c1200 100644 --- a/code/datums/ruins/icemoon.dm +++ b/code/datums/ruins/icemoon.dm @@ -79,6 +79,12 @@ description = "Here lies Charles Morlbaro. He died the way he lived." suffix = "icemoon_surface_smoking_room.dmm" +/datum/map_template/ruin/icemoon/roro + name = "Ice-Ruin RoroCo Factory" + id = "gloves" + description = "A manufacturing and packaging facility producing insulated gloves." + suffix = "icemoon_surface_gloves.dmm" + // above and below ground together /datum/map_template/ruin/icemoon/mining_site diff --git a/code/datums/saymode.dm b/code/datums/saymode.dm index 5e67d960b421..951c805f0af7 100644 --- a/code/datums/saymode.dm +++ b/code/datums/saymode.dm @@ -1,20 +1,40 @@ /datum/saymode + /// The symbol key used to enable this say mode. var/key + /// The corresponding say mode string. var/mode + /// Whether this say mode works with custom say emotes. + var/allows_custom_say_emotes = FALSE -//Return FALSE if you have handled the message. Otherwise, return TRUE and saycode will continue doing saycode things. -//user = whoever said the message -//message = the message -//language = the language. -/datum/saymode/proc/handle_message(mob/living/user, message, datum/language/language) +/// Checks whether this saymode can be used by the given user. May send feedback. +/datum/saymode/proc/can_be_used_by(mob/living/user) return TRUE +/** + * Handles actually modifying or forwarding our message. + * Returns `SAYMODE_[X]` flags. + * + * user - The living speaking using this say mode. + * message - The message to be said. + * spans - A list of spans to attach to the message. + * language - The language the message was said in. + * message_mods - A list of message modifiers, i.e. whispering/singing. + */ +/datum/saymode/proc/handle_message( + mob/living/user, + message, + list/spans = list(), + datum/language/language, + list/message_mods = list() +) + return NONE + + /datum/saymode/changeling key = MODE_KEY_CHANGELING mode = MODE_CHANGELING -/datum/saymode/changeling/handle_message(mob/living/user, message, datum/language/language) - //we can send the message +/datum/saymode/changeling/can_be_used_by(mob/living/user) if(!user.mind) return FALSE if(user.mind.has_antag_datum(/datum/antagonist/fallen_changeling)) @@ -26,11 +46,20 @@ if(HAS_TRAIT(user, TRAIT_CHANGELING_HIVEMIND_MUTE)) to_chat(user, span_warning("The poison in the air hinders our ability to interact with the hivemind.")) return FALSE + return TRUE - user.log_talk(message, LOG_SAY, tag="changeling [ling_sender.changelingID]") +/datum/saymode/changeling/handle_message/handle_message( + mob/living/user, + message, + list/spans = list(), + datum/language/language, + list/message_mods = list() +) + var/datum/antagonist/changeling/ling_sender = IS_CHANGELING(user) + user.log_talk(message, LOG_SAY, tag = "changeling [ling_sender.changelingID]") var/msg = span_changeling("[ling_sender.changelingID]: [message]") - //the recipients can receive the message + // Send the message to our other changelings. for(var/datum/antagonist/changeling/ling_receiver in GLOB.antagonists) if(!ling_receiver.owner) continue @@ -45,54 +74,96 @@ for(var/mob/dead/ghost as anything in GLOB.dead_mob_list) to_chat(ghost, "[FOLLOW_LINK(ghost, user)] [msg]", type = MESSAGE_TYPE_RADIO) - return FALSE + return SAYMODE_MESSAGE_HANDLED + /datum/saymode/xeno - key = "a" + key = MODE_KEY_ALIEN mode = MODE_ALIEN + allows_custom_say_emotes = TRUE -/datum/saymode/xeno/handle_message(mob/living/user, message, datum/language/language) - if(user.hivecheck()) - user.alien_talk(message) - return FALSE +/datum/saymode/xeno/can_be_used_by(mob/living/user) + if(!user.hivecheck()) + return FALSE + return TRUE + +/datum/saymode/xeno/handle_message/handle_message( + mob/living/user, + message, + list/spans = list(), + datum/language/language, + list/message_mods = list() +) + user.alien_talk(message, spans, message_mods) + return SAYMODE_MESSAGE_HANDLED /datum/saymode/vocalcords key = MODE_KEY_VOCALCORDS mode = MODE_VOCALCORDS -/datum/saymode/vocalcords/handle_message(mob/living/user, message, datum/language/language) - if(iscarbon(user)) - var/mob/living/carbon/C = user - var/obj/item/organ/vocal_cords/V = C.get_organ_slot(ORGAN_SLOT_VOICE) - if(V?.can_speak_with()) - V.handle_speech(message) //message - V.speak_with(message) //action - return FALSE +/datum/saymode/vocalcords/can_be_used_by(mob/living/user) + if(!iscarbon(user)) + return FALSE + return TRUE + +/datum/saymode/vocalcords/handle_message/handle_message( + mob/living/user, + message, + list/spans = list(), + datum/language/language, + list/message_mods = list() +) + var/mob/living/carbon/carbon_user = user + var/obj/item/organ/vocal_cords/our_vocal_cords = carbon_user.get_organ_slot(ORGAN_SLOT_VOICE) + if(our_vocal_cords?.can_speak_with()) + our_vocal_cords.handle_speech(message) //message + our_vocal_cords.speak_with(message) //action + return SAYMODE_MESSAGE_HANDLED /datum/saymode/binary //everything that uses .b (silicons, drones) key = MODE_KEY_BINARY mode = MODE_BINARY + allows_custom_say_emotes = TRUE + +/datum/saymode/binary/can_be_used_by(mob/living/user) + if(!isdrone(user) && !user.binarycheck()) + return FALSE + return TRUE -/datum/saymode/binary/handle_message(mob/living/user, message, datum/language/language) +/datum/saymode/binary/handle_message/handle_message( + mob/living/user, + message, + list/spans = list(), + datum/language/language, + list/message_mods = list() +) if(isdrone(user)) var/mob/living/basic/drone/drone_user = user - drone_user.drone_chat(message) - return FALSE - if(user.binarycheck()) - user.robot_talk(message) - return FALSE - return FALSE + drone_user.drone_chat(message, spans, message_mods) + else if(user.binarycheck()) + user.robot_talk(message, spans, message_mods) + return SAYMODE_MESSAGE_HANDLED /datum/saymode/holopad - key = "h" + key = MODE_KEY_HOLOPAD mode = MODE_HOLOPAD + allows_custom_say_emotes = TRUE -/datum/saymode/holopad/handle_message(mob/living/user, message, datum/language/language) - if(isAI(user)) - var/mob/living/silicon/ai/AI = user - AI.holopad_talk(message, language) +/datum/saymode/holopad/can_be_used_by(mob/living/user) + if(!isAI(user)) return FALSE return TRUE + +/datum/saymode/holopad/handle_message/handle_message( + mob/living/user, + message, + list/spans = list(), + datum/language/language, + list/message_mods = list() +) + var/mob/living/silicon/ai/ai_user = user + ai_user.holopad_talk(message, spans, language, message_mods) + return SAYMODE_MESSAGE_HANDLED diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index b11c2bc983ed..39c863348ff2 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -64,7 +64,7 @@ var/strict_coverage_zones = NONE /datum/hair_mask/standard_hat_middle - icon_state = "hide_above_45deg_medium" + icon_state = "hide_above_45deg" strict_coverage_zones = HAIR_APPENDAGE_TOP /datum/hair_mask/standard_hat_low diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 3dcad01f284b..beef6f2ba09a 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -6,6 +6,21 @@ tick_interval = 0.4 SECONDS alert_type = /atom/movable/screen/alert/status_effect/his_grace var/bloodlust = 0 + var/gender = MALE + var/word + var/word2 + +/datum/status_effect/his_grace/on_creation(mob/living/new_owner, inputgender) + . = ..() + gender = inputgender + if(gender == MALE) + word = "His" + word2 = "Him" + linked_alert.icon_state = "his_grace" + else + word = "Her" + word2 = "Her" + linked_alert.icon_state = "her_grace" /atom/movable/screen/alert/status_effect/his_grace name = "His Grace" @@ -16,6 +31,11 @@ /atom/movable/screen/alert/status_effect/his_grace/MouseEntered(location,control,params) desc = initial(desc) var/datum/status_effect/his_grace/HG = attached_effect + var/His = HG.word + var/Him = HG.word2 + name = "[His] Grace" + desc = "[His] Grace hungers, and you must feed [Him]." + icon_state = "[LOWER_TEXT(His)]_grace" desc += "
Current Bloodthirst: [HG.bloodlust]\
Becomes undroppable at [HIS_GRACE_FAMISHED]\
Will consume you at [HIS_GRACE_CONSUME_OWNER]" @@ -25,7 +45,7 @@ owner.add_stun_absorption( source = id, priority = 3, - self_message = span_boldwarning("His Grace protects you from the stun!"), + self_message = span_boldwarning("[word] Grace protects you from the stun!"), ) return ..() @@ -41,7 +61,7 @@ if(HG.awakened) graces++ if(!graces) - owner.apply_status_effect(/datum/status_effect/his_wrath) + owner.apply_status_effect(/datum/status_effect/his_wrath, word, word2) qdel(src) return var/grace_heal = bloodlust * 0.02 @@ -392,12 +412,12 @@ /datum/status_effect/lightningorb/on_apply() . = ..() - owner.add_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) + owner.add_movespeed_modifier(/datum/movespeed_modifier/status_effect/yellow_orb) to_chat(owner, span_notice("You feel fast!")) /datum/status_effect/lightningorb/on_remove() . = ..() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/yellow_orb) + owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/yellow_orb) to_chat(owner, span_notice("You slow down.")) /atom/movable/screen/alert/status_effect/lightningorb @@ -454,18 +474,22 @@ status_type = STATUS_EFFECT_REPLACE show_duration = TRUE alert_type = null + ///What speed datum do we apply? + var/move_datum = /datum/movespeed_modifier/status_speed_boost /datum/status_effect/speed_boost/on_creation(mob/living/new_owner, set_duration) if(isnum(set_duration)) duration = set_duration + new_owner.do_alert_animation() + playsound(new_owner, 'sound/machines/chime.ogg', 50, FALSE, -5) . = ..() /datum/status_effect/speed_boost/on_apply() - owner.add_movespeed_modifier(/datum/movespeed_modifier/status_speed_boost, update = TRUE) + owner.add_movespeed_modifier(move_datum, update = TRUE) return ..() /datum/status_effect/speed_boost/on_remove() - owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_speed_boost, update = TRUE) + owner.remove_movespeed_modifier(move_datum, update = TRUE) /datum/movespeed_modifier/status_speed_boost multiplicative_slowdown = -1 diff --git a/code/datums/status_effects/debuffs/debuffs.dm b/code/datums/status_effects/debuffs/debuffs.dm index 9c28809a9d1b..3ae33be7acd2 100644 --- a/code/datums/status_effects/debuffs/debuffs.dm +++ b/code/datums/status_effects/debuffs/debuffs.dm @@ -313,6 +313,12 @@ tick_interval = 0.4 SECONDS alert_type = /atom/movable/screen/alert/status_effect/his_wrath +/datum/status_effect/his_wrath/on_creation(mob/living/new_owner, His, Him) + . = ..() + linked_alert.name = "[His] Wrath" + linked_alert.desc = "You fled from [His] Grace instead of feeding [Him], and now you suffer." + linked_alert.icon_state = "[LOWER_TEXT(His)]_grace" + /atom/movable/screen/alert/status_effect/his_wrath name = "His Wrath" desc = "You fled from His Grace instead of feeding Him, and now you suffer." @@ -397,9 +403,7 @@ stack_threshold = 10 max_stacks = 10 overlay_file = 'icons/effects/bleed.dmi' - underlay_file = 'icons/effects/bleed.dmi' overlay_state = "bleed" - underlay_state = "bleed" var/bleed_damage = 200 /datum/status_effect/stacking/saw_bleed/fadeout_effect() diff --git a/code/datums/status_effects/debuffs/hallucination.dm b/code/datums/status_effects/debuffs/hallucination.dm index d16384291040..e5528a663821 100644 --- a/code/datums/status_effects/debuffs/hallucination.dm +++ b/code/datums/status_effects/debuffs/hallucination.dm @@ -93,7 +93,7 @@ var/lower_cd = lower_tick_interval var/upper_cd = upper_tick_interval - if(!variable_tier) + if(variable_tier) var/seconds_left = (duration - world.time) / 10 switch(seconds_left) if(0 to 20) diff --git a/code/datums/status_effects/stacking_effect.dm b/code/datums/status_effects/stacking_effect.dm index 5f396a6817f2..287419028b07 100644 --- a/code/datums/status_effects/stacking_effect.dm +++ b/code/datums/status_effects/stacking_effect.dm @@ -24,19 +24,20 @@ /// Icon file for overlays applied when the status effect is applied var/overlay_file - /// Icon file for underlays applied when the status effect is applied - var/underlay_file /// Icon state for overlays applied when the status effect is applied /// States in the file must be given a name, followed by a number which corresponds to a number of stacks. /// Put the state name without the number in these state vars var/overlay_state - /// Icon state for underlays applied when the status effect is applied - /// The number is concatenated onto the string based on the number of stacks to get the correct state name. - var/underlay_state /// A reference to our overlay appearance var/mutable_appearance/status_overlay - /// A reference to our underlay appearance - var/mutable_appearance/status_underlay + +/datum/status_effect/stacking/Destroy() + if(!owner || !status_overlay) + return ..() + + owner.cut_overlay(status_overlay) + QDEL_NULL(status_overlay) + return ..() /// Effects that occur when the stack count crosses stack_threshold /datum/status_effect/stacking/proc/threshold_cross_effect() @@ -75,40 +76,6 @@ /datum/status_effect/stacking/proc/can_gain_stacks() return owner.stat != DEAD -/datum/status_effect/stacking/tick(seconds_between_ticks) - if(!can_have_status()) - qdel(src) - else - add_stacks(-stack_decay) - stack_decay_effect() - -/// Add (or remove) [stacks_added] stacks to our current stack count. -/datum/status_effect/stacking/proc/add_stacks(stacks_added) - if(stacks_added > 0 && !can_gain_stacks()) - return FALSE - owner.cut_overlay(status_overlay) - owner.underlays -= status_underlay - stacks += stacks_added - if(stacks > 0) - if(stacks >= stack_threshold && !threshold_crossed) //threshold_crossed check prevents threshold effect from occurring if changing from above threshold to still above threshold - threshold_crossed = TRUE - on_threshold_cross() - if(consumed_on_threshold) - return - else if(stacks < stack_threshold && threshold_crossed) - threshold_crossed = FALSE //resets threshold effect if we fall below threshold so threshold effect can trigger again - on_threshold_drop() - if(stacks_added > 0) - tick_interval += delay_before_decay //refreshes time until decay - stacks = min(stacks, max_stacks) - status_overlay.icon_state = "[overlay_state][stacks]" - status_underlay.icon_state = "[underlay_state][stacks]" - owner.add_overlay(status_overlay) - owner.underlays += status_underlay - else - fadeout_effect() - qdel(src) //deletes status if stacks fall under one - /datum/status_effect/stacking/on_creation(mob/living/new_owner, stacks_to_apply) . = ..() if(.) @@ -117,22 +84,47 @@ /datum/status_effect/stacking/on_apply() if(!can_have_status()) return FALSE + if(!overlay_file || !overlay_state) + return ..() status_overlay = mutable_appearance(overlay_file, "[overlay_state][stacks]") - status_underlay = mutable_appearance(underlay_file, "[underlay_state][stacks]") var/icon_height = owner.get_cached_height() status_overlay.pixel_w = -owner.pixel_x status_overlay.pixel_z = FLOOR(icon_height * 0.25, 1) - status_overlay.transform = matrix() * (icon_height/ICON_SIZE_Y) //scale the status's overlay size based on the target's icon size - status_underlay.pixel_w = -owner.pixel_x - status_underlay.transform = matrix() * (icon_height/ICON_SIZE_Y) * 3 - status_underlay.alpha = 40 + status_overlay.transform = matrix() * (icon_height / ICON_SIZE_Y) //scale the status's overlay size based on the target's icon size owner.add_overlay(status_overlay) - owner.underlays += status_underlay return ..() -/datum/status_effect/stacking/Destroy() - if(owner) +/datum/status_effect/stacking/tick(seconds_between_ticks) + if(!can_have_status()) + qdel(src) + else + add_stacks(-stack_decay) + stack_decay_effect() + +/// Add (or remove) [stacks_added] stacks to our current stack count. +/datum/status_effect/stacking/proc/add_stacks(stacks_added) + if(stacks_added > 0 && !can_gain_stacks()) + return FALSE + if(status_overlay) owner.cut_overlay(status_overlay) - owner.underlays -= status_underlay - QDEL_NULL(status_overlay) - return ..() + stacks = min(stacks + stacks_added, max_stacks) + if(stacks <= 0) + fadeout_effect() + qdel(src) // deletes status if stacks fall under one + return + + if(stacks >= stack_threshold && !threshold_crossed) // threshold_crossed check prevents threshold effect from occurring if changing from above threshold to still above threshold + threshold_crossed = TRUE + on_threshold_cross() + if(consumed_on_threshold) + return + else if(stacks < stack_threshold && threshold_crossed) + threshold_crossed = FALSE // resets threshold effect if we fall below threshold so threshold effect can trigger again + on_threshold_drop() + + if(stacks_added > 0) + tick_interval += delay_before_decay // refreshes time until decay + + if (status_overlay) + status_overlay.icon_state = "[overlay_state][stacks]" + owner.add_overlay(status_overlay) diff --git a/code/datums/weather/weather_types/rain_storm.dm b/code/datums/weather/weather_types/rain_storm.dm index 31254fd42a55..1a4da05eb2af 100644 --- a/code/datums/weather/weather_types/rain_storm.dm +++ b/code/datums/weather/weather_types/rain_storm.dm @@ -129,11 +129,11 @@ GLOB.wizard_rain_reagents |= allowed_medicine // One randomized type is allowed so the whitelist isn't spammed with subtypes - GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/glitter)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/mutationtoxin)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/plantnutriment)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/impurity)) GLOB.wizard_rain_reagents |= pick(subtypesof(/datum/reagent/drug)) + GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/glitter/random)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/uranium)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/luminescent_fluid)) GLOB.wizard_rain_reagents |= pick(typesof(/datum/reagent/carpet)) diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 37ed5ab5caef..6eaa0bc49024 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -93,3 +93,24 @@ vending_machine.scan_id = mend if(WIRE_SPEAKER) vending_machine.shut_up = mend + + +/** + * Shock the passed in user + * + * This checks we have power and that the passed in prob is passed, then generates some sparks + * and calls electrocute_mob on the user + * + * Arguments: + * * user - the user to shock + * * shock_chance - probability the shock happens + */ +/obj/machinery/vending/proc/shock(mob/living/user, shock_chance) + if(!istype(user) || machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock + return FALSE + if(!prob(shock_chance)) + return FALSE + do_sparks(5, TRUE, src) + if(electrocute_mob(user, get_area(src), src, 0.7, dist_check = TRUE)) + return TRUE + return FALSE diff --git a/code/datums/world_topic.dm b/code/datums/world_topic.dm index c81b29097546..693638c3aaa4 100644 --- a/code/datums/world_topic.dm +++ b/code/datums/world_topic.dm @@ -304,14 +304,8 @@ var/author_key = input["author_ckey"] var/channel_name = input["message"] - var/found_channel = FALSE - for(var/datum/feed_channel/channel as anything in GLOB.news_network.network_channels) - if(channel.channel_name == channel_name) - found_channel = TRUE - break - - // No channel with a matching name, abort - if (!found_channel) + var/datum/feed_channel/chosen_channel = GLOB.news_network.network_channels_by_name[channel_name] + if(isnull(chosen_channel)) // No channel with a matching name, abort return message_admins(span_adminnotice("Incoming cross-sector newscaster article by [author_key] in channel [channel_name].")) diff --git a/code/datums/wounds/bones.dm b/code/datums/wounds/bones.dm index f0d6fefe07c0..8103f7047f1a 100644 --- a/code/datums/wounds/bones.dm +++ b/code/datums/wounds/bones.dm @@ -279,6 +279,8 @@ if(prob(40)) victim.visible_message(span_danger("[victim]'s dislocated [limb.plaintext_zone] pops back into place!"), span_userdanger("Your dislocated [limb.plaintext_zone] pops back into place! Ow!")) remove_wound() + return DOORCRUSH_NO_WOUND + return NONE /datum/wound/blunt/bone/moderate/try_handling(mob/living/user) if(user.usable_hands <= 0 || user.pulling != victim) diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm index 50e078959fd1..9f0bcfab8f6d 100644 --- a/code/game/area/areas/mining.dm +++ b/code/game/area/areas/mining.dm @@ -217,8 +217,10 @@ /// this is the area you use for stuff to not spawn, but if you still want weather. /area/icemoon/surface/outdoors/nospawn -// unless you roll forested trait lol (fuck you time green) -/area/icemoon/surface/outdoors/nospawn/New() +/area/icemoon/surface/outdoors/less_spawns + icon_state = "less_spawns" + +/area/icemoon/surface/outdoors/less_spawns/New() . = ..() // this area SOMETIMES does map generation. Often it doesn't at all // so it SHOULD NOT be used with the genturf turf type, as it is not always replaced @@ -227,6 +229,16 @@ // flip this on, the generator has already disabled dangerous fauna area_flags = MOB_SPAWN_ALLOWED | FLORA_ALLOWED +/area/icemoon/surface/outdoors/always_forested + icon_state = "forest" + map_generator = /datum/map_generator/cave_generator/icemoon/surface/forested + area_flags = MOB_SPAWN_ALLOWED | FLORA_ALLOWED | CAVES_ALLOWED + +/area/icemoon/surface/outdoors/rocky + icon_state = "rocky" + map_generator = /datum/map_generator/cave_generator/icemoon/surface/rocky + area_flags = MOB_SPAWN_ALLOWED | FLORA_ALLOWED | CAVES_ALLOWED + /area/icemoon/surface/outdoors/noteleport // for places like the cursed spring water area_flags = UNIQUE_AREA | FLORA_ALLOWED | NOTELEPORT diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index bc9a9226316d..7dff4bdba551 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -54,7 +54,6 @@ /area/ruin/pizzeria/kitchen name = "\improper Moffuchi's Kitchen" - /area/ruin/syndibiodome name = "\improper Syndicate Biodome" sound_environment = SOUND_AREA_SMALL_ENCLOSED diff --git a/code/game/atom/_atom.dm b/code/game/atom/_atom.dm index 63cbfe69317e..10aa9c8345af 100644 --- a/code/game/atom/_atom.dm +++ b/code/game/atom/_atom.dm @@ -414,18 +414,15 @@ * - [reagents][/list]: The list of reagents the atom is being exposed to. * - [source][/datum/reagents]: The reagent holder the reagents are being sourced from. * - methods: How the atom is being exposed to the reagents. Bitflags. - * - volume_modifier: Volume multiplier. * - show_message: Whether to display anything to mobs when they are exposed. */ -/atom/proc/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) - . = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, methods, volume_modifier, show_message) +/atom/proc/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, show_message=TRUE) + . = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, methods, show_message) if(. & COMPONENT_NO_EXPOSE_REAGENTS) return - SEND_SIGNAL(source, COMSIG_REAGENTS_EXPOSE_ATOM, src, reagents, methods, volume_modifier, show_message) for(var/datum/reagent/current_reagent as anything in reagents) . |= current_reagent.expose_atom(src, reagents[current_reagent], methods) - SEND_SIGNAL(src, COMSIG_ATOM_AFTER_EXPOSE_REAGENTS, reagents, source, methods, volume_modifier, show_message) /// Are you allowed to drop this atom /atom/proc/AllowDrop() @@ -652,25 +649,25 @@ /atom/proc/StartProcessingAtom(mob/living/user, obj/item/process_item, list/chosen_option) var/processing_time = chosen_option[TOOL_PROCESSING_TIME] to_chat(user, span_notice("You start working on [src].")) - if(process_item.use_tool(src, user, processing_time, volume=50)) - var/atom/atom_to_create = chosen_option[TOOL_PROCESSING_RESULT] - var/list/atom/created_atoms = list() - var/amount_to_create = chosen_option[TOOL_PROCESSING_AMOUNT] - for(var/i = 1 to amount_to_create) - var/atom/created_atom = new atom_to_create(drop_location()) - created_atom.OnCreatedFromProcessing(user, process_item, chosen_option, src) - if(custom_materials) - created_atom.set_custom_materials(custom_materials, 1 / amount_to_create) - created_atom.pixel_x = pixel_x - created_atom.pixel_y = pixel_y - if(i > 1) - created_atom.pixel_x += rand(-8,8) - created_atom.pixel_y += rand(-8,8) - created_atoms.Add(created_atom) - to_chat(user, span_notice("You manage to create [amount_to_create] [initial(atom_to_create.gender) == PLURAL ? "[initial(atom_to_create.name)]" : "[initial(atom_to_create.name)][plural_s(initial(atom_to_create.name))]"] from [src].")) - SEND_SIGNAL(src, COMSIG_ATOM_PROCESSED, user, process_item, created_atoms) - UsedforProcessing(user, process_item, chosen_option, created_atoms) + if(!process_item.use_tool(src, user, processing_time, volume=50)) return + var/atom/atom_to_create = chosen_option[TOOL_PROCESSING_RESULT] + var/list/atom/created_atoms = list() + var/amount_to_create = chosen_option[TOOL_PROCESSING_AMOUNT] + for(var/i = 1 to amount_to_create) + var/atom/created_atom = new atom_to_create(drop_location()) + created_atom.OnCreatedFromProcessing(user, process_item, chosen_option, src) + if(custom_materials) + created_atom.set_custom_materials(custom_materials, 1 / amount_to_create) + created_atom.pixel_x = pixel_x + created_atom.pixel_y = pixel_y + if(i > 1) + created_atom.pixel_x += rand(-8,8) + created_atom.pixel_y += rand(-8,8) + created_atoms.Add(created_atom) + to_chat(user, span_notice("You manage to create [amount_to_create] [initial(atom_to_create.gender) == PLURAL ? "[initial(atom_to_create.name)]" : "[initial(atom_to_create.name)][plural_s(initial(atom_to_create.name))]"] from [src].")) + SEND_SIGNAL(src, COMSIG_ATOM_PROCESSED, user, process_item, created_atoms) + UsedforProcessing(user, process_item, chosen_option, created_atoms) /atom/proc/UsedforProcessing(mob/living/user, obj/item/used_item, list/chosen_option, list/created_atoms) qdel(src) diff --git a/code/game/atom/atom_color.dm b/code/game/atom/atom_color.dm index 3c01429efc4c..b042624d2644 100644 --- a/code/game/atom/atom_color.dm +++ b/code/game/atom/atom_color.dm @@ -123,4 +123,19 @@ overlay.color = color if (!cached_color_filter) return overlay - return filter_appearance_recursive(overlay, cached_color_filter) + // Apply the atom's color filter to the overlay using named filters so that + // later calls to add_filter/update_filters (e.g., height displacement filters) + // do not wipe out our coloration. Mirror prior behavior by propagating to + // child overlays unless KEEP_TOGETHER is present. + overlay.add_filter(ATOM_PRIORITY_COLOR_FILTER, ATOM_PRIORITY_COLOR_FILTER_PRIORITY, cached_color_filter) + + if(!(overlay.appearance_flags & KEEP_TOGETHER)) + // Recursively ensure any nested overlays/underlays also get the color filter + for(var/mutable_appearance/child_overlay as anything in overlay.overlays) + if(!(child_overlay.appearance_flags & KEEP_APART)) + color_atom_overlay(child_overlay) + for(var/mutable_appearance/child_underlay as anything in overlay.underlays) + if(!(child_underlay.appearance_flags & KEEP_APART)) + color_atom_overlay(child_underlay) + + return overlay diff --git a/code/game/atom/atom_materials.dm b/code/game/atom/atom_materials.dm index 1c227db2394e..542930919ce5 100644 --- a/code/game/atom/atom_materials.dm +++ b/code/game/atom/atom_materials.dm @@ -394,3 +394,49 @@ */ /atom/proc/get_custom_material_amount() return isnull(custom_materials) ? 0 : counterlist_sum(custom_materials) + + +/** + * A bit of leeway when comparing the amount of material of two items. + * This was made to test the material composition of items spawned via crafting/processable component and an items of the same type spawned + * via other means, since small portion of materials can be lost when rounding down values to the nearest integers and we can't do much about it. + * (eg. a slab of meat worth 100 mat points is cut in three cutlets, each 33, with the remaining 1 percent lost to rounding) + * + * right now it's 3 points per 100 units of a material. + * + */ + +#define COMPARISION_ACCEPTABLE_MATERIAL_DEVIATION 0.03 + +/// Compares the materials of two items to see if they're roughly the same. Primarily used in crafting and processing unit tests. +/atom/proc/compare_materials(atom/target) + if(length(custom_materials) != length(target.custom_materials)) + return FALSE + for(var/mat in custom_materials) + var/enemy_amount = target.custom_materials[mat] + if(!enemy_amount) //we couldn't find said material, early return so we won't perform a division by zero + return FALSE + var/ratio_difference = abs((custom_materials[mat] / enemy_amount) - 1) + if(ratio_difference > COMPARISION_ACCEPTABLE_MATERIAL_DEVIATION) + return FALSE + return TRUE + +#undef COMPARISION_ACCEPTABLE_MATERIAL_DEVIATION + +/** + * Returns a string with the materials and their respective amounts in it (eg. [list(/datum/material/meat = 100, /datum/material/plastic = 10)] ) + * also used in several unit tests. + */ +/atom/proc/get_materials_english_list() + if(!custom_materials) + return "null" + var/text = "\[list(" + var/index = 1 + var/mats_len = length(custom_materials) + for(var/datum/material/mat as anything in custom_materials) + text += "[mat.type] = [custom_materials[mat]]" + if(index < mats_len) + text += ", " + index++ + text += ")\]" + return text diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 0cb035ef3d96..04ba0e524395 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -262,12 +262,15 @@ Security HUDs! Basic mode shows only the job. //HOOKS -/mob/living/carbon/human/proc/sec_hud_set_ID() +/mob/living/carbon/human/proc/update_ID_card() + SIGNAL_HANDLER + var/sechud_icon_state = wear_id?.get_sechud_job_icon_state() if(!sechud_icon_state || HAS_TRAIT(src, TRAIT_UNKNOWN)) sechud_icon_state = "hudno_id" set_hud_image_state(ID_HUD, sechud_icon_state) sec_hud_set_security_status() + update_visible_name() /mob/living/proc/sec_hud_set_implants() for(var/hud_type in (list(IMPSEC_FIRST_HUD, IMPLOYAL_HUD, IMPSEC_SECOND_HUD) & hud_list)) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 47639b795979..efcc1777aab1 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -196,7 +196,7 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list button_icon = 'icons/obj/devices/tracker.dmi' button_icon_state = "beacon" -/datum/action/special_equipment_fallback/Trigger(trigger_flags) +/datum/action/special_equipment_fallback/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return FALSE diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index ff0cef960878..c6d3dda3f9dc 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -161,11 +161,11 @@ acid = 70 ///Needed by machine frame & flatpacker i.e the named arg board -/obj/machinery/New(loc, obj/item/circuitboard/board, ...) +/obj/machinery/New(location, obj/item/circuitboard/board, ...) if(istype(board)) circuit = board //we don't want machines that override Initialize() have the board passed as a param e.g. atmos - return ..(loc) + return ..(location) return ..() @@ -1123,7 +1123,7 @@ RefreshParts() if(shouldplaysound) - replacer_tool.play_rped_sound() + replacer_tool.play_rped_effect() return TRUE /obj/machinery/proc/display_parts(mob/user) diff --git a/code/game/machinery/civilian_bounties.dm b/code/game/machinery/civilian_bounties.dm index b463ea45c214..0b24fb8ebe10 100644 --- a/code/game/machinery/civilian_bounties.dm +++ b/code/game/machinery/civilian_bounties.dm @@ -267,14 +267,14 @@ var/holder_item = FALSE if(!isidcard(card_to_insert)) - card_to_insert = inserting_item.RemoveID() + card_to_insert = inserting_item.remove_id() holder_item = TRUE if(!card_to_insert || !user.transferItemToLoc(card_to_insert, src)) return FALSE if(target) - if(holder_item && inserting_item.InsertID(target)) + if(holder_item && inserting_item.insert_id(target)) playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) else id_eject(user, target) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 25bdf3a87d90..5dd9ec491279 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -124,7 +124,7 @@ if(add_cabling(user, cable, time = 0)) if(!no_sound) - replacer.play_rped_sound() + replacer.play_rped_effect() no_sound = TRUE return install_parts_from_part_replacer(user, replacer, no_sound = no_sound) // Recursive call to handle the next part @@ -137,7 +137,7 @@ if(add_glass(user, glass_sheets, time = 0)) if(!no_sound) - replacer.play_rped_sound() + replacer.play_rped_effect() return TRUE return FALSE diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 0a41adcac98f..880313d09fb1 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -196,7 +196,7 @@ // After installing, attempts to follow up by inserting parts install_parts_from_part_replacer(user, replacer, no_sound = TRUE) if(!no_sound) - replacer.play_rped_sound() + replacer.play_rped_effect() return TRUE return FALSE diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 4df9e6a107f4..29b2ea7cf980 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -20,6 +20,15 @@ /obj/machinery/jukebox/Initialize(mapload) . = ..() music_player = new(src) + register_context() + +/obj/machinery/jukebox/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + if(held_item?.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = anchored ? "Unsecure" : "Secure" + return CONTEXTUAL_SCREENTIP_SET + context[SCREENTIP_CONTEXT_RMB] = "Toggle Playing" + return CONTEXTUAL_SCREENTIP_SET /obj/machinery/jukebox/Destroy() stop_music() @@ -31,9 +40,6 @@ if(music_player.active_song_sound) . += "Now playing: [music_player.selection.song_name]" -/obj/machinery/jukebox/no_access - req_access = null - /obj/machinery/jukebox/wrench_act(mob/living/user, obj/item/tool) if(!isnull(music_player.active_song_sound)) return NONE @@ -47,15 +53,22 @@ icon_state = "[base_icon_state][music_player.active_song_sound ? "-active" : null]" return ..() +/obj/machinery/jukebox/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN || !allowed(user)) + return . + toggle_playing(user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + /obj/machinery/jukebox/ui_status(mob/user, datum/ui_state/state) if(isobserver(user)) return ..() if(!anchored) - to_chat(user,span_warning("This device must be anchored by a wrench!")) + balloon_alert(user, "must be anchored!") return UI_CLOSE if(!allowed(user)) - to_chat(user,span_warning("Error: Access Denied.")) - user.playsound_local(src, 'sound/machines/compiler/compiler-failure.ogg', 25, TRUE) + balloon_alert(user, "access denied!") + user.playsound_local(src, 'sound/machines/compiler/compiler-failure.ogg', 20, TRUE) return UI_CLOSE if(!length(music_player.songs)) to_chat(user,span_warning("Error: No music tracks have been authorized for your station. Petition Central Command to resolve this issue.")) @@ -77,26 +90,15 @@ if(.) return + var/mob/user = ui.user switch(action) if("toggle") - if(isnull(music_player.active_song_sound)) - if(!COOLDOWN_FINISHED(src, jukebox_song_cd)) - to_chat(usr, span_warning("Error: The device is still resetting from the last activation, \ - it will be ready again in [DisplayTimeText(COOLDOWN_TIMELEFT(src, jukebox_song_cd))].")) - if(COOLDOWN_FINISHED(src, jukebox_error_cd)) - playsound(src, 'sound/machines/compiler/compiler-failure.ogg', 33, TRUE) - COOLDOWN_START(src, jukebox_error_cd, 15 SECONDS) - return TRUE - - activate_music() - else - stop_music() - + toggle_playing(user) return TRUE if("select_track") if(!isnull(music_player.active_song_sound)) - to_chat(usr, span_warning("Error: You cannot change the song until the current one is over.")) + to_chat(user, span_warning("Error: You cannot change the song until the current one is over.")) return TRUE var/datum/track/new_song = music_player.songs[params["track"]] @@ -120,6 +122,19 @@ music_player.sound_loops = !!params["looping"] return TRUE +///If a song is playing, cut it. If none is playing, and the cooldown is up, start the queued track. +/obj/machinery/jukebox/proc/toggle_playing(mob/user) + if(!isnull(music_player.active_song_sound)) + stop_music() + return + if(COOLDOWN_FINISHED(src, jukebox_song_cd)) + activate_music() + return + balloon_alert(user, "on cooldown for [DisplayTimeText(COOLDOWN_TIMELEFT(src, jukebox_song_cd))]!") + if(COOLDOWN_FINISHED(src, jukebox_error_cd)) + playsound(src, 'sound/machines/compiler/compiler-failure.ogg', 25, TRUE) + COOLDOWN_START(src, jukebox_error_cd, 15 SECONDS) + /obj/machinery/jukebox/proc/activate_music() if(!isnull(music_player.active_song_sound)) return FALSE @@ -139,7 +154,7 @@ if(!QDELING(src)) COOLDOWN_START(src, jukebox_song_cd, 10 SECONDS) - playsound(src,'sound/machines/terminal/terminal_off.ogg',50,TRUE) + playsound(src,'sound/machines/terminal/terminal_off.ogg', 50, TRUE) update_use_power(IDLE_POWER_USE) update_appearance(UPDATE_ICON_STATE) return TRUE @@ -148,6 +163,9 @@ if(!is_operational) stop_music() +/obj/machinery/jukebox/no_access + req_access = null + /obj/machinery/jukebox/disco name = "radiant dance machine mark IV" desc = "The first three prototypes were discontinued after mass casualty incidents." diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 948c2752a588..e88fc78f4083 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -84,7 +84,7 @@ if(user.combat_mode) return ITEM_INTERACT_SKIP_TO_ATTACK - if(!istype(our_wood,/obj/item/stack/sheet/mineral/wood)) + if(!istype(our_wood, /obj/item/stack/sheet/mineral/wood)) return NONE if(our_wood.amount < 5) @@ -100,9 +100,11 @@ return ITEM_INTERACT_BLOCKING if(!our_wood.use(drop_amount)) - balloon_alert(user, "interrupted!") return ITEM_INTERACT_BLOCKING - repair_damage(20 * drop_amount) + + var/turf/cur_turf = get_turf(src) + cur_turf.place_on_top(/turf/closed/wall/mineral/wood/nonmetal) + qdel(src) return ITEM_INTERACT_SUCCESS /obj/structure/barricade/wooden/crowbar_act(mob/living/user, obj/item/tool) diff --git a/code/game/machinery/digital_clock.dm b/code/game/machinery/digital_clock.dm index febc6a4b0910..6cc298a8c146 100644 --- a/code/game/machinery/digital_clock.dm +++ b/code/game/machinery/digital_clock.dm @@ -9,6 +9,7 @@ density = FALSE layer = ABOVE_WINDOW_LAYER custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 4) + subsystem_type = /datum/controller/subsystem/processing/digital_clock /obj/item/wallframe/digital_clock name = "digital clock frame" @@ -79,13 +80,8 @@ /obj/machinery/digital_clock/Initialize(mapload) . = ..() - START_PROCESSING(SSdigital_clock, src) find_and_hang_on_wall() -/obj/machinery/digital_clock/Destroy() - STOP_PROCESSING(SSdigital_clock, src) - return ..() - /obj/machinery/digital_clock/process(seconds_per_tick) if(machine_stat & NOPOWER) return diff --git a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm index 3fcfe55a7724..745131ee0192 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fish_organs.dm @@ -31,7 +31,7 @@ /// Are we at all five organs? var/color_active = FALSE -/datum/status_effect/organ_set_bonus/fish/enable_bonus() +/datum/status_effect/organ_set_bonus/fish/enable_bonus(obj/item/organ/inserted_organ) . = ..() if(!.) return @@ -55,7 +55,7 @@ owner.mind?.adjust_experience(/datum/skill/fishing, SKILL_EXP_JOURNEYMAN, silent = TRUE) owner.grant_language(/datum/language/carptongue, ALL, type) -/datum/status_effect/organ_set_bonus/fish/disable_bonus() +/datum/status_effect/organ_set_bonus/fish/disable_bonus(obj/item/organ/removed_organ) . = ..() UnregisterSignal(owner, list( COMSIG_CARBON_GAIN_ORGAN, @@ -80,7 +80,7 @@ owner.mind?.adjust_experience(/datum/skill/fishing, -SKILL_EXP_JOURNEYMAN, silent = TRUE) owner.remove_language(/datum/language/carptongue, ALL, type) -/datum/status_effect/organ_set_bonus/fish/set_organs(new_value) +/datum/status_effect/organ_set_bonus/fish/set_organs(new_value, obj/item/organ/organ) . = ..() if (!iscarbon(owner)) return diff --git a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm index cb8bb3795997..b33b56e12277 100644 --- a/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/fly_organs.dm @@ -8,14 +8,27 @@ bonus_activate_text = null bonus_deactivate_text = null -/datum/status_effect/organ_set_bonus/fly/enable_bonus() +/datum/status_effect/organ_set_bonus/fly/enable_bonus(obj/item/organ/inserted_organ) . = ..() if(!. || !ishuman(owner)) return var/mob/living/carbon/human/new_fly = owner if(isflyperson(new_fly)) return - //okay you NEED to be a fly + // This is ugly as sin, but we're called before the organ finishes inserting into the bodypart + // so if we swap species directly the bodypart will be replaced and we'll be gone + // so we need to delay species change until we're fully inserted + RegisterSignal(inserted_organ, COMSIG_ORGAN_BODYPART_INSERTED, PROC_REF(flyify)) + +/datum/status_effect/organ_set_bonus/fly/proc/flyify(obj/item/organ/source, obj/item/bodypart/limb, movement_flags) + SIGNAL_HANDLER + var/mob/living/carbon/human/new_fly = owner + // just in case? + if(isflyperson(new_fly)) + return + // needs to be done before the species is set + UnregisterSignal(source, COMSIG_ORGAN_BODYPART_INSERTED) + // okay you NEED to be a fly to_chat(new_fly, span_danger("Too much fly DNA! Your skin begins to discolor into a horrible black as you become more fly than person!")) new_fly.set_species(/datum/species/fly) diff --git a/code/game/machinery/dna_infuser/organ_sets/roach_organs.dm b/code/game/machinery/dna_infuser/organ_sets/roach_organs.dm index 2e28fd94d849..4988ad4d638c 100644 --- a/code/game/machinery/dna_infuser/organ_sets/roach_organs.dm +++ b/code/game/machinery/dna_infuser/organ_sets/roach_organs.dm @@ -20,7 +20,7 @@ /// Armor type attached to the owner's physiology var/datum/armor/given_armor = /datum/armor/roach_internal_armor -/datum/status_effect/organ_set_bonus/roach/enable_bonus() +/datum/status_effect/organ_set_bonus/roach/enable_bonus(obj/item/organ/inserted_organ) . = ..() if(!ishuman(owner)) return @@ -28,7 +28,7 @@ var/mob/living/carbon/human/human_owner = owner human_owner.physiology.armor = human_owner.physiology.armor.add_other_armor(given_armor) -/datum/status_effect/organ_set_bonus/roach/disable_bonus() +/datum/status_effect/organ_set_bonus/roach/disable_bonus(obj/item/organ/removed_organ) . = ..() if(!ishuman(owner) || QDELETED(owner)) return diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4059fc3f5c88..dc86f0fc6d94 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -597,7 +597,8 @@ for(var/heading in list(NORTH,SOUTH,EAST,WEST)) if(!(unres_sides & heading)) continue - var/mutable_appearance/floorlight = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_[heading]", FLOAT_LAYER, src, ABOVE_LIGHTING_PLANE) + var/mutable_appearance/floorlight = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_[heading]", FLOAT_LAYER, src, O_LIGHTING_VISUAL_PLANE, appearance_flags = RESET_COLOR | KEEP_APART) + floorlight.color = LIGHT_COLOR_DEFAULT switch (heading) if (NORTH) floorlight.pixel_w = 0 diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index aa033e79412c..9cb7dea5cc66 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -584,24 +584,23 @@ for(var/turf/checked_turf in locs) for(var/mob/living/future_pancake in checked_turf) future_pancake.visible_message(span_warning("[src] closes on [future_pancake], crushing [future_pancake.p_them()]!"), span_userdanger("[src] closes on you and crushes you!")) - SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src) + var/sig_return = SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src) + future_pancake.add_splatter_floor(loc) + log_combat(src, future_pancake, "crushed") + var/door_wounding = (sig_return & DOORCRUSH_NO_WOUND) ? CANT_WOUND : 10 if(isalien(future_pancake)) //For xenos - future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 1.5) //Xenos go into crit after aproximately the same amount of crushes as humans. + future_pancake.apply_damage(DOOR_CRUSH_DAMAGE * 1.5, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src) //Xenos go into crit after aproximately the same amount of crushes as humans. future_pancake.emote("roar") else if(ismonkey(future_pancake)) //For monkeys future_pancake.emote("screech") - future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - future_pancake.Paralyze(100) + future_pancake.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src) + future_pancake.Paralyze(10 SECONDS) else if(ishuman(future_pancake)) //For humans - future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE) future_pancake.emote("scream") - future_pancake.Paralyze(100) + future_pancake.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src) + future_pancake.Paralyze(10 SECONDS) else //for simple_animals & borgs - future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - var/turf/location = get_turf(src) - //add_blood doesn't work for borgs/xenos, but add_blood_floor does. - future_pancake.add_splatter_floor(location) - log_combat(src, future_pancake, "crushed") + future_pancake.apply_damage(DOOR_CRUSH_DAMAGE, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src) for(var/obj/vehicle/sealed/mecha/mech in get_turf(src)) // Your fancy metal won't save you here! mech.take_damage(DOOR_CRUSH_DAMAGE) log_combat(src, mech, "crushed") diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index cb44380e49c6..28a3b51731ff 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -185,6 +185,8 @@ /obj/machinery/door/firedoor/update_name(updates) . = ..() + if(!my_area || !id_tag) + return name = "[get_area_name(my_area)] [initial(name)] [id_tag]" /** diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 0c7004dde921..429b648624a2 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -119,20 +119,24 @@ switch(dir) if(NORTH,SOUTH) if(unres_sides & NORTH) - var/image/side_overlay = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_n") + var/mutable_appearance/side_overlay = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_1", FLOAT_LAYER, src, O_LIGHTING_VISUAL_PLANE, appearance_flags = RESET_COLOR | KEEP_APART) + side_overlay.color = LIGHT_COLOR_DEFAULT side_overlay.pixel_z = dir == NORTH ? 31 : 6 . += side_overlay if(unres_sides & SOUTH) - var/image/side_overlay = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_s") + var/mutable_appearance/side_overlay = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_2", FLOAT_LAYER, src, O_LIGHTING_VISUAL_PLANE, appearance_flags = RESET_COLOR | KEEP_APART) + side_overlay.color = LIGHT_COLOR_DEFAULT side_overlay.pixel_z = dir == NORTH ? -6 : -31 . += side_overlay if(EAST,WEST) if(unres_sides & EAST) - var/image/side_overlay = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_e") + var/mutable_appearance/side_overlay = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_4", FLOAT_LAYER, src, O_LIGHTING_VISUAL_PLANE, appearance_flags = RESET_COLOR | KEEP_APART) + side_overlay.color = LIGHT_COLOR_DEFAULT side_overlay.pixel_w = dir == EAST ? 31 : 6 . += side_overlay if(unres_sides & WEST) - var/image/side_overlay = image(icon='icons/obj/doors/airlocks/station/overlays.dmi', icon_state="unres_w") + var/mutable_appearance/side_overlay = mutable_appearance('icons/obj/doors/airlocks/station/overlays.dmi', "unres_8", FLOAT_LAYER, src, O_LIGHTING_VISUAL_PLANE, appearance_flags = RESET_COLOR | KEEP_APART) + side_overlay.color = LIGHT_COLOR_DEFAULT side_overlay.pixel_w = dir == EAST ? -6 : -31 . += side_overlay diff --git a/code/game/machinery/drone_dispenser.dm b/code/game/machinery/drone_dispenser.dm index 82fdf1fad498..0cee62cc1e50 100644 --- a/code/game/machinery/drone_dispenser.dm +++ b/code/game/machinery/drone_dispenser.dm @@ -95,7 +95,7 @@ desc = "A suspicious machine that will create Syndicate exterminator drones when supplied with iron and glass. Disgusting." dispense_type = list(/obj/effect/mob_spawn/ghost_role/drone/syndrone) //If we're gonna be a jackass, go the full mile - 10 second recharge timer - cooldownTime = 100 + cooldownTime = 10 SECONDS end_create_message = "dispenses a suspicious drone shell." starting_amount = SHEET_MATERIAL_AMOUNT * 12.5 @@ -126,7 +126,7 @@ iron_cost = SHEET_MATERIAL_AMOUNT * 5 glass_cost = SHEET_MATERIAL_AMOUNT * 2.5 starting_amount = 0 - cooldownTime = 600 + cooldownTime = 60 SECONDS /obj/machinery/drone_dispenser/classic name = "classic drone shell dispenser" @@ -148,7 +148,7 @@ iron_cost = 0 glass_cost = 0 energy_used = 0 - cooldownTime = 10 //Only 1 second - hivebots are extremely weak + cooldownTime = 1 SECONDS //Only 1 second - hivebots are extremely weak dispense_type = list(/mob/living/basic/hivebot) begin_create_message = "closes and begins fabricating something within." end_create_message = "slams open, revealing a hivebot!" diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 43c9314372e8..82f57f4bbbc7 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -521,7 +521,7 @@ // Taking melee damage always triggers the alarm if panel is open /obj/machinery/firealarm/attacked_by(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) . = ..() - if(!. || !panel_open || buildstage != FIRE_ALARM_BUILD_SECURED) + if(. <= 0 || !panel_open || buildstage != FIRE_ALARM_BUILD_SECURED) return alarm() diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index d53667e61b8b..84f360f06aab 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -590,7 +590,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ holocall_to_update.user.Hear(message, speaker, message_language, raw_message, radio_freq, radio_freq_name, radio_freq_color, spans, message_mods, message_range = INFINITY) if(outgoing_call?.hologram && speaker == outgoing_call.user) - outgoing_call.hologram.say(raw_message, sanitize = FALSE) + outgoing_call.hologram.say(raw_message, spans = spans, sanitize = FALSE, language = message_language, message_mods = message_mods) if(record_mode && speaker == record_user) record_message(speaker, raw_message, message_language) diff --git a/code/game/machinery/incident_display.dm b/code/game/machinery/incident_display.dm index 77194a26dd7b..fa261a06c07d 100644 --- a/code/game/machinery/incident_display.dm +++ b/code/game/machinery/incident_display.dm @@ -109,7 +109,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) return ..() /obj/machinery/incident_display/process() - if(!isnull(configured_advert) && COOLDOWN_FINISHED(src, advert_cooldown))// time to show an advert + if(machine_stat & (NOPOWER|BROKEN|MAINT)) + return + + if(!isnull(configured_advert) && COOLDOWN_FINISHED(src, advert_cooldown)) // time to show an advert show_advert(advert = configured_advert, duration = configured_advert_duration) COOLDOWN_START(src, advert_cooldown, rand(advert_frequency - 5 SECONDS, advert_frequency + 5 SECONDS)) return @@ -117,9 +120,6 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) if(!live_display) // displaying static content, no processing required return - if(machine_stat & (NOPOWER|BROKEN|MAINT)) - return - if(COOLDOWN_FINISHED(src, active_advert)) // advert finished, revert to static content COOLDOWN_RESET(src, active_advert) live_display = FALSE @@ -249,6 +249,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/incident_display/tram, 32) update_appearance() flick(advert, src) +/obj/machinery/incident_display/on_set_machine_stat(old_value) + . = ..() + update_appearance() + /obj/machinery/incident_display/update_appearance(updates = ALL) . = ..() if(machine_stat & NOPOWER) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 977f02778590..d606556985b3 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -428,7 +428,7 @@ /datum/crafting_recipe/iv_drip name = "IV drip" result = /obj/machinery/iv_drip - time = 30 + time = 3 SECONDS tool_behaviors = list(TOOL_SCREWDRIVER) reqs = list( /obj/item/stack/rods = 2, diff --git a/code/game/machinery/machine_frame.dm b/code/game/machinery/machine_frame.dm index 4447ef140dc9..e74daa5c3ad0 100644 --- a/code/game/machinery/machine_frame.dm +++ b/code/game/machinery/machine_frame.dm @@ -258,7 +258,7 @@ play_sound = TRUE if(play_sound && !no_sound) - replacer.play_rped_sound() + replacer.play_rped_effect() return TRUE diff --git a/code/game/machinery/newscaster/newscaster_data.dm b/code/game/machinery/newscaster/newscaster_data.dm index d67e7e99365f..59b8f09db477 100644 --- a/code/game/machinery/newscaster/newscaster_data.dm +++ b/code/game/machinery/newscaster/newscaster_data.dm @@ -42,9 +42,9 @@ GLOBAL_LIST_EMPTY(request_list) ///Referece to the photo used in picture messages. var/photo_file ///What is the channel ID of the parent channel? - var/parent_ID + var/parent_id ///What number message is this? IE: The first message sent in a round including automated messages is message 1. - var/message_ID + var/message_id /datum/feed_message/proc/return_author(censor) if(censor == -1) @@ -99,37 +99,13 @@ GLOBAL_LIST_EMPTY(request_list) var/author_censor /// Is this an admin channel? Allows for actions to be taken by the admin only. var/is_admin_channel = FALSE - /// Channel ID is a random number sequence similar to account ID number that allows for us to link messages to the proper channels through the UI backend. - var/channel_ID + /// Channel ID is a unique number sequence similar to account ID number that allows for us to link messages to the proper channels through the UI backend. + var/channel_id /// Should this channel send cross-server messages? var/cross_sector = FALSE /// Is this a cross-sector channel? If so, this channel can only receive messages via topics var/receiving_cross_sector = FALSE -/datum/feed_channel/New() - . = ..() - channel_ID = random_channel_id_setup() - -/** - * This proc assigns each feed_channel a random integer, from 1-999 as a unique identifier. - * Using this value, the TGUI window has a unique identifier to attach to messages that can be used to reattach them - * to their parent channels back in dreammaker. - * Based on implementation, we're limiting ourselves to only 998 player made channels maximum. How we'd use all of them, I don't know. - */ -/datum/feed_channel/proc/random_channel_id_setup() - if(!GLOB.news_network) - return //Should only apply to channels made before setup is finished, use hardset_channel for these - if(!GLOB.news_network.channel_IDs) - GLOB.news_network.channel_IDs += rand(1,999) - return //This will almost always be the station announcements channel here. - var/channel_id - for(var/i in 1 to 10000) - channel_id = rand(1, 999) - if(!GLOB.news_network.channel_IDs["[channel_ID]"]) - break - channel_ID = channel_id - return channel_ID - /datum/feed_channel/proc/return_author(censor) if(censor == -1) censor = author_censor @@ -173,36 +149,47 @@ GLOBAL_LIST_EMPTY(request_list) /datum/feed_network /// All the feed channels that have been made on the feed network. var/list/datum/feed_channel/network_channels = list() + /// Associative list of all the feed channels that have been made on the feed network, from channel ID to channel. + var/list/datum/feed_channel/network_channels_by_id = list() + /// Associative list of all the feed channels that have been made on the feed network, from channel name to channel. + var/list/datum/feed_channel/network_channels_by_name = list() /// What is the wanted issue being sent out to all newscasters. var/datum/wanted_message/wanted_issue /// What time was the last action taken on the feed_network? var/last_action /// What does this feed network say when a message/author is redacted? var/redacted_text = "\[REDACTED\]" - /// List of all the network_channels Channel Id numbers, kept in a global easy to find place. - var/list/channel_IDs = list() + /// Channel ID to use when next making a new channel, to maintain unique IDs. + var/next_channel_id = 1 /// How many messages currently exist on this feed_network? Increments as new messages are written. var/message_count = 0 /datum/feed_network/New() - create_feed_channel(NEWSCASTER_STATION_ANNOUNCEMENTS, "SS13", "Company news, staff announcements, and all the latest information. Have a secure shift!", locked = TRUE, hardset_channel = 1000) - create_feed_channel(NEWSCASTER_SPACE_BETTING, "NtOS", "News from the SpaceBet PDA App! Download now and make your own bets!", locked = TRUE, hardset_channel = 1001) + create_feed_channel(NEWSCASTER_STATION_ANNOUNCEMENTS, "SS13", "Company news, staff announcements, and all the latest information. Have a secure shift!", locked = TRUE) + create_feed_channel(NEWSCASTER_SPACE_BETTING, "NtOS", "News from the SpaceBet PDA App! Download now and make your own bets!", locked = TRUE) wanted_issue = new /datum/wanted_message -/datum/feed_network/proc/create_feed_channel(channel_name, author, desc, locked, adminChannel = FALSE, hardset_channel = null, author_ckey = null, cross_sector = FALSE, cross_sector_delay = null, receiving_cross_sector = FALSE) - var/datum/feed_channel/newChannel = new /datum/feed_channel - newChannel.channel_name = channel_name - newChannel.author = author - newChannel.channel_desc = desc - newChannel.locked = locked - newChannel.is_admin_channel = adminChannel - newChannel.receiving_cross_sector = receiving_cross_sector - if(hardset_channel) - newChannel.channel_ID = hardset_channel - network_channels += newChannel +/datum/feed_network/proc/add_feed_channel(datum/feed_channel/new_channel) + network_channels += new_channel + network_channels_by_id["[new_channel.channel_id]"] = new_channel + network_channels_by_name["[new_channel.channel_name]"] = new_channel + +/datum/feed_network/proc/create_feed_channel(channel_name, author, desc, locked, adminChannel = FALSE, author_ckey = null, cross_sector = FALSE, cross_sector_delay = null, receiving_cross_sector = FALSE) + var/datum/feed_channel/new_channel = new /datum/feed_channel + new_channel.channel_name = channel_name + new_channel.author = author + new_channel.channel_desc = desc + new_channel.locked = locked + new_channel.is_admin_channel = adminChannel + new_channel.receiving_cross_sector = receiving_cross_sector + new_channel.channel_id = next_channel_id + next_channel_id++ + + add_feed_channel(new_channel) + if(!cross_sector) return - newChannel.cross_sector = TRUE + new_channel.cross_sector = TRUE var/list/payload = list( "author" = author, "author_ckey" = author_ckey, @@ -212,31 +199,32 @@ GLOBAL_LIST_EMPTY(request_list) send2otherserver(html_decode(station_name()), channel_name, "create_news_channel", additional_data = payload) /datum/feed_network/proc/submit_article(msg, author, channel_name, datum/picture/picture, adminMessage = FALSE, allow_comments = TRUE, update_alert = TRUE, mob/author_mob = null) - var/datum/feed_message/newMsg = new /datum/feed_message - newMsg.author = author - newMsg.body = msg - newMsg.time_stamp = "[station_time_timestamp()]" - newMsg.is_admin_message = adminMessage - newMsg.locked = !allow_comments + var/datum/feed_channel/chosen_channel = network_channels_by_name[channel_name] + if(isnull(chosen_channel)) + stack_trace("Article submitted to non-existent newscaster channel: [channel_name]") + return + + var/datum/feed_message/new_article = new /datum/feed_message + new_article.author = author + new_article.body = msg + new_article.time_stamp = "[station_time_timestamp()]" + new_article.is_admin_message = adminMessage + new_article.locked = !allow_comments message_count++ last_action++ - newMsg.creation_time = last_action - newMsg.message_ID = message_count + new_article.creation_time = last_action + new_article.message_id = message_count if(picture) - newMsg.img = picture.picture_image - newMsg.caption = picture.caption - newMsg.photo_file = save_photo(picture.picture_image) - - for(var/datum/feed_channel/channel in network_channels) - if(channel.channel_name != channel_name) - continue - - channel.messages += newMsg - newMsg.parent_ID = channel.channel_ID - if (!channel.cross_sector) - break + new_article.img = picture.picture_image + new_article.caption = picture.caption + new_article.photo_file = save_photo(picture.picture_image) + + chosen_channel.messages += new_article + new_article.parent_id = chosen_channel.channel_id + + if(chosen_channel.cross_sector) // Newscaster articles could be huge, and usefulness of first 50 symbols is dubious message_admins(span_adminnotice("Outgoing cross-sector newscaster article by [key_name(author_mob) || author] in channel [channel_name].")) var/list/payload = list( @@ -245,11 +233,10 @@ GLOBAL_LIST_EMPTY(request_list) "msg" = msg, ) send2otherserver(html_decode(station_name()), channel_name, "create_news_article", additional_data = payload) - break for(var/obj/machinery/newscaster/caster in GLOB.allCasters) caster.news_alert(channel_name, update_alert) - return newMsg + return new_article ///Submits a comment on the news network /datum/feed_network/proc/submit_comment(mob/user, comment_text, newscaster_username, datum/feed_message/current_message) diff --git a/code/game/machinery/newscaster/newscaster_machine.dm b/code/game/machinery/newscaster/newscaster_machine.dm index 58e49501e0bf..77b9c51d0128 100644 --- a/code/game/machinery/newscaster/newscaster_machine.dm +++ b/code/game/machinery/newscaster/newscaster_machine.dm @@ -196,11 +196,11 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) //Then, breaks down the messages that have been made on those channels. if(current_channel) for(var/datum/feed_message/feed_message as anything in current_channel.messages) - var/photo_ID = null + var/photo_id = null var/list/comment_list if(feed_message.img) - user << browse_rsc(feed_message.img, "tmp_photo[feed_message.message_ID].png") - photo_ID = "tmp_photo[feed_message.message_ID].png" + user << browse_rsc(feed_message.img, "tmp_photo[feed_message.message_id].png") + photo_id = "tmp_photo[feed_message.message_id].png" for(var/datum/feed_comment/comment_message as anything in feed_message.comments) comment_list += list(list( "auth" = comment_message.author, @@ -211,16 +211,16 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) "auth" = feed_message.author, "body" = feed_message.body, "time" = feed_message.time_stamp, - "channel_num" = feed_message.parent_ID, + "channel_num" = feed_message.parent_id, "censored_message" = feed_message.body_censor, "censored_author" = feed_message.author_censor, - "ID" = feed_message.message_ID, - "photo" = photo_ID, + "ID" = feed_message.message_id, + "photo" = photo_id, "comments" = comment_list )) - data["viewing_channel"] = current_channel?.channel_ID + data["viewing_channel"] = current_channel?.channel_id data["paper"] = paper_remaining //Here we display all the information about the current channel. data["channelName"] = current_channel?.channel_name @@ -264,7 +264,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) "author" = channel.author, "censored" = channel.censored, "locked" = channel.locked, - "ID" = channel.channel_ID, + "ID" = channel.channel_id, )) data["channels"] = channel_list @@ -293,19 +293,20 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) switch(action) if("setChannel") - var/prototype_channel = params["channel"] - if(isnull(prototype_channel)) + var/selected_channel_id = params["channel"] + if(isnull(selected_channel_id)) return TRUE - for(var/datum/feed_channel/potential_channel as anything in GLOB.news_network.network_channels) - if(prototype_channel == potential_channel.channel_ID) - current_channel = potential_channel + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_id["[selected_channel_id]"] + if(isnull(potential_channel)) + return TRUE + current_channel = potential_channel if("createStory") if(!current_channel) balloon_alert(user, "select a channel first!") return TRUE - var/prototype_channel = params["current"] - create_story(user, channel_name = prototype_channel) + var/current_channel_id = params["current"] + create_story(user, channel_id = current_channel_id) if("togglePhoto") toggle_photo(user) @@ -352,7 +353,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) return TRUE var/questionable_message = params["messageID"] for(var/datum/feed_message/iterated_feed_message as anything in current_channel.messages) - if(iterated_feed_message.message_ID == questionable_message) + if(iterated_feed_message.message_id == questionable_message) iterated_feed_message.toggle_censor_body() break @@ -366,7 +367,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) return TRUE var/questionable_message = params["messageID"] for(var/datum/feed_message/iterated_feed_message in current_channel.messages) - if(iterated_feed_message.message_ID == questionable_message) + if(iterated_feed_message.message_id == questionable_message) iterated_feed_message.toggle_censor_author() break @@ -378,11 +379,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(!(admin_access in id_card?.GetAccess())) say("Clearance not found.") return TRUE - var/prototype_channel = (params["channel"]) - for(var/datum/feed_channel/potential_channel in GLOB.news_network.network_channels) - if(prototype_channel == potential_channel.channel_ID) - current_channel = potential_channel - break + var/selected_channel_id = (params["channel"]) + if(isnull(selected_channel_id)) + return TRUE + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_id["[selected_channel_id]"] + if(isnull(potential_channel)) + return TRUE + current_channel = potential_channel current_channel.toggle_censor_D_class() if("startComment") @@ -394,7 +397,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(!commentable_message) return TRUE for(var/datum/feed_message/iterated_feed_message as anything in current_channel.messages) - if(iterated_feed_message.message_ID == commentable_message) + if(iterated_feed_message.message_id == commentable_message) current_message = iterated_feed_message return TRUE @@ -660,10 +663,10 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) if(isnull(channel_locked)) return TRUE - for(var/datum/feed_channel/iterated_feed_channel as anything in GLOB.news_network.network_channels) - if(iterated_feed_channel.channel_name == channel_name) - tgui_alert(user, "ERROR: Feed channel with that name already exists on the Network.", list("Okay")) - return TRUE + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_name[channel_name] + if(potential_channel) + tgui_alert(user, "ERROR: Feed channel with that name already exists on the Network.", list("Okay")) + return TRUE var/list/hard_filter_result = is_ic_filtered(channel_name) if(hard_filter_result) @@ -769,13 +772,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/newscaster, 30) * Verifies that the message is being written to a real feed_channel, then provides a text input for the feed story to be written into. * Finally, it submits the message to the network, is logged globally, and clears all message-specific variables from the machine. */ -/obj/machinery/newscaster/proc/create_story(mob/user, channel_name) - for(var/datum/feed_channel/potential_channel as anything in GLOB.news_network.network_channels) - if(channel_name == potential_channel.channel_ID) - current_channel = potential_channel - break +/obj/machinery/newscaster/proc/create_story(mob/user, channel_id) + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_id["[channel_id]"] + if(isnull(potential_channel)) + return + current_channel = potential_channel - if (current_channel.receiving_cross_sector) + if(current_channel.receiving_cross_sector) return var/temp_message = tgui_input_text(user, "Write your Feed story", "Network Channel Handler", feed_channel_message, max_length = MAX_BROADCAST_LEN, multiline = TRUE) diff --git a/code/game/machinery/newscaster/newspaper.dm b/code/game/machinery/newscaster/newspaper.dm index 7c1369940e7e..cc05b578a1e2 100644 --- a/code/game/machinery/newscaster/newspaper.dm +++ b/code/game/machinery/newscaster/newspaper.dm @@ -44,6 +44,8 @@ wield_callback = CALLBACK(src, PROC_REF(on_wielded)),\ unwield_callback = CALLBACK(src, PROC_REF(on_unwielded)),\ ) + AddElement(/datum/element/burn_on_item_ignition) + RegisterSignal(src, COMSIG_ATOM_IGNITED_BY_ITEM, PROC_REF(close_paper_ui)) creation_time = GLOB.news_network.last_action for(var/datum/feed_channel/iterated_feed_channel in GLOB.news_network.network_channels) news_content += iterated_feed_channel @@ -54,8 +56,6 @@ saved_wanted_body = GLOB.news_network.wanted_issue.body if(GLOB.news_network.wanted_issue.img) saved_wanted_icon = GLOB.news_network.wanted_issue.img - AddElement(/datum/element/burn_on_item_ignition) - RegisterSignal(src, COMSIG_ATOM_IGNITED_BY_ITEM, PROC_REF(close_paper_ui)) /obj/item/newspaper/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) if(held_item) @@ -106,7 +106,7 @@ owner.update_appearance(UPDATE_OVERLAYS) return ITEM_INTERACT_SUCCESS - if (!user.can_write(tool)) + if (!user.can_write(tool, TRUE)) return NONE if (scribble_page == current_page) @@ -150,18 +150,22 @@ RegisterSignal(user, COMSIG_ATOM_UPDATE_OVERLAYS, PROC_REF(holder_updated_overlays)) RegisterSignal(user, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(holder_checked_name)) user.update_appearance(UPDATE_OVERLAYS) - user.name = user.get_visible_name() if (!punctured) user.add_fov_trait(REF(src), FOV_REVERSE_270_DEGRESS) + if (ishuman(user)) + var/mob/living/carbon/human/as_human = user + as_human.update_visible_name() /// Called when you stop doing that /obj/item/newspaper/proc/on_unwielded(obj/item/source, mob/living/user) REMOVE_TRAIT(user, TRAIT_FACE_COVERED, REF(src)) UnregisterSignal(user, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_HUMAN_GET_VISIBLE_NAME)) user.update_appearance(UPDATE_OVERLAYS) - user.name = user.get_visible_name() if (!punctured) user.remove_fov_trait(REF(src), FOV_REVERSE_270_DEGRESS) + if (ishuman(user)) + var/mob/living/carbon/human/as_human = user + as_human.update_visible_name() /// Called when we're being read and overlays are updated, we should show a big newspaper over the reader /obj/item/newspaper/proc/holder_updated_overlays(atom/reader, list/overlays) @@ -264,10 +268,10 @@ var/has_image = FALSE if(feed_messages.img) has_image = TRUE - user << browse_rsc(feed_messages.img, "tmp_photo[feed_messages.message_ID].png") + user << browse_rsc(feed_messages.img, "tmp_photo[feed_messages.message_id].png") channel_data["channel_messages"] += list(list( "message" = "-[feed_messages.return_body(censored_check(feed_messages.body_censor_time))]", - "photo" = (has_image ? "tmp_photo[feed_messages.message_ID].png" : null), + "photo" = (has_image ? "tmp_photo[feed_messages.message_id].png" : null), "author" = feed_messages.return_author(censored_check(feed_messages.author_censor_time)), )) data["channel_data"] = list(channel_data) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index d5fe7413b788..7734e98b9490 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -681,7 +681,7 @@ DEFINE_BITFIELD(turret_flags, list( button_icon = 'icons/mob/actions/actions_mecha.dmi' button_icon_state = "mech_cycle_equip_off" -/datum/action/turret_toggle/Trigger(trigger_flags) +/datum/action/turret_toggle/Trigger(mob/clicker, trigger_flags) var/obj/machinery/porta_turret/P = target if(!istype(P)) return @@ -692,7 +692,7 @@ DEFINE_BITFIELD(turret_flags, list( button_icon = 'icons/mob/actions/actions_mecha.dmi' button_icon_state = "mech_eject" -/datum/action/turret_quit/Trigger(trigger_flags) +/datum/action/turret_quit/Trigger(mob/clicker, trigger_flags) var/obj/machinery/porta_turret/P = target if(!istype(P)) return diff --git a/code/game/machinery/telecomms/machines/allinone.dm b/code/game/machinery/telecomms/machines/allinone.dm index bd30c5ba0b57..63668487de75 100644 --- a/code/game/machinery/telecomms/machines/allinone.dm +++ b/code/game/machinery/telecomms/machines/allinone.dm @@ -11,6 +11,49 @@ idle_power_usage = 0 /// If this mainframe can process all syndicate chatter regardless of z level var/syndicate = FALSE + /// List of all frequencies to their name/color + var/static/alist/frequency_infos = alist( + "[FREQ_SCIENCE]" = list( + "name" = RADIO_CHANNEL_SCIENCE, + "color" = RADIO_COLOR_SCIENCE + ), + "[FREQ_MEDICAL]" = list( + "name" = RADIO_CHANNEL_MEDICAL, + "color" = RADIO_COLOR_MEDICAL + ), + "[FREQ_SUPPLY]" = list( + "name" = RADIO_CHANNEL_SUPPLY, + "color" = RADIO_COLOR_SUPPLY + ), + "[FREQ_SERVICE]" = list( + "name" = RADIO_CHANNEL_SERVICE, + "color" = RADIO_COLOR_SERVICE + ), + "[FREQ_ENTERTAINMENT]" = list( + "name" = RADIO_CHANNEL_ENTERTAINMENT, + "color" = RADIO_COLOR_ENTERTAIMENT + ), + "[FREQ_COMMON]" = list( + "name" = RADIO_CHANNEL_COMMON, + "color" = RADIO_COLOR_COMMON + ), + "[FREQ_AI_PRIVATE]" = list( + "name" = RADIO_CHANNEL_AI_PRIVATE, + "color" = RADIO_COLOR_AI_PRIVATE + ), + "[FREQ_COMMAND]" = list( + "name" = RADIO_CHANNEL_COMMAND, + "color" = RADIO_COLOR_COMMAND + ), + "[FREQ_ENGINEERING]" = list( + "name" = RADIO_CHANNEL_ENGINEERING, + "color" = RADIO_COLOR_ENGINEERING + ), + "[FREQ_SECURITY]" = list( + "name" = RADIO_CHANNEL_SECURITY, + "color" = RADIO_COLOR_SECURITY + ) + ) /obj/machinery/telecomms/allinone/nuclear name = "advanced telecommunications mainframe" @@ -35,6 +78,11 @@ if(!syndicate && !(z in signal.levels) && !(RADIO_NO_Z_LEVEL_RESTRICTION in signal.levels)) // has to be syndicate or on the right level return + var/freq_info = frequency_infos["[signal.frequency]"] + if(freq_info) + signal.data["frequency_name"] = freq_info["name"] + signal.data["frequency_color"] = freq_info["color"] + // Decompress the signal and mark it done if(syndicate) signal.levels = list(0) // Signal is broadcast to agents anywhere diff --git a/code/game/objects/effects/anomalies/anomalies_flux.dm b/code/game/objects/effects/anomalies/anomalies_flux.dm index a2dc24736005..1d823d00b60b 100644 --- a/code/game/objects/effects/anomalies/anomalies_flux.dm +++ b/code/game/objects/effects/anomalies/anomalies_flux.dm @@ -5,11 +5,11 @@ anomaly_core = /obj/item/assembly/signaler/anomaly/flux var/canshock = FALSE var/shockdamage = 20 - var/explosive = FLUX_EXPLOSIVE + var/emp_zap = FLUX_EMP -/obj/effect/anomaly/flux/Initialize(mapload, new_lifespan, explosive = FLUX_EXPLOSIVE) +/obj/effect/anomaly/flux/Initialize(mapload, new_lifespan, emp_zap = FLUX_EMP) . = ..() - src.explosive = explosive + src.emp_zap = emp_zap var/static/list/loc_connections = list( COMSIG_ATOM_ENTERED = PROC_REF(on_entered), ) @@ -42,20 +42,22 @@ M.electrocute_act(shockdamage, name, flags = SHOCK_NOGLOVES) /obj/effect/anomaly/flux/detonate() - switch(explosive) - if(FLUX_EXPLOSIVE) - explosion(src, devastation_range = 1, heavy_impact_range = 4, light_impact_range = 16, flash_range = 18) //Low devastation, but hits a lot of stuff. - if(FLUX_LOW_EXPLOSIVE) - explosion(src, heavy_impact_range = 1, light_impact_range = 4, flash_range = 6) - if(FLUX_NO_EXPLOSION) + switch(emp_zap) + if(FLUX_EMP) + empulse(src, 4, 16) + explosion(src, heavy_impact_range = 1, light_impact_range = 4, flash_range = 6) //Trashes the room a bit, might blow a small hole in the hull. + if(FLUX_LIGHT_EMP) + empulse(src, 4, 6) + explosion(src, light_impact_range = 3, flash_range = 6) + if(FLUX_NO_EMP) new /obj/effect/particle_effect/sparks(loc) -/// A flux anomaly which doesn't explode or produce a core +/// A flux anomaly which doesn't emp or produce a core /obj/effect/anomaly/flux/minor anomaly_core = null // We need to override the default arguments here to achieve the desired effect -/obj/effect/anomaly/flux/minor/Initialize(mapload, new_lifespan, explosive = FLUX_NO_EXPLOSION) +/obj/effect/anomaly/flux/minor/Initialize(mapload, new_lifespan, emp_zap = FLUX_NO_EMP) return ..() ///Bigger, meaner, immortal flux anomaly diff --git a/code/game/objects/effects/anomalies/anomalies_gravity.dm b/code/game/objects/effects/anomalies/anomalies_gravity.dm index 56a1130d4532..280e0dc1e12f 100644 --- a/code/game/objects/effects/anomalies/anomalies_gravity.dm +++ b/code/game/objects/effects/anomalies/anomalies_gravity.dm @@ -1,50 +1,4 @@ -/atom/movable/warp_effect - plane = GRAVITY_PULSE_PLANE - appearance_flags = PIXEL_SCALE|LONG_GLIDE // no tile bound so you can see it around corners and so - icon = 'icons/effects/light_overlays/light_352.dmi' - icon_state = "light" - pixel_x = -176 - pixel_y = -176 - -/atom/movable/warp_effect/Initialize(mapload) - . = ..() - var/turf/new_turf = get_turf(src) - if(new_turf) - var/new_offset = GET_TURF_PLANE_OFFSET(new_turf) - ADD_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(new_offset), ref(src)) - -/atom/movable/warp_effect/Destroy(force) - // Just in case I've forgotten how the movement api works - var/offset = GET_TURF_PLANE_OFFSET(loc) - REMOVE_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(offset), ref(src)) - return ..() - -/atom/movable/warp_effect/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) - . = ..() - var/turf/new_turf = get_turf(src) - var/turf/old_turf = get_turf(old_loc) - if(!new_turf) - var/old_offset = GET_TURF_PLANE_OFFSET(old_turf) - REMOVE_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(old_offset), ref(src)) - return - else if(get_turf(old_loc)) - return - // If we're in a thing on a turf we COUNT as a distortion source - var/new_offset = GET_TURF_PLANE_OFFSET(new_turf) - ADD_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(new_offset), ref(src)) - -/atom/movable/warp_effect/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) - . = ..() - if(same_z_layer) - return - if(old_turf) - var/old_offset = GET_TURF_PLANE_OFFSET(old_turf) - REMOVE_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(old_offset), ref(src)) - if(new_turf) - var/new_offset = GET_TURF_PLANE_OFFSET(new_turf) - ADD_TRAIT(GLOB, TRAIT_DISTORTION_IN_USE(new_offset), ref(src)) - /obj/effect/anomaly/grav name = "gravitational anomaly" icon = 'icons/effects/effects.dmi' @@ -52,8 +6,7 @@ density = FALSE anomaly_core = /obj/item/assembly/signaler/anomaly/grav var/boing = 0 - ///Warp effect holder for displacement filter to "pulse" the anomaly - var/atom/movable/warp_effect/warp + var/object_launch_prob = 20 /obj/effect/anomaly/grav/Initialize(mapload, new_lifespan) . = ..() @@ -63,21 +16,6 @@ AddElement(/datum/element/connect_loc, loc_connections) apply_wibbly_filters(src) - warp = new(src) - vis_contents += warp - -/obj/effect/anomaly/grav/Destroy() - vis_contents -= warp - warp = null - return ..() - -/obj/effect/anomaly/grav/on_changed_z_level(turf/old_turf, turf/new_turf, same_z_layer, notify_contents) - . = ..() - if(same_z_layer) - return - if(warp) - SET_PLANE(warp, PLANE_TO_TRUE(warp.plane), new_turf) - /obj/effect/anomaly/grav/anomalyEffect(seconds_per_tick) ..() boing = 1 @@ -85,7 +23,8 @@ if(!O.anchored) step_towards(O,src) for(var/mob/living/M in range(0, src)) - gravShock(M) + if(!M.mob_negates_gravity()) + gravShock(M) for(var/mob/living/M in orange(4, src)) if(!M.mob_negates_gravity()) step_towards(M,src) @@ -93,13 +32,9 @@ if(O.anchored || HAS_TRAIT(O, TRAIT_UNDERFLOOR)) continue var/mob/living/target = locate() in view(4,src) - if(target && !target.stat) + if(target && !target.stat && prob(object_launch_prob)) O.throw_at(target, 5, 10) - //anomaly quickly contracts then slowly expands its ring - animate(warp, time = seconds_per_tick*3, transform = matrix().Scale(0.5,0.5)) - animate(time = seconds_per_tick*7, transform = matrix()) - /obj/effect/anomaly/grav/proc/on_entered(datum/source, atom/movable/AM) SIGNAL_HANDLER gravShock(AM) @@ -110,11 +45,11 @@ /obj/effect/anomaly/grav/Bumped(atom/movable/AM) gravShock(AM) -/obj/effect/anomaly/grav/proc/gravShock(mob/living/A) - if(boing && isliving(A) && !A.stat) - A.Paralyze(40) - var/atom/target = get_edge_target_turf(A, get_dir(src, get_step_away(A, src))) - A.throw_at(target, 5, 1) +/obj/effect/anomaly/grav/proc/gravShock(mob/living/living_debris) + if(boing && isliving(living_debris) && !living_debris.stat && !living_debris.mob_negates_gravity()) + living_debris.Knockdown(4 SECONDS) + var/atom/target = get_edge_target_turf(living_debris, get_dir(src, get_step_away(living_debris, src))) + living_debris.throw_at(target, 5, 1) boing = 0 /obj/effect/anomaly/grav/detonate() diff --git a/code/game/objects/effects/anomalies/anomalies_hallucination.dm b/code/game/objects/effects/anomalies/anomalies_hallucination.dm index 852e4fd998a1..ce272667ba5a 100644 --- a/code/game/objects/effects/anomalies/anomalies_hallucination.dm +++ b/code/game/objects/effects/anomalies/anomalies_hallucination.dm @@ -11,7 +11,7 @@ var/static/list/messages = list( span_warning("You feel your conscious mind fall apart!"), span_warning("Reality warps around you!"), - span_warning("Something's wispering around you!"), + span_warning("Something's whispering around you!"), span_warning("You are going insane!"), ) ///Do we spawn misleading decoys? diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/chemspray.dm similarity index 94% rename from code/game/objects/effects/decals/misc.dm rename to code/game/objects/effects/decals/chemspray.dm index 112f3b228dc4..005f7482aac1 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/chemspray.dm @@ -95,10 +95,3 @@ reagents.expose(spraying, VAPOR) log_combat(user, spraying, "sprayed", sprayer, addition = "which had [logging_string]") - -/obj/effect/decal/fakelattice - name = "lattice" - desc = "A lightweight support lattice." - icon = 'icons/obj/smooth_structures/lattice.dmi' - icon_state = "lattice-255" - density = TRUE diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 3087002987ef..0eebda1243c0 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -134,3 +134,7 @@ if (existing) return existing return new cleanable_type(checkturf) + +/turf/proc/spawn_glitter(glitter_colors) + var/obj/effect/decal/cleanable/glitter/new_glitter = spawn_unique_cleanable(/obj/effect/decal/cleanable/glitter) + new_glitter.color = pick_weight(glitter_colors) diff --git a/code/game/objects/effects/decals/cleanable/ants.dm b/code/game/objects/effects/decals/cleanable/ants.dm new file mode 100644 index 000000000000..b6a3fa38c3fa --- /dev/null +++ b/code/game/objects/effects/decals/cleanable/ants.dm @@ -0,0 +1,90 @@ +/obj/effect/decal/cleanable/ants + name = "space ants" + desc = "A small colony of space ants. They're normally used to the vacuum of space, so they can't climb too well." + icon = 'icons/obj/debris.dmi' + icon_state = "ants" + beauty = -150 + plane = GAME_PLANE + layer = LOW_OBJ_LAYER + decal_reagent = /datum/reagent/ants + reagent_amount = 5 + /// Sound the ants make when biting + var/bite_sound = 'sound/items/weapons/bite.ogg' + +/obj/effect/decal/cleanable/ants/Initialize(mapload) + if(mapload && reagent_amount > 2) + reagent_amount = rand((reagent_amount - 2), reagent_amount) + . = ..() + update_ant_damage() + +/obj/effect/decal/cleanable/ants/vv_edit_var(vname, vval) + . = ..() + if(vname == NAMEOF(src, bite_sound)) + update_ant_damage() + +/obj/effect/decal/cleanable/ants/handle_merge_decal(obj/effect/decal/cleanable/merger) + . = ..() + var/obj/effect/decal/cleanable/ants/ants = merger + ants.update_ant_damage() + +/obj/effect/decal/cleanable/ants/proc/update_ant_damage(ant_min_damage, ant_max_damage) + if(!ant_max_damage) + ant_max_damage = min(10, round((reagents ? reagents.get_reagent_amount(/datum/reagent/ants) : reagent_amount) * 0.1,0.1)) // 100u ants = 10 max_damage + if(!ant_min_damage) + ant_min_damage = 0.1 + var/ant_flags = (CALTROP_NOCRAWL | CALTROP_NOSTUN) /// Small amounts of ants won't be able to bite through shoes. + if(ant_max_damage > 1) + ant_flags = (CALTROP_NOCRAWL | CALTROP_NOSTUN | CALTROP_BYPASS_SHOES) + + var/datum/component/caltrop/caltrop_comp = GetComponent(/datum/component/caltrop) + if(caltrop_comp) + caltrop_comp.min_damage = ant_min_damage + caltrop_comp.max_damage = ant_max_damage + caltrop_comp.flags = ant_flags + caltrop_comp.soundfile = bite_sound + else + AddComponent(/datum/component/caltrop, min_damage = ant_min_damage, max_damage = ant_max_damage, flags = ant_flags, soundfile = bite_sound) + + update_appearance(UPDATE_ICON) + +/obj/effect/decal/cleanable/ants/update_icon_state() + if(istype(src, /obj/effect/decal/cleanable/ants/fire)) //i fucking hate this but you're forced to call parent in update_icon_state() + return ..() + if(!(flags_1 & INITIALIZED_1)) + return ..() + + var/datum/component/caltrop/caltrop_comp = GetComponent(/datum/component/caltrop) + if(!caltrop_comp) + return ..() + + switch(caltrop_comp.max_damage) + if(0 to 1) + icon_state = initial(icon_state) + if(1.1 to 4) + icon_state = "[initial(icon_state)]_2" + if(4.1 to 7) + icon_state = "[initial(icon_state)]_3" + if(7.1 to INFINITY) + icon_state = "[initial(icon_state)]_4" + return ..() + +/obj/effect/decal/cleanable/ants/update_overlays() + . = ..() + . += emissive_appearance(icon, "[icon_state]_light", src, alpha = src.alpha, effect_type = EMISSIVE_NO_BLOOM) + +/obj/effect/decal/cleanable/ants/fire_act(exposed_temperature, exposed_volume) + new /obj/effect/decal/cleanable/ants/fire(loc) + qdel(src) + +/obj/effect/decal/cleanable/ants/fire + name = "space fire ants" + desc = "A small colony no longer. We are the fire nation." + decal_reagent = /datum/reagent/ants/fire + icon_state = "fire_ants" + mergeable_decal = FALSE + +/obj/effect/decal/cleanable/ants/fire/update_ant_damage(ant_min_damage, ant_max_damage) + return ..(15, 25) + +/obj/effect/decal/cleanable/ants/fire/fire_act(exposed_temperature, exposed_volume) + return diff --git a/code/game/objects/effects/decals/cleanable/blood.dm b/code/game/objects/effects/decals/cleanable/blood.dm index b5ae997f8169..488c1b610d9c 100644 --- a/code/game/objects/effects/decals/cleanable/blood.dm +++ b/code/game/objects/effects/decals/cleanable/blood.dm @@ -119,7 +119,7 @@ . += blood_emissive(icon, icon_state) /obj/effect/decal/cleanable/blood/proc/blood_emissive(icon_to_use, icon_state_to_use) - return emissive_appearance(icon_to_use, icon_state_to_use, src, layer, 255 * emissive_alpha / alpha) + return emissive_appearance(icon_to_use, icon_state_to_use, src, alpha = 255 * emissive_alpha / alpha, effect_type = EMISSIVE_NO_BLOOM) /obj/effect/decal/cleanable/blood/lazy_init_reagents() if (reagents) @@ -459,6 +459,25 @@ /// Beyond a threshold we change to a bloodier icon state var/very_bloody = FALSE +/obj/effect/decal/cleanable/blood/trail/Initialize(mapload, list/datum/disease/diseases, list/blood_or_dna) + . = ..() + // Despite having VIS_INHERIT_PLANE, our emissives still inherit our plane offset, so we need to inherit our parent's offset to have them render correctly + if(istype(loc, /obj/effect/decal/cleanable/blood/trail_holder)) + SET_PLANE_EXPLICIT(src, initial(plane), loc) + if (emissive_alpha && !dried) + update_appearance() // correct our emissive + return + + +#ifndef UNIT_TESTS + if (mapload) + log_mapping("[src] spawned outside of a trail holder at [AREACOORD(src)]!") + return INITIALIZE_HINT_QDEL +#endif + + stack_trace("[src] spawned outside of a trail holder at [AREACOORD(src)]!") + return INITIALIZE_HINT_QDEL + /obj/effect/decal/cleanable/blood/trail/update_desc(updates) . = ..() desc = "A [dried ? "dried " : ""]trail of [get_blood_string()]." diff --git a/code/game/objects/effects/decals/cleanable/fuel.dm b/code/game/objects/effects/decals/cleanable/fuel.dm new file mode 100644 index 000000000000..e372e93c43d6 --- /dev/null +++ b/code/game/objects/effects/decals/cleanable/fuel.dm @@ -0,0 +1,113 @@ +/obj/effect/decal/cleanable/fuel_pool + name = "pool of fuel" + desc = "A pool of flammable fuel. Its probably wise to clean this off before something ignites it..." + icon_state = "fuel_pool" + beauty = -50 + clean_type = CLEAN_TYPE_BLOOD + mouse_opacity = MOUSE_OPACITY_OPAQUE + resistance_flags = UNACIDABLE | ACID_PROOF | FIRE_PROOF | FLAMMABLE //gross way of doing this but would need to disassemble fire_act call stack otherwise + /// Maximum amount of hotspots this pool can create before deleting itself + var/burn_amount = 3 + /// Is this fuel pool currently burning? + var/burning = FALSE + /// Type of hotspot fuel pool spawns upon being ignited + var/hotspot_type = /obj/effect/hotspot + +/obj/effect/decal/cleanable/fuel_pool/Initialize(mapload, burn_stacks) + . = ..() + var/static/list/loc_connections = list( + COMSIG_TURF_MOVABLE_THROW_LANDED = PROC_REF(ignition_trigger), + COMSIG_ATOM_ENTERED = PROC_REF(on_entered) + ) + AddElement(/datum/element/connect_loc, loc_connections) + for(var/obj/effect/decal/cleanable/fuel_pool/pool in get_turf(src)) //Can't use locate because we also belong to that turf + if(pool == src) + continue + pool.burn_amount = max(min(pool.burn_amount + burn_stacks, 10), 1) + return INITIALIZE_HINT_QDEL + + if(burn_stacks) + burn_amount = max(min(burn_stacks, 10), 1) + + return INITIALIZE_HINT_LATELOAD + +// Just in case of fires, do this after mapload. +/obj/effect/decal/cleanable/fuel_pool/LateInitialize() +// We don't want to burn down the create_and_destroy test area +#ifndef UNIT_TESTS + RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) +#endif + +/obj/effect/decal/cleanable/fuel_pool/fire_act(exposed_temperature, exposed_volume) + . = ..() + ignite() + +/** + * Ignites the fuel pool. This should be the only way to ignite fuel pools. + */ +/obj/effect/decal/cleanable/fuel_pool/proc/ignite() + if(burning) + return + burning = TRUE + burn_process() + +/** + * Spends 1 burn_amount and spawns a hotspot. If burn_amount is equal to 0, deletes the fuel pool. + * Else, queues another call of this proc upon hotspot getting deleted and ignites other fuel pools around itself after 0.5 seconds. + * THIS SHOULD NOT BE CALLED DIRECTLY. + */ +/obj/effect/decal/cleanable/fuel_pool/proc/burn_process() + SIGNAL_HANDLER + + burn_amount -= 1 + var/obj/effect/hotspot/hotspot = new hotspot_type(get_turf(src)) + addtimer(CALLBACK(src, PROC_REF(ignite_others)), 0.5 SECONDS) + + if(!burn_amount) + qdel(src) + return + + RegisterSignal(hotspot, COMSIG_QDELETING, PROC_REF(burn_process)) + +/** + * Ignites other oil pools around itself. + */ +/obj/effect/decal/cleanable/fuel_pool/proc/ignite_others() + for(var/obj/effect/decal/cleanable/fuel_pool/oil in range(1, get_turf(src))) + oil.ignite() + +/obj/effect/decal/cleanable/fuel_pool/bullet_act(obj/projectile/hit_proj) + . = ..() + ignite() + log_combat(hit_proj.firer, src, "used [hit_proj] to ignite") + +/obj/effect/decal/cleanable/fuel_pool/attackby(obj/item/item, mob/user, list/modifiers, list/attack_modifiers) + if(item.ignition_effect(src, user)) + ignite() + log_combat(user, src, "used [item] to ignite") + return ..() + +/obj/effect/decal/cleanable/fuel_pool/proc/on_entered(datum/source, atom/movable/entered_atom) + SIGNAL_HANDLER + + if(!entered_atom.throwing) // don't light from things being thrown over us, we handle that somewhere else + ignition_trigger(source = src, enflammable_atom = entered_atom) + +/obj/effect/decal/cleanable/fuel_pool/proc/ignition_trigger(datum/source, atom/movable/enflammable_atom) + SIGNAL_HANDLER + + if(isitem(enflammable_atom)) + var/obj/item/enflamed_item = enflammable_atom + if(enflamed_item.get_temperature() > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) + ignite() + return + else if(isliving(enflammable_atom)) + var/mob/living/enflamed_liver = enflammable_atom + if(enflamed_liver.on_fire) + ignite() + else if(istype(enflammable_atom, /obj/effect/particle_effect/sparks)) + ignite() + + +/obj/effect/decal/cleanable/fuel_pool/hivis + icon_state = "fuel_pool_hivis" diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/mess.dm similarity index 60% rename from code/game/objects/effects/decals/cleanable/misc.dm rename to code/game/objects/effects/decals/cleanable/mess.dm index 141d7dace9ec..d31f44a4b010 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/mess.dm @@ -294,22 +294,14 @@ GLOBAL_LIST_EMPTY(nebula_vomits) /obj/effect/decal/cleanable/glitter name = "generic glitter pile" desc = "The herpes of arts and crafts." - icon = 'icons/effects/atmospherics.dmi' - icon_state = "plasma_old" + icon = 'icons/effects/glitter.dmi' + icon_state = "glitter" gender = NEUTER mouse_opacity = MOUSE_OPACITY_TRANSPARENT -/obj/effect/decal/cleanable/glitter/pink - name = "pink glitter" - icon_state = "plasma" - -/obj/effect/decal/cleanable/glitter/white - name = "white glitter" - icon_state = "nitrous_oxide" - -/obj/effect/decal/cleanable/glitter/blue - name = "blue glitter" - icon_state = "freon" +/obj/effect/decal/cleanable/glitter/Initialize(mapload, list/datum/disease/diseases) + . = ..() + add_overlay(mutable_appearance('icons/effects/glitter.dmi', "glitter_sparkle[rand(1,9)]", appearance_flags = EMISSIVE_APPEARANCE_FLAGS)) /obj/effect/decal/cleanable/plasma name = "stabilized plasma" @@ -373,211 +365,6 @@ GLOBAL_LIST_EMPTY(nebula_vomits) . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_SLUDGE, CELL_VIRUS_TABLE_GENERIC, rand(2,4), 15) -/obj/effect/decal/cleanable/ants - name = "space ants" - desc = "A small colony of space ants. They're normally used to the vacuum of space, so they can't climb too well." - icon = 'icons/obj/debris.dmi' - icon_state = "ants" - beauty = -150 - plane = GAME_PLANE - layer = LOW_OBJ_LAYER - decal_reagent = /datum/reagent/ants - reagent_amount = 5 - /// Sound the ants make when biting - var/bite_sound = 'sound/items/weapons/bite.ogg' - -/obj/effect/decal/cleanable/ants/Initialize(mapload) - if(mapload && reagent_amount > 2) - reagent_amount = rand((reagent_amount - 2), reagent_amount) - . = ..() - update_ant_damage() - -/obj/effect/decal/cleanable/ants/vv_edit_var(vname, vval) - . = ..() - if(vname == NAMEOF(src, bite_sound)) - update_ant_damage() - -/obj/effect/decal/cleanable/ants/handle_merge_decal(obj/effect/decal/cleanable/merger) - . = ..() - var/obj/effect/decal/cleanable/ants/ants = merger - ants.update_ant_damage() - -/obj/effect/decal/cleanable/ants/proc/update_ant_damage(ant_min_damage, ant_max_damage) - if(!ant_max_damage) - ant_max_damage = min(10, round((reagents ? reagents.get_reagent_amount(/datum/reagent/ants) : reagent_amount) * 0.1,0.1)) // 100u ants = 10 max_damage - if(!ant_min_damage) - ant_min_damage = 0.1 - var/ant_flags = (CALTROP_NOCRAWL | CALTROP_NOSTUN) /// Small amounts of ants won't be able to bite through shoes. - if(ant_max_damage > 1) - ant_flags = (CALTROP_NOCRAWL | CALTROP_NOSTUN | CALTROP_BYPASS_SHOES) - - var/datum/component/caltrop/caltrop_comp = GetComponent(/datum/component/caltrop) - if(caltrop_comp) - caltrop_comp.min_damage = ant_min_damage - caltrop_comp.max_damage = ant_max_damage - caltrop_comp.flags = ant_flags - caltrop_comp.soundfile = bite_sound - else - AddComponent(/datum/component/caltrop, min_damage = ant_min_damage, max_damage = ant_max_damage, flags = ant_flags, soundfile = bite_sound) - - update_appearance(UPDATE_ICON) - -/obj/effect/decal/cleanable/ants/update_icon_state() - if(istype(src, /obj/effect/decal/cleanable/ants/fire)) //i fucking hate this but you're forced to call parent in update_icon_state() - return ..() - if(!(flags_1 & INITIALIZED_1)) - return ..() - - var/datum/component/caltrop/caltrop_comp = GetComponent(/datum/component/caltrop) - if(!caltrop_comp) - return ..() - - switch(caltrop_comp.max_damage) - if(0 to 1) - icon_state = initial(icon_state) - if(1.1 to 4) - icon_state = "[initial(icon_state)]_2" - if(4.1 to 7) - icon_state = "[initial(icon_state)]_3" - if(7.1 to INFINITY) - icon_state = "[initial(icon_state)]_4" - return ..() - -/obj/effect/decal/cleanable/ants/update_overlays() - . = ..() - . += emissive_appearance(icon, "[icon_state]_light", src, alpha = src.alpha) - -/obj/effect/decal/cleanable/ants/fire_act(exposed_temperature, exposed_volume) - new /obj/effect/decal/cleanable/ants/fire(loc) - qdel(src) - -/obj/effect/decal/cleanable/ants/fire - name = "space fire ants" - desc = "A small colony no longer. We are the fire nation." - decal_reagent = /datum/reagent/ants/fire - icon_state = "fire_ants" - mergeable_decal = FALSE - -/obj/effect/decal/cleanable/ants/fire/update_ant_damage(ant_min_damage, ant_max_damage) - return ..(15, 25) - -/obj/effect/decal/cleanable/ants/fire/fire_act(exposed_temperature, exposed_volume) - return - -/obj/effect/decal/cleanable/fuel_pool - name = "pool of fuel" - desc = "A pool of flammable fuel. Its probably wise to clean this off before something ignites it..." - icon_state = "fuel_pool" - beauty = -50 - clean_type = CLEAN_TYPE_BLOOD - mouse_opacity = MOUSE_OPACITY_OPAQUE - resistance_flags = UNACIDABLE | ACID_PROOF | FIRE_PROOF | FLAMMABLE //gross way of doing this but would need to disassemble fire_act call stack otherwise - /// Maximum amount of hotspots this pool can create before deleting itself - var/burn_amount = 3 - /// Is this fuel pool currently burning? - var/burning = FALSE - /// Type of hotspot fuel pool spawns upon being ignited - var/hotspot_type = /obj/effect/hotspot - -/obj/effect/decal/cleanable/fuel_pool/Initialize(mapload, burn_stacks) - . = ..() - var/static/list/loc_connections = list( - COMSIG_TURF_MOVABLE_THROW_LANDED = PROC_REF(ignition_trigger), - COMSIG_ATOM_ENTERED = PROC_REF(on_entered) - ) - AddElement(/datum/element/connect_loc, loc_connections) - for(var/obj/effect/decal/cleanable/fuel_pool/pool in get_turf(src)) //Can't use locate because we also belong to that turf - if(pool == src) - continue - pool.burn_amount = max(min(pool.burn_amount + burn_stacks, 10), 1) - return INITIALIZE_HINT_QDEL - - if(burn_stacks) - burn_amount = max(min(burn_stacks, 10), 1) - - return INITIALIZE_HINT_LATELOAD - -// Just in case of fires, do this after mapload. -/obj/effect/decal/cleanable/fuel_pool/LateInitialize() -// We don't want to burn down the create_and_destroy test area -#ifndef UNIT_TESTS - RegisterSignal(src, COMSIG_ATOM_TOUCHED_SPARKS, PROC_REF(ignition_trigger)) -#endif - -/obj/effect/decal/cleanable/fuel_pool/fire_act(exposed_temperature, exposed_volume) - . = ..() - ignite() - -/** - * Ignites the fuel pool. This should be the only way to ignite fuel pools. - */ -/obj/effect/decal/cleanable/fuel_pool/proc/ignite() - if(burning) - return - burning = TRUE - burn_process() - -/** - * Spends 1 burn_amount and spawns a hotspot. If burn_amount is equal to 0, deletes the fuel pool. - * Else, queues another call of this proc upon hotspot getting deleted and ignites other fuel pools around itself after 0.5 seconds. - * THIS SHOULD NOT BE CALLED DIRECTLY. - */ -/obj/effect/decal/cleanable/fuel_pool/proc/burn_process() - SIGNAL_HANDLER - - burn_amount -= 1 - var/obj/effect/hotspot/hotspot = new hotspot_type(get_turf(src)) - addtimer(CALLBACK(src, PROC_REF(ignite_others)), 0.5 SECONDS) - - if(!burn_amount) - qdel(src) - return - - RegisterSignal(hotspot, COMSIG_QDELETING, PROC_REF(burn_process)) - -/** - * Ignites other oil pools around itself. - */ -/obj/effect/decal/cleanable/fuel_pool/proc/ignite_others() - for(var/obj/effect/decal/cleanable/fuel_pool/oil in range(1, get_turf(src))) - oil.ignite() - -/obj/effect/decal/cleanable/fuel_pool/bullet_act(obj/projectile/hit_proj) - . = ..() - ignite() - log_combat(hit_proj.firer, src, "used [hit_proj] to ignite") - -/obj/effect/decal/cleanable/fuel_pool/attackby(obj/item/item, mob/user, list/modifiers, list/attack_modifiers) - if(item.ignition_effect(src, user)) - ignite() - log_combat(user, src, "used [item] to ignite") - return ..() - -/obj/effect/decal/cleanable/fuel_pool/proc/on_entered(datum/source, atom/movable/entered_atom) - SIGNAL_HANDLER - - if(!entered_atom.throwing) // don't light from things being thrown over us, we handle that somewhere else - ignition_trigger(source = src, enflammable_atom = entered_atom) - -/obj/effect/decal/cleanable/fuel_pool/proc/ignition_trigger(datum/source, atom/movable/enflammable_atom) - SIGNAL_HANDLER - - if(isitem(enflammable_atom)) - var/obj/item/enflamed_item = enflammable_atom - if(enflamed_item.get_temperature() > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) - ignite() - return - else if(isliving(enflammable_atom)) - var/mob/living/enflamed_liver = enflammable_atom - if(enflamed_liver.on_fire) - ignite() - else if(istype(enflammable_atom, /obj/effect/particle_effect/sparks)) - ignite() - - -/obj/effect/decal/cleanable/fuel_pool/hivis - icon_state = "fuel_pool_hivis" - /obj/effect/decal/cleanable/rubble name = "rubble" desc = "A pile of rubble." diff --git a/code/game/objects/effects/decals/structure.dm b/code/game/objects/effects/decals/structure.dm new file mode 100644 index 000000000000..66935498dff3 --- /dev/null +++ b/code/game/objects/effects/decals/structure.dm @@ -0,0 +1,6 @@ +/obj/effect/decal/fakelattice + name = "lattice" + desc = "A lightweight support lattice." + icon = 'icons/obj/smooth_structures/lattice.dmi' + icon_state = "lattice-255" + density = TRUE diff --git a/code/game/objects/effects/decals/turfdecal/markings.dm b/code/game/objects/effects/decals/turfdecal/markings.dm index 9378fee511c3..53815dd6457f 100644 --- a/code/game/objects/effects/decals/turfdecal/markings.dm +++ b/code/game/objects/effects/decals/turfdecal/markings.dm @@ -187,7 +187,8 @@ //Bottom -/obj/effect/turf_decal/syndicateemblem/bottom/left +/obj/effect/turf_decal/syndicateemblem/bottom/left/obj/effect/turf_decal/raven/nine + icon_state = "RAVEN9" icon_state = "synd1,1" /obj/effect/turf_decal/syndicateemblem/bottom/middle @@ -219,6 +220,9 @@ icon_state = "synd3,3" +/obj/effect/turf_decal/roroco + icon_state = "roroco" + /obj/effect/turf_decal/mining icon_state = "mining" diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm index 4698e153607e..788740e9f323 100644 --- a/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_foam.dm @@ -166,7 +166,7 @@ foam_mob(foaming, seconds_per_tick) var/obj/effect/particle_effect/fluid/foam/spread_foam = new type(spread_turf, group, src) - reagents.copy_to(spread_foam, (reagents.total_volume)) + reagents.trans_to(spread_foam, reagents.total_volume, copy_only = TRUE) spread_foam.add_atom_colour(color, FIXED_COLOUR_PRIORITY) spread_foam.result_type = result_type SSfoam.queue_spread(spread_foam) @@ -199,7 +199,7 @@ /datum/effect_system/fluid_spread/foam/set_up(range = 1, amount = DIAMOND_AREA(range), atom/holder, atom/location = null, datum/reagents/carry = null, result_type = null, stop_reactions = FALSE) . = ..() - carry?.copy_to(chemholder, carry.total_volume, no_react = stop_reactions) + carry?.trans_to(chemholder, carry.total_volume, no_react = stop_reactions, copy_only = TRUE) if(!isnull(result_type)) src.result_type = result_type @@ -208,7 +208,7 @@ var/foamcolor = mix_color_from_reagents(chemholder.reagent_list) if(reagent_scale > 1) // Make room in case we were created by a particularly stuffed payload. foam.reagents.maximum_volume *= reagent_scale - chemholder.copy_to(foam, chemholder.total_volume, reagent_scale) // Foam has an amplifying effect on the reagents it is supplied with. This is balanced by the reagents being diluted as the area the foam covers increases. + chemholder.trans_to(foam, chemholder.total_volume, reagent_scale, copy_only = TRUE) // Foam has an amplifying effect on the reagents it is supplied with. This is balanced by the reagents being diluted as the area the foam covers increases. foam.add_atom_colour(foamcolor, FIXED_COLOUR_PRIORITY) if(!isnull(result_type)) foam.result_type = result_type diff --git a/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.dm b/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.dm index c5e365eee8ef..c9e68ce6ede2 100644 --- a/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/fluid_spread/effects_smoke.dm @@ -86,7 +86,7 @@ smoke_mob(smoker, seconds_per_tick) var/obj/effect/particle_effect/fluid/smoke/spread_smoke = new type(spread_turf, group, src) - reagents.copy_to(spread_smoke, reagents.total_volume) + reagents.trans_to(spread_smoke, reagents.total_volume, copy_only = TRUE) spread_smoke.add_atom_colour(color, FIXED_COLOUR_PRIORITY) spread_smoke.lifetime = lifetime @@ -392,7 +392,7 @@ return FALSE var/fraction = (seconds_per_tick SECONDS) / initial(lifetime) - reagents.copy_to(smoker, reagents.total_volume, fraction, copy_methods = SMOKE_MACHINE) + reagents.trans_to(smoker, reagents.total_volume, fraction, methods = SMOKE_MACHINE, copy_only = TRUE) reagents.expose(smoker, SMOKE_MACHINE, fraction) return TRUE @@ -423,7 +423,7 @@ /datum/effect_system/fluid_spread/smoke/chem/set_up(range = 1, amount = DIAMOND_AREA(range), atom/holder, atom/location = null, datum/reagents/carry = null, silent = FALSE) . = ..() - carry?.copy_to(chemholder, carry.total_volume) + carry?.trans_to(chemholder, carry.total_volume, copy_only = TRUE) if(silent) return @@ -452,7 +452,7 @@ var/start_loc = holder ? get_turf(holder) : src.location var/mixcolor = mix_color_from_reagents(chemholder.reagent_list) var/obj/effect/particle_effect/fluid/smoke/chem/smoke = new effect_type(start_loc, new /datum/fluid_group(amount)) - chemholder.copy_to(smoke, chemholder.total_volume) + chemholder.trans_to(smoke, chemholder.total_volume, copy_only = TRUE) if(mixcolor) smoke.add_atom_colour(mixcolor, FIXED_COLOUR_PRIORITY) // give the smoke color, if it has any to begin with diff --git a/code/game/objects/effects/particles/echo.dm b/code/game/objects/effects/particles/echo.dm new file mode 100644 index 000000000000..90c3533d8ce7 --- /dev/null +++ b/code/game/objects/effects/particles/echo.dm @@ -0,0 +1,14 @@ +// Echolocation particles. +/particles/echo + icon = 'icons/effects/particles/echo.dmi' + icon_state = list("echo1" = 1, "echo2" = 1, "echo3" = 2) + width = 480 + height = 480 + count = 1000 + spawning = 0.5 + lifespan = 2 SECONDS + fade = 1 SECONDS + gravity = list(0, -0.1) + position = generator(GEN_BOX, list(-240, -240), list(240, 240), NORMAL_RAND) + drift = generator(GEN_VECTOR, list(-0.1, 0), list(0.1, 0)) + rotation = generator(GEN_NUM, 0, 360, NORMAL_RAND) diff --git a/code/game/objects/effects/particles/food.dm b/code/game/objects/effects/particles/food.dm new file mode 100644 index 000000000000..30f9e6ec2f43 --- /dev/null +++ b/code/game/objects/effects/particles/food.dm @@ -0,0 +1,13 @@ +// Food related particles. +/particles/stink + icon = 'icons/effects/particles/stink.dmi' + icon_state = list("stink_1" = 1, "stink_2" = 2, "stink_3" = 2) + color = "#0BDA51" + width = 100 + height = 100 + count = 25 + spawning = 0.25 + lifespan = 1 SECONDS + fade = 1 SECONDS + position = generator(GEN_CIRCLE, 0, 16, UNIFORM_RAND) + gravity = list(0, 0.25) diff --git a/code/game/objects/effects/particles/misc.dm b/code/game/objects/effects/particles/misc.dm deleted file mode 100644 index a1f188f88c90..000000000000 --- a/code/game/objects/effects/particles/misc.dm +++ /dev/null @@ -1,45 +0,0 @@ -// General or un-matched particles, make a new file if a few can be sorted together. -/particles/pollen - icon = 'icons/effects/particles/pollen.dmi' - icon_state = "pollen" - width = 100 - height = 100 - count = 1000 - spawning = 4 - lifespan = 0.7 SECONDS - fade = 1 SECONDS - grow = -0.01 - velocity = list(0, 0) - position = generator(GEN_CIRCLE, 0, 16, NORMAL_RAND) - drift = generator(GEN_VECTOR, list(0, -0.2), list(0, 0.2)) - gravity = list(0, 0.95) - scale = generator(GEN_VECTOR, list(0.3, 0.3), list(1,1), NORMAL_RAND) - rotation = 30 - spin = generator(GEN_NUM, -20, 20) - -/particles/echo - icon = 'icons/effects/particles/echo.dmi' - icon_state = list("echo1" = 1, "echo2" = 1, "echo3" = 2) - width = 480 - height = 480 - count = 1000 - spawning = 0.5 - lifespan = 2 SECONDS - fade = 1 SECONDS - gravity = list(0, -0.1) - position = generator(GEN_BOX, list(-240, -240), list(240, 240), NORMAL_RAND) - drift = generator(GEN_VECTOR, list(-0.1, 0), list(0.1, 0)) - rotation = generator(GEN_NUM, 0, 360, NORMAL_RAND) - -/particles/stink - icon = 'icons/effects/particles/stink.dmi' - icon_state = list("stink_1" = 1, "stink_2" = 2, "stink_3" = 2) - color = "#0BDA51" - width = 100 - height = 100 - count = 25 - spawning = 0.25 - lifespan = 1 SECONDS - fade = 1 SECONDS - position = generator(GEN_CIRCLE, 0, 16, UNIFORM_RAND) - gravity = list(0, 0.25) diff --git a/code/game/objects/effects/particles/plant.dm b/code/game/objects/effects/particles/plant.dm new file mode 100644 index 000000000000..eca8b6fe5d06 --- /dev/null +++ b/code/game/objects/effects/particles/plant.dm @@ -0,0 +1,18 @@ +// Plant related particles. +/particles/pollen + icon = 'icons/effects/particles/pollen.dmi' + icon_state = "pollen" + width = 100 + height = 100 + count = 1000 + spawning = 4 + lifespan = 0.7 SECONDS + fade = 1 SECONDS + grow = -0.01 + velocity = list(0, 0) + position = generator(GEN_CIRCLE, 0, 16, NORMAL_RAND) + drift = generator(GEN_VECTOR, list(0, -0.2), list(0, 0.2)) + gravity = list(0, 0.95) + scale = generator(GEN_VECTOR, list(0.3, 0.3), list(1,1), NORMAL_RAND) + rotation = 30 + spin = generator(GEN_NUM, -20, 20) diff --git a/code/game/objects/effects/posters/contraband.dm b/code/game/objects/effects/posters/contraband.dm index 564686430ccb..ff6e1e74b646 100644 --- a/code/game/objects/effects/posters/contraband.dm +++ b/code/game/objects/effects/posters/contraband.dm @@ -645,6 +645,13 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/blood_geometer MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/singletank_bomb, 32) +/obj/structure/sign/poster/contraband/roroco + name = "Roroco Gloves" + desc = "Roro says: Wear RoroCo insulated gloves, the safest brand on the market." + icon_state = "roroco" + +MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sign/poster/contraband/roroco, 32) + ///a special poster meant to fool people into thinking this is a bombable wall at a glance. /obj/structure/sign/poster/contraband/fake_bombable name = "fake bombable poster" diff --git a/code/game/objects/effects/spawners/random/entertainment.dm b/code/game/objects/effects/spawners/random/entertainment.dm index 5c94cb3a0cca..e51d83b46a8a 100644 --- a/code/game/objects/effects/spawners/random/entertainment.dm +++ b/code/game/objects/effects/spawners/random/entertainment.dm @@ -294,6 +294,6 @@ loot = list( /obj/item/grenade/chem_grenade/glitter/pink, /obj/item/grenade/chem_grenade/glitter/blue, - /obj/item/grenade/chem_grenade/glitter/white, + /obj/item/grenade/chem_grenade/glitter, /obj/item/grenade/chem_grenade/colorful ) diff --git a/code/game/objects/effects/spawners/random/food_or_drink.dm b/code/game/objects/effects/spawners/random/food_or_drink.dm index e1cd6696c8be..9ec343953f54 100644 --- a/code/game/objects/effects/spawners/random/food_or_drink.dm +++ b/code/game/objects/effects/spawners/random/food_or_drink.dm @@ -48,6 +48,18 @@ /obj/item/seeds/cucumber, ) +/obj/effect/spawner/random/food_or_drink/seed_flowers + name = "flower seed spawner" + icon_state = "seed" + spawn_all_loot = TRUE + loot = list( // Just some random flowers you can usually find and doesn't take away from mutated plants uniqueness + /obj/item/seeds/poppy, + /obj/item/seeds/poppy/lily, + /obj/item/seeds/harebell, + /obj/item/seeds/sunflower, + /obj/item/seeds/rose, + ) + /obj/effect/spawner/random/food_or_drink/seed_rare spawn_loot_count = 5 icon_state = "seed" @@ -70,6 +82,46 @@ /obj/item/seeds/glowshroom/shadowshroom = 1, ) +/obj/effect/spawner/random/food_or_drink/plant_produce + name = "plant produce spawner" + icon_state = "seed" + spawn_loot_count = 8 // will select 8 random produce + loot = list( // Just some random grown basic plants + /obj/item/food/grown/banana, + /obj/item/food/grown/soybeans, + /obj/item/food/grown/berries, + /obj/item/food/grown/wheat, + /obj/item/food/grown/rice, + /obj/item/food/grown/oat, + /obj/item/food/grown/apple, + /obj/item/food/grown/cherries, + /obj/item/food/grown/chili, + /obj/item/food/grown/citrus/orange, + /obj/item/food/grown/citrus/lime, + /obj/item/food/grown/citrus/lemon, + /obj/item/food/grown/cocoapod, + /obj/item/food/grown/corn, + /obj/item/food/grown/cucumber, + /obj/item/food/grown/eggplant, + /obj/item/food/grown/garlic, + /obj/item/food/grown/korta_nut, + /obj/item/food/grown/watermelon, + /obj/item/food/grown/olive, + /obj/item/food/grown/onion, + /obj/item/food/grown/peanut, + /obj/item/food/grown/pineapple, + /obj/item/seeds/plum, + /obj/item/food/grown/potato, + /obj/item/food/grown/pumpkin, + /obj/item/food/grown/carrot, + /obj/item/food/grown/parsnip, + /obj/item/food/grown/whitebeet, + /obj/item/food/grown/peas, + /obj/item/grown/cotton, + /obj/item/food/grown/herbs, + /obj/item/grown/log, + ) + /obj/effect/spawner/random/food_or_drink/soup name = "soup spawner" icon_state = "soup" diff --git a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm index 879fd3c00937..e4c45d83deb6 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/impact.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/impact.dm @@ -37,6 +37,26 @@ /obj/effect/projectile/impact/wormhole icon_state = "wormhole_g" +/obj/effect/projectile/impact/laser/emitter/psy + name = "psychosiphoning impact" + icon_state = "impact_greyscale" + color = COLOR_PINK + +/obj/effect/projectile/impact/laser/emitter/magnetic + name = "magnetogenerative impact" + icon_state = "impact_greyscale" + color = COLOR_SILVER + +/obj/effect/projectile/impact/laser/emitter/quake + name = "seismodisintegrating impact" + icon_state = "impact_greyscale" + color = COLOR_BROWNER_BROWN + +/obj/effect/projectile/impact/laser/emitter/blast + name = "hyperconcussive impact" + icon_state = "impact_greyscale" + color = COLOR_ORANGE + /obj/effect/projectile/impact/laser/emitter name = "emitter impact" icon_state = "impact_emitter" diff --git a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm index a68f58e1709d..ec996ad6ad88 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/muzzle.dm @@ -29,6 +29,26 @@ /obj/effect/projectile/muzzle/wormhole icon_state = "wormhole_g" +/obj/effect/projectile/muzzle/laser/emitter/psy + name = "psychosiphoning flash" + icon_state = "muzzle_greyscale" + color = COLOR_PINK + +/obj/effect/projectile/muzzle/laser/emitter/magnetic + name = "magnetogenerative flash" + icon_state = "muzzle_greyscale" + color = COLOR_SILVER + +/obj/effect/projectile/muzzle/laser/emitter/quake + name = "seismodisintegrating flash" + icon_state = "muzzle_greyscale" + color = COLOR_BROWNER_BROWN + +/obj/effect/projectile/muzzle/laser/emitter/blast + name = "hyperconcussive flash" + icon_state = "muzzle_greyscale" + color = COLOR_ORANGE + /obj/effect/projectile/muzzle/laser/emitter name = "emitter flash" icon_state = "muzzle_emitter" diff --git a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm index 4c8f46b7fd45..e32d2b833153 100644 --- a/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm +++ b/code/game/objects/effects/temporary_visuals/projectiles/tracer.dm @@ -58,17 +58,37 @@ name = "emitter beam" icon_state = "emitter" -/obj/effect/projectile/tracer/sniper - icon_state = "sniper" +/obj/effect/projectile/tracer/laser/emitter/bluelens + name = "electrodisruptive emitter beam" + icon_state = "u_laser" -/obj/effect/projectile/tracer/lightning - icon = 'icons/effects/beam.dmi' - icon_state = "lightning2" +/obj/effect/projectile/tracer/laser/emitter/redlens + name = "hyperenergetic emitter beam" + icon_state = "beam_heavy" + +/obj/effect/projectile/tracer/laser/emitter/bioregen + name = "bioregenerative emitter beam" + icon_state = "solar" -/obj/effect/projectile/tracer/lightning/Initialize(mapload) - . = ..() - update_appearance() +/obj/effect/projectile/tracer/laser/emitter/psy + name = "psychosiphoning emitter beam" + icon_state = "tracer_greyscale" + color = COLOR_PINK -/obj/effect/projectile/tracer/lightning/update_icon_state() - . = ..() - icon_state = "lightning[rand(1, 12)]" +/obj/effect/projectile/tracer/laser/emitter/magnetic + name = "magnetogenerative emitter beam" + icon_state = "tracer_greyscale" + color = COLOR_SILVER + +/obj/effect/projectile/tracer/laser/emitter/quake + name = "seismodisintegrating emitter beam" + icon_state = "tracer_greyscale" + color = COLOR_BROWNER_BROWN + +/obj/effect/projectile/tracer/laser/emitter/blast + name = "hyperconcussive emitter beam" + icon_state = "tracer_greyscale" + color = COLOR_ORANGE + +/obj/effect/projectile/tracer/sniper + icon_state = "sniper" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cde46ba28460..cd3f17e16225 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -155,11 +155,11 @@ /// The click cooldown on secondary attacks. Lower numbers mean faster attacks. Will use attack_speed if undefined. var/secondary_attack_speed ///In deciseconds, how long an item takes to equip; counts only for normal clothing slots, not pockets etc. - var/equip_delay_self = 0 + var/equip_delay_self = 0 SECONDS ///In deciseconds, how long an item takes to put on another person - var/equip_delay_other = 20 + var/equip_delay_other = 2 SECONDS ///In deciseconds, how long an item takes to remove from another person - var/strip_delay = 40 + var/strip_delay = 4 SECONDS ///How long it takes to resist out of the item (cuffs and such) var/breakouttime = 0 @@ -280,8 +280,6 @@ if(damtype == BRUTE) hitsound = SFX_SWING_HIT - add_weapon_description() - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_NEW_ITEM, src) setup_reskinning() @@ -433,7 +431,7 @@ set category = "Object" set src in oview(1) - if(!isturf(loc) || usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED)) + if(!isturf(loc) || usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || anchored) return if(isliving(usr)) @@ -475,6 +473,13 @@ /obj/item/examine_descriptor(mob/user) return "item" +/obj/item/examine(mob/user) + // lazily initialize the weapon description element if it hasn't been already + if(!(item_flags & WEAPON_DESCRIPTION_INITIALIZED)) + add_weapon_description() + item_flags |= WEAPON_DESCRIPTION_INITIALIZED + return ..() + /obj/item/examine_more(mob/user) . = ..() if(HAS_TRAIT(user, TRAIT_RESEARCH_SCANNER)) @@ -750,7 +755,7 @@ SEND_SIGNAL(src, COMSIG_ITEM_DROPPED, user) if(!silent) play_drop_sound(DROP_SOUND_VOLUME) - user?.update_equipment_speed_mods() + user?.update_equipment(src) /// called just as an item is picked up (loc is not yet changed) /obj/item/proc/pickup(mob/user) @@ -813,7 +818,7 @@ item_flags |= IN_INVENTORY RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_NO_WORN_ICON), SIGNAL_REMOVETRAIT(TRAIT_NO_WORN_ICON)), PROC_REF(update_slot_icon), override = TRUE) - user.update_equipment_speed_mods() + user.update_equipment(src) if(!initial && (slot_flags & slot) && (play_equip_sound())) return @@ -1238,7 +1243,7 @@ var/skill_modifier = 1 - if(tool_behaviour == TOOL_MINING && ishuman(user)) + if(tool_behaviour == TOOL_MINING) if(user.mind) skill_modifier = user.mind.get_skill_modifier(/datum/skill/mining, SKILL_SPEED_MODIFIER) diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 882953377a1e..5d33a69af6f5 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -898,7 +898,7 @@ /obj/item/card/id/GetID() return src -/obj/item/card/id/RemoveID() +/obj/item/card/id/remove_id() return src /// Called on COMSIG_ATOM_UPDATED_ICON. Updates the visuals of the wallet this card is in. @@ -1938,7 +1938,7 @@ var/mob/living/carbon/human/owner = user if (!selected_trim_path) // Ensure that even without a trim update, we update user's sechud - owner.sec_hud_set_ID() + owner.update_ID_card() if (registered_account) return @@ -2048,13 +2048,20 @@ /obj/item/card/cardboard/equipped(mob/user, slot, initial = FALSE) . = ..() - if(slot == ITEM_SLOT_ID) - RegisterSignal(user, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(return_visible_name)) - RegisterSignal(user, COMSIG_MOVABLE_MESSAGE_GET_NAME_PART, PROC_REF(return_message_name_part)) + if(slot != ITEM_SLOT_ID) + return + RegisterSignal(user, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(return_visible_name)) + RegisterSignal(user, COMSIG_MOVABLE_MESSAGE_GET_NAME_PART, PROC_REF(return_message_name_part)) + if(ishuman(user)) + var/mob/living/carbon/human/as_human = user + as_human.update_visible_name() /obj/item/card/cardboard/dropped(mob/user, silent = FALSE) . = ..() UnregisterSignal(user, list(COMSIG_HUMAN_GET_VISIBLE_NAME, COMSIG_MOVABLE_MESSAGE_GET_NAME_PART)) + if(ishuman(user)) + var/mob/living/carbon/human/as_human = user + as_human.update_visible_name() /obj/item/card/cardboard/proc/return_visible_name(mob/living/carbon/human/source, list/identity) SIGNAL_HANDLER diff --git a/code/game/objects/items/cigarettes.dm b/code/game/objects/items/cigarettes.dm index 0c1474dc887b..1fe1c5bea43d 100644 --- a/code/game/objects/items/cigarettes.dm +++ b/code/game/objects/items/cigarettes.dm @@ -652,7 +652,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /// Weighted list of random reagents to add var/static/list/possible_reagents = list( /datum/reagent/toxin/fentanyl = 2, - /datum/reagent/glitter = 2, + /datum/reagent/glitter/random = 2, /datum/reagent/drug/aranesp = 2, /datum/reagent/consumable/laughter = 2, /datum/reagent/medicine/insulin = 2, diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index 171c7a25b068..3a3770a63d4c 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -675,80 +675,41 @@ build_path = /obj/machinery/vending/custom req_components = list(/obj/item/vending_refill/custom = 1) - var/static/list/vending_names_paths = list( - /obj/machinery/vending/assist = "Part-Mart", - /obj/machinery/vending/autodrobe = "AutoDrobe", - /obj/machinery/vending/boozeomat = "Booze-O-Mat", - /obj/machinery/vending/cart = "PTech", - /obj/machinery/vending/cigarette = "ShadyCigs Deluxe", - /obj/machinery/vending/clothing = "ClothesMate", - /obj/machinery/vending/coffee = "Solar's Best Hot Drinks", - /obj/machinery/vending/cola = "Robust Softdrinks", - /obj/machinery/vending/custom = "Custom Vendor", - /obj/machinery/vending/cytopro = "CytoPro", - /obj/machinery/vending/dinnerware = "Plasteel Chef's Dinnerware Vendor", - /obj/machinery/vending/drugs = "NanoDrug Plus", - /obj/machinery/vending/engineering = "Robco Tool Maker", - /obj/machinery/vending/engivend = "Engi-Vend", - /obj/machinery/vending/games = "\improper Good Clean Fun", - /obj/machinery/vending/hydronutrients = "NutriMax", - /obj/machinery/vending/hydroseeds = "MegaSeed Servitor", - /obj/machinery/vending/medical = "NanoMed Plus", - /obj/machinery/vending/modularpc = "Deluxe Silicate Selections", - /obj/machinery/vending/robotics = "Robotech Deluxe", - /obj/machinery/vending/security = "SecTech", - /obj/machinery/vending/snack = "Getmore Chocolate Corp", - /obj/machinery/vending/sovietsoda = "BODA", - /obj/machinery/vending/sustenance = "Sustenance Vendor", - /obj/machinery/vending/tool = "YouTool", - /obj/machinery/vending/wallmed = "NanoMed", - /obj/machinery/vending/wardrobe/atmos_wardrobe = "AtmosDrobe", - /obj/machinery/vending/wardrobe/bar_wardrobe = "BarDrobe", - /obj/machinery/vending/wardrobe/cargo_wardrobe = "CargoDrobe", - /obj/machinery/vending/wardrobe/chap_wardrobe = "ChapDrobe", - /obj/machinery/vending/wardrobe/chef_wardrobe = "ChefDrobe", - /obj/machinery/vending/wardrobe/chem_wardrobe = "ChemDrobe", - /obj/machinery/vending/wardrobe/coroner_wardrobe = "MortiDrobe", - /obj/machinery/vending/wardrobe/curator_wardrobe = "CuraDrobe", - /obj/machinery/vending/wardrobe/det_wardrobe = "DetDrobe", - /obj/machinery/vending/wardrobe/engi_wardrobe = "EngiDrobe", - /obj/machinery/vending/wardrobe/gene_wardrobe = "GeneDrobe", - /obj/machinery/vending/wardrobe/hydro_wardrobe = "HyDrobe", - /obj/machinery/vending/wardrobe/jani_wardrobe = "JaniDrobe", - /obj/machinery/vending/wardrobe/law_wardrobe = "LawDrobe", - /obj/machinery/vending/wardrobe/medi_wardrobe = "MediDrobe", - /obj/machinery/vending/wardrobe/robo_wardrobe = "RoboDrobe", - /obj/machinery/vending/wardrobe/science_wardrobe = "SciDrobe", - /obj/machinery/vending/wardrobe/sec_wardrobe = "SecDrobe", - /obj/machinery/vending/wardrobe/viro_wardrobe = "ViroDrobe", - /obj/machinery/vending/mod_modules = "NanoMOD", // MASSMETA EDIT (mod_vend) - ) + ///Assoc list (machine name = machine typepath) of all vendors that can be chosen when the circuit is screwdrivered + var/static/list/valid_vendor_names_paths + +/obj/item/circuitboard/machine/vendor/Initialize(mapload) + . = ..() + if(!valid_vendor_names_paths) + valid_vendor_names_paths = list() + for(var/obj/machinery/vending/vendor_type as anything in subtypesof(/obj/machinery/vending)) + if(vendor_type::allow_custom) + valid_vendor_names_paths[vendor_type::name] = vendor_type /obj/item/circuitboard/machine/vendor/screwdriver_act(mob/living/user, obj/item/tool) - var/static/list/display_vending_names_paths - if(!display_vending_names_paths) - display_vending_names_paths = list() - for(var/path in vending_names_paths) - display_vending_names_paths[vending_names_paths[path]] = path - var/choice = tgui_input_list(user, "Choose a new brand", "Select an Item", sort_list(display_vending_names_paths)) + . = ITEM_INTERACT_FAILURE + var/choice = tgui_input_list(user, "Choose a new brand", "Select an Item", sort_list(valid_vendor_names_paths)) if(isnull(choice)) return - if(isnull(display_vending_names_paths[choice])) + if(!user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) return - set_type(display_vending_names_paths[choice]) - return TRUE + set_type(valid_vendor_names_paths[choice]) + return ITEM_INTERACT_SUCCESS +/** + * Sets circuitboard details based on the vending machine type to create + * + * Arguments + * * obj/machinery/vending/typepath - the vending machine type to create +*/ /obj/item/circuitboard/machine/vendor/proc/set_type(obj/machinery/vending/typepath) build_path = typepath - name = "[vending_names_paths[build_path]] Vendor" + name = "[typepath::name] Vendor" req_components = list(initial(typepath.refill_canister) = 1) flatpack_components = list(initial(typepath.refill_canister)) /obj/item/circuitboard/machine/vendor/apply_default_parts(obj/machinery/machine) - for(var/typepath in vending_names_paths) - if(istype(machine, typepath)) - set_type(typepath) - break + set_type(machine.type) return ..() /obj/item/circuitboard/machine/vending/donksofttoyvendor @@ -1945,3 +1906,35 @@ /obj/item/circuitboard/machine/engine/propulsion name = "Shuttle Engine Propulsion" build_path = /obj/machinery/power/shuttle_engine/propulsion + +/obj/item/circuitboard/machine/quantum_server + name = "Quantum Server" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/quantum_server + req_components = list( + /datum/stock_part/servo = 2, + /datum/stock_part/scanning_module = 1, + /datum/stock_part/capacitor = 1, + ) + +/obj/item/circuitboard/machine/netpod + name = "Netpod" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/netpod + req_components = list( + /datum/stock_part/servo = 1, + /datum/stock_part/matter_bin = 2, + ) + +/obj/item/circuitboard/computer/quantum_console + name = "Quantum Console" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/computer/quantum_console + +/obj/item/circuitboard/machine/byteforge + name = "Byteforge" + greyscale_colors = CIRCUIT_COLOR_SUPPLY + build_path = /obj/machinery/byteforge + req_components = list( + /datum/stock_part/micro_laser = 1, + ) diff --git a/code/game/objects/items/climbingrope.dm b/code/game/objects/items/climbingrope.dm index f096119ee32a..394deb1e6b9c 100644 --- a/code/game/objects/items/climbingrope.dm +++ b/code/game/objects/items/climbingrope.dm @@ -65,7 +65,7 @@ if(do_after(user, final_climb_time, interacting_with)) user.forceMove(interacting_with) - user.mind?.adjust_experience(/datum/skill/athletics, 5) //get some experience for our trouble, especially since this costs us a climbing rope use + user.mind?.adjust_experience(/datum/skill/athletics, round((ATHLETICS_SKILL_MISC_EXP)/(fitness_level || 1), 1)) //get some experience for our trouble, especially since this costs us a climbing rope use QDEL_LIST(effects) return ITEM_INTERACT_SUCCESS diff --git a/code/game/objects/items/crab17.dm b/code/game/objects/items/crab17.dm index 59973a8617af..2664cff95d4a 100644 --- a/code/game/objects/items/crab17.dm +++ b/code/game/objects/items/crab17.dm @@ -6,6 +6,7 @@ w_class = WEIGHT_CLASS_SMALL attack_verb_continuous = list("dumps") attack_verb_simple = list("dump") + /// Has the phone been used already? var/dumped = FALSE /obj/item/suspiciousphone/attack_self(mob/living/user) @@ -32,11 +33,11 @@ new /obj/effect/dumpeet_target(targetturf, L) to_chat(user, span_notice("You have activated Protocol CRAB-17.")) - message_admins("[ADMIN_LOOKUPFLW(user)] has activated Protocol CRAB-17.") user.log_message("activated Protocol CRAB-17.", LOG_GAME) dumped = TRUE + /obj/structure/checkoutmachine name = "\improper Nanotrasen Space-Coin Market" desc = "This is good for spacecoin because" @@ -48,15 +49,23 @@ density = TRUE pixel_z = -8 max_integrity = 5000 + /// List of bank accounts to take money from, determines in start_dumping() var/list/accounts_to_rob + /// The original user of the suspicious phone var/mob/living/bogdanoff /// Are we able to start moving? var/canwalk = FALSE + /// Our own internal bank account, serves as a fallback to transfer money to if Bogdanoff doesn't have one + var/datum/bank_account/internal_account /obj/structure/checkoutmachine/examine(mob/living/user) . = ..() . += span_info("It has a flashing ID card reader for convenient cashing out.") +/** + * Check whether any accounts in the accounts_to_rob list are still being drained. + * Returns TRUE if no accounts are being drained, FALSE otherwise + */ /obj/structure/checkoutmachine/proc/check_if_finished() for(var/i in accounts_to_rob) var/datum/bank_account/B = i @@ -103,6 +112,7 @@ if(QDELETED(src)) return bogdanoff = user + internal_account = new /datum/bank_account/remote("CRAB-17", 0, player_account = FALSE) add_overlay("flaps") add_overlay("hatch") add_overlay("legs_retracted") @@ -110,7 +120,9 @@ QDEL_IN(src, 8 MINUTES) //Self-destruct after 8 min ADD_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING, REF(src)) - +/** + * Starts the dumping process and plays a start-up animation before the checkout starts walking. + */ /obj/structure/checkoutmachine/proc/startUp() //very VERY snowflake code that adds a neat animation when the pod lands. start_dumping() //The machine doesnt move during this time, giving people close by a small window to grab their funds before it starts running around sleep(1 SECONDS) @@ -171,17 +183,23 @@ add_overlay("screen_lines") cut_overlay("text") add_overlay("text") - START_PROCESSING(SSfastprocess, src) // we only start doing economy draining stuff once our machinery is initialized, thematically + START_PROCESSING(SSfastprocess, src) canwalk = TRUE /obj/structure/checkoutmachine/Destroy() stop_dumping() STOP_PROCESSING(SSfastprocess, src) priority_announce("The credit deposit machine at [get_area(src)] has been destroyed. Station funds have stopped draining!", sender_override = "CRAB-17 Protocol") + if(internal_account.account_balance) + expel_cash() + QDEL_NULL(internal_account) explosion(src, light_impact_range = 1, flame_range = 2) REMOVE_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING, REF(src)) return ..() +/** + * Grabs the accounts to be robbed and puts them in accounts_to_rob, tells the accounts they're being drained and calls dump() to start draining. + */ /obj/structure/checkoutmachine/proc/start_dumping() accounts_to_rob = flatten_list(SSeconomy.bank_accounts_by_id) accounts_to_rob -= bogdanoff?.get_bank_account() @@ -190,6 +208,11 @@ B.dumpeet() dump() +/** + * For each account being drained, pulls a random percentage of cash out the account and sends it to Bogdanoff's account. + * If Bogdanoff did not have a bank account, stores the funds in the checkout's internal_account. + * Sets a timer to call itself again after an interval. + */ /obj/structure/checkoutmachine/proc/dump() var/percentage_lost = (rand(5, 15) / 100) for(var/i in accounts_to_rob) @@ -198,10 +221,9 @@ accounts_to_rob -= B continue var/amount = round(B.account_balance * percentage_lost) // We don't want fractions of a credit stolen. That's just agony for everyone. - var/datum/bank_account/account = bogdanoff?.get_bank_account() - if (account) // get_bank_account() may return FALSE - account.transfer_money(B, amount, "?VIVA¿: !LA CRABBE¡") - B.bank_card_talk("You have lost [percentage_lost * 100]% of your funds! A spacecoin credit deposit machine is located at: [get_area(src)].") + var/datum/bank_account/account = bogdanoff?.get_bank_account() || internal_account + account.transfer_money(B, amount, "?VIVA¿: !LA CRABBE¡") + B.bank_card_talk("You have lost [percentage_lost * 100]% of your funds! A spacecoin credit deposit machine is located at: [get_area(src)].") addtimer(CALLBACK(src, PROC_REF(dump)), 15 SECONDS) //Drain every 15 seconds /obj/structure/checkoutmachine/process() @@ -209,12 +231,31 @@ if(Process_Spacemove(anydir)) Move(get_step(src, anydir), anydir) +/** + * Goes through accounts_to_rob and tells every account that the drain has stopped. + */ /obj/structure/checkoutmachine/proc/stop_dumping() for(var/i in accounts_to_rob) var/datum/bank_account/B = i if(B) B.being_dumped = FALSE +/** + * Splits the balance of the internal_account into several smaller piles of cash and scatters them around the area. + */ +/obj/structure/checkoutmachine/proc/expel_cash() + var/funds_remaining = internal_account.account_balance + var/safety = funds_remaining + 1 // In the absolute worst case scenario the loop will complete in funds_remaining steps, if this is counter reaches 0 something went terribly wrong and we need to leave + while(floor(funds_remaining)) + var/amount_to_remove = min(funds_remaining, rand(1, round(internal_account.account_balance)/8)) + var/obj/item/holochip/holochip = new (get_turf(src), amount_to_remove) + funds_remaining -= amount_to_remove + holochip.throw_at(pick(oview(7,get_turf(src))),10,1) + safety -= 1 + if(safety <= 0) + CRASH("/obj/structure/checkoutmachine/proc/expel_cash() did not complete in the theoretical maximum number of steps. Starting value: [internal_account.account_balance]. Value at crash: [funds_remaining].") + + /obj/effect/dumpeet_fall //Falling pod name = "" icon = 'icons/obj/machines/money_machine_64.dmi' @@ -224,6 +265,7 @@ plane = ABOVE_GAME_PLANE icon_state = "missile_blur" + /obj/effect/dumpeet_target name = "Landing Zone Indicator" desc = "A holographic projection designating the landing zone of something. It's probably best to stand back." @@ -242,6 +284,9 @@ sound_to_playing_players('sound/items/dump_it.ogg', 20) deadchat_broadcast("Protocol CRAB-17 has been activated. A space-coin market has been launched at the station!", turf_target = get_turf(src), message_type=DEADCHAT_ANNOUNCEMENT) +/** + * Sets up the falling animation for the checkout machine. + */ /obj/effect/dumpeet_target/proc/startLaunch() DF = new /obj/effect/dumpeet_fall(drop_location()) dump = new /obj/structure/checkoutmachine(null, bogdanoff) @@ -250,8 +295,9 @@ playsound(src, 'sound/items/weapons/mortar_whistle.ogg', 70, TRUE, 6) addtimer(CALLBACK(src, PROC_REF(endLaunch)), 5, TIMER_CLIENT_TIME) //Go onto the last step after a very short falling animation - - +/** + * Cleans up after the falling animation. + */ /obj/effect/dumpeet_target/proc/endLaunch() QDEL_NULL(DF) //Delete the falling machine effect, because at this point its animation is over. We dont use temp_visual because we want to manually delete it as soon as the pod appears playsound(src, SFX_EXPLOSION, 80, TRUE) diff --git a/code/game/objects/items/devices/mulligan_kit.dm b/code/game/objects/items/devices/mulligan_kit.dm index 9560add9fa40..ae8ad36c9e6d 100644 --- a/code/game/objects/items/devices/mulligan_kit.dm +++ b/code/game/objects/items/devices/mulligan_kit.dm @@ -59,7 +59,7 @@ else to_chat(user, span_notice("You quickly put your new ID card [placed_in].")) - user.sec_hud_set_ID() + user.update_ID_card() var/mob/living/carbon/human/dummy/consistent/dummy = new() // For manifest rendering, unfortunately dummy.physique = user.physique diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index beaab018372f..9e81f9b9d2b0 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -177,7 +177,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/syndicate/alt/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) /obj/item/radio/headset/syndicate/alt/leader name = "team leader headset" @@ -201,7 +201,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/headset_sec/alt/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) /obj/item/radio/headset/headset_eng name = "engineering radio headset" @@ -284,7 +284,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/heads/captain/alt/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) /obj/item/radio/headset/heads/rd name = "\proper the research director's headset" @@ -316,7 +316,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/heads/hos/alt/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) /obj/item/radio/headset/heads/ce name = "\proper the chief engineer's headset" @@ -408,7 +408,7 @@ GLOBAL_LIST_INIT(channel_tokens, list( /obj/item/radio/headset/headset_cent/alt/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) /obj/item/radio/headset/headset_cent/alt/leader command = TRUE diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index 724466808294..828476d887d6 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -148,6 +148,10 @@ ui_interact(user) /obj/item/analyzer/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(istype(interacting_with, /obj/effect/anomaly) && can_see(user, interacting_with, ranged_scan_distance)) + var/obj/effect/anomaly/ranged_anomaly = interacting_with + ranged_anomaly.analyzer_act(user, src) + return ITEM_INTERACT_SUCCESS return interact_with_atom(interacting_with, user, modifiers) /obj/item/analyzer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) diff --git a/code/game/objects/items/devices/scanners/plant_analyzer.dm b/code/game/objects/items/devices/scanners/plant_analyzer.dm index 363ae5067b0d..78bcd74ae6e3 100644 --- a/code/game/objects/items/devices/scanners/plant_analyzer.dm +++ b/code/game/objects/items/devices/scanners/plant_analyzer.dm @@ -48,20 +48,13 @@ /// When we use the analyzer in hand - try to show the results of the last scan /obj/item/plant_analyzer/interact(mob/user) - . = ..() if(user.stat != CONSCIOUS || !user.can_read(src) || user.is_blind()) - return ITEM_INTERACT_BLOCKING - if(!last_scan_data) - return ITEM_INTERACT_BLOCKING - ui_interact(user) - return ITEM_INTERACT_SUCCESS + return + if(last_scan_data) + return ..() /// When we attack something, try to scan something we hit with left click. Left-clicking uses scans for stats /obj/item/plant_analyzer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) - . = ..() - if(!user.can_read(src)) - return ITEM_INTERACT_BLOCKING - if(isliving(interacting_with)) playsound(src, SFX_INDUSTRIAL_SCAN, 20, TRUE, -2, TRUE, FALSE) var/mob/living/living_target = interacting_with @@ -70,20 +63,11 @@ return ITEM_INTERACT_SUCCESS return ITEM_INTERACT_BLOCKING - if(analyze(user, interacting_with)) - return ITEM_INTERACT_SUCCESS - return NONE + return analyze(user, interacting_with) /// Same as above, but with right click. Right-clicking scans for chemicals. /obj/item/plant_analyzer/interact_with_atom_secondary(atom/interacting_with, mob/living/user, list/modifiers) - . = ..() - if(!user.can_read(src)) - return ITEM_INTERACT_BLOCKING - - if(do_plant_chem_scan(interacting_with, user)) - return ITEM_INTERACT_SUCCESS - - return NONE + return do_plant_chem_scan(interacting_with, user) /* * Scan the target on chemical scan mode. This prints chemical genes and reagents to the user. @@ -99,7 +83,8 @@ var/mob/living/living_target = scan_target if(living_target.mob_biotypes & MOB_PLANT) plant_biotype_chem_scan(scan_target, user) - return TRUE + return ITEM_INTERACT_SUCCESS + return ITEM_INTERACT_BLOCKING return analyze(user, scan_target) @@ -179,7 +164,10 @@ seed = scanned_object.get_plant_seed() if (!seed && !tray && !graft) - return FALSE + return NONE + + if(!user.can_read(src)) + return ITEM_INTERACT_BLOCKING last_scan_data = list( "tray_data" = null, @@ -234,8 +222,7 @@ ) ui_interact(user) - - return TRUE + return ITEM_INTERACT_SUCCESS /obj/item/plant_analyzer/proc/make_seed_data(obj/item/seeds/seed) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 46e9b706432a..f5b569b55324 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -501,3 +501,98 @@ effective or pretty fucking useless. /obj/projectile/bullet/toolbox_turret damage = 10 speed = 1.6 + +/// Flashbang disguised as a pen +/obj/item/pen/penbang + degrees = 90 + +/obj/item/pen/penbang/on_transform(obj/item/source, mob/user, active) + . = ..() + var/det_time = 1 SECONDS + (4 SECONDS * (degrees / 90)) + if(user) + to_chat(user, span_warning("You prime the penbang! [capitalize(DisplayTimeText(det_time))]!")) + log_bomber(user, "has primed a", src, "(penbang) for detonation") + addtimer(CALLBACK(src, PROC_REF(detonate), user), det_time) + +/obj/item/pen/penbang/proc/detonate(mob/user) + var/obj/item/grenade/flashbang/bang = new(get_turf(src)) + bang.detonate() + qdel(src) + +/// A camera disguised as a flash +/obj/item/camera/flash + /// The flash we use to flash people with + var/obj/item/assembly/flash/handheld/internal_flash + +/obj/item/camera/flash/Initialize(mapload) + . = ..() + internal_flash = new(src) + +/obj/item/camera/flash/Destroy() + QDEL_NULL(internal_flash) + return ..() + +/obj/item/camera/flash/Exited(atom/movable/gone, direction) + . = ..() + // i guess this is a normal camera now. shouldn't happen, though + if(gone == internal_flash) + internal_flash = null + +/obj/item/camera/flash/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(isliving(interacting_with)) + return ITEM_INTERACT_SKIP_TO_ATTACK + + return ..() + +/obj/item/camera/flash/attack(mob/living/M, mob/user) + return internal_flash?.attack(M, user) + +/// Jackboots with a dagger embedded into them - changes your kicks to be stab attacks, potetnially causing bleeding +/obj/item/clothing/shoes/jackboots/dagger + /// List of bodyparts modified by the dagger + var/list/modified_bodyparts = list() + +/obj/item/clothing/shoes/jackboots/dagger/equipped(mob/living/user, slot) + . = ..() + if(!(slot & ITEM_SLOT_FEET) || !istype(user)) + modified_bodyparts += user.get_bodypart(BODY_ZONE_L_LEG) + modified_bodyparts += user.get_bodypart(BODY_ZONE_R_LEG) + for(var/obj/item/bodypart/bodypart in modified_bodyparts) + bodypart.unarmed_sharpness |= SHARP_EDGED + bodypart.unarmed_attack_effect = ATTACK_EFFECT_SLASH + RegisterSignals(bodypart, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING), PROC_REF(clear_modification)) + RegisterSignal(user, COMSIG_CARBON_POST_ATTACH_LIMB, PROC_REF(modify_legs)) + +/obj/item/clothing/shoes/jackboots/dagger/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_CARBON_POST_ATTACH_LIMB) + for(var/obj/item/bodypart/bodypart in modified_bodyparts) + clear_modification(bodypart) + +/obj/item/clothing/shoes/jackboots/dagger/handle_deconstruct(disassembled) + . = ..() + new /obj/item/switchblade/extended(drop_location()) + +/obj/item/clothing/shoes/jackboots/dagger/proc/clear_modification(obj/item/bodypart/bodypart, ...) + SIGNAL_HANDLER + + UnregisterSignal(bodypart, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING)) + bodypart.unarmed_sharpness = initial(bodypart.unarmed_sharpness) + bodypart.unarmed_attack_effect = initial(bodypart.unarmed_attack_effect) + modified_bodyparts -= bodypart + +/obj/item/clothing/shoes/jackboots/dagger/proc/modify_legs(datum/source, obj/item/bodypart/bodypart, ...) + SIGNAL_HANDLER + + if(bodypart in modified_bodyparts) + return + if(!istype(bodypart, /obj/item/bodypart/leg)) + return + + modified_bodyparts += bodypart + bodypart.unarmed_sharpness |= SHARP_EDGED + RegisterSignal(bodypart, list(COMSIG_BODYPART_REMOVED, COMSIG_QDELETING), PROC_REF(clear_modification)) + +/obj/item/clothing/shoes/jackboots/dagger/examine_more(mob/user) + . = ..() + . += span_notice("Upon closer inspection, you notice a dagger embedded into the sole.") diff --git a/code/game/objects/items/flamethrower.dm b/code/game/objects/items/flamethrower.dm index d6cf9fd9336f..b7da99fdfdb4 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -237,6 +237,14 @@ /obj/item/flamethrower/Initialize(mapload) . = ..() + AddComponent(\ + /datum/component/bullet_intercepting,\ + block_chance = 15,\ + on_intercepted = CALLBACK(src, PROC_REF(intercepted_bullet_reaction)),\ + active_slots = ITEM_SLOT_HANDS,\ + block_type = list(BULLET,LASER),\ + is_blocking_check = CALLBACK(src, PROC_REF(check_tank)),\ + ) if(create_full) if(!weldtool) weldtool = new /obj/item/weldingtool(src) @@ -256,15 +264,15 @@ /obj/item/flamethrower/full/tank create_with_tank = TRUE -/obj/item/flamethrower/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) - if(damage && attack_type == PROJECTILE_ATTACK && damage_type != STAMINA && prob(15)) - owner.visible_message(span_danger("\The [attack_text] hits the fuel tank on [owner]'s [name], rupturing it! What a shot!")) - var/turf/target_turf = get_turf(owner) - owner.log_message("held a flamethrower tank detonated by a projectile ([hitby])", LOG_GAME) - igniter.ignite_turf(src,target_turf, release_amount = 100) - qdel(ptank) - return 1 //It hit the flamethrower, not them +/obj/item/flamethrower/proc/intercepted_bullet_reaction(mob/living/holder, obj/projectile/bullet) + holder.visible_message(span_danger("\The [bullet] hits the fuel tank on [holder]'s [name], rupturing it! What a shot!")) + var/turf/target_turf = get_turf(holder) + holder.log_message("held a flamethrower tank detonated by a projectile ([bullet])", LOG_GAME) + igniter.ignite_turf(src,target_turf, release_amount = 100) + qdel(ptank) +/obj/item/flamethrower/proc/check_tank() + return ptank /obj/item/assembly/igniter/proc/flamethrower_process(turf/open/location) location.hotspot_expose(heat,2) diff --git a/code/game/objects/items/food/_food.dm b/code/game/objects/items/food/_food.dm index 1003119a2c42..d174480f8cfa 100644 --- a/code/game/objects/items/food/_food.dm +++ b/code/game/objects/items/food/_food.dm @@ -152,7 +152,7 @@ /// This proc handles the microwave component. Overwrite if you want special microwave results. /// By default, all food is microwavable. However, they will be microwaved into a bad recipe (burnt mess). /obj/item/food/proc/make_microwaveable() - AddElement(/datum/element/microwavable) + AddElement(/datum/element/microwavable, /obj/item/food/badrecipe, skip_matcheck = TRUE) ///This proc handles trash components, overwrite this if you want the object to spawn trash /obj/item/food/proc/make_leave_trash() diff --git a/code/game/objects/items/food/bread.dm b/code/game/objects/items/food/bread.dm index 12a9a4b35def..d16d90b5dcfb 100644 --- a/code/game/objects/items/food/bread.dm +++ b/code/game/objects/items/food/bread.dm @@ -118,6 +118,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment/protein = 2.4, ) + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 5) tastes = list("bread" = 1, "meat" = 1) foodtypes = GRAIN | MEAT | DAIRY crafting_complexity = FOOD_COMPLEXITY_3 @@ -146,6 +147,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment/protein = 2.4, ) + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 2.5) tastes = list("bread" = 10, "meat" = 10) foodtypes = GRAIN | MEAT crafting_complexity = FOOD_COMPLEXITY_3 @@ -174,6 +176,7 @@ /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/nutriment/protein = 3, ) + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 5) tastes = list("bread" = 10, "acid" = 10) foodtypes = GRAIN | MEAT | DAIRY crafting_complexity = FOOD_COMPLEXITY_3 @@ -204,6 +207,7 @@ /datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 1, ) + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 5) tastes = list("bread" = 10, "cobwebs" = 5) foodtypes = GRAIN|MEAT|DAIRY|TOXIC crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm index f6c123208c40..9f45ac42b686 100644 --- a/code/game/objects/items/food/cake.dm +++ b/code/game/objects/items/food/cake.dm @@ -500,6 +500,7 @@ tastes = list("acid" = 3, "metal" = 4, "glass" = 5) foodtypes = GRAIN|DAIRY|SUGAR|GROSS crafting_complexity = FOOD_COMPLEXITY_3 + custom_materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT / 5) /obj/item/food/cake/vanilla_cake name = "vanilla cake" diff --git a/code/game/objects/items/food/cheese.dm b/code/game/objects/items/food/cheese.dm index 07443fff98ba..6604040af22a 100644 --- a/code/game/objects/items/food/cheese.dm +++ b/code/game/objects/items/food/cheese.dm @@ -36,6 +36,10 @@ rat_heal = 10 crafting_complexity = FOOD_COMPLEXITY_1 +/obj/item/food/cheese/wedge/Initialize(mapload) + . = ..() + AddComponent(/datum/component/food_storage) + /obj/item/food/cheese/wheel name = "cheese wheel" desc = "A big wheel of delicious Cheddar." @@ -137,6 +141,10 @@ rat_heal = 10 crafting_complexity = FOOD_COMPLEXITY_3 +/obj/item/food/cheese/firm_cheese_slice/Initialize(mapload) + . = ..() + AddComponent(/datum/component/food_storage) + /obj/item/food/cheese/firm_cheese_slice/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/grilled_cheese, rand(25 SECONDS, 35 SECONDS), TRUE, TRUE) diff --git a/code/game/objects/items/food/donkpocket.dm b/code/game/objects/items/food/donkpocket.dm index c2047e17d965..a75f71a0647c 100644 --- a/code/game/objects/items/food/donkpocket.dm +++ b/code/game/objects/items/food/donkpocket.dm @@ -16,20 +16,20 @@ /// What type of donk pocket we're warmed into via baking or microwaving. var/warm_type = /obj/item/food/donkpocket/warm + /// Whether baking/microwaving it yields a positive result + var/positive_result = TRUE /// The lower end for how long it takes to bake var/baking_time_short = 25 SECONDS /// The upper end for how long it takes to bake var/baking_time_long = 30 SECONDS - /// The reagents added when microwaved. Needed since microwaving ignores food_reagents - var/static/list/added_reagents = list(/datum/reagent/medicine/omnizine = 6) - /// The reagents that most child types add when microwaved. Needed because you can't override static lists. - var/static/list/child_added_reagents = list(/datum/reagent/medicine/omnizine = 2) + /// The amount of omnizine added when it's cooked. + var/omnizine_to_add = 6 /obj/item/food/donkpocket/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, added_reagents) + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), positive_result, TRUE, list(/datum/reagent/medicine/omnizine = omnizine_to_add)) /obj/item/food/donkpocket/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, added_reagents) + AddElement(/datum/element/microwavable, warm_type, string_assoc_list(list(/datum/reagent/medicine/omnizine = omnizine_to_add)), !positive_result) /obj/item/food/donkpocket/warm name = "warm Donk-pocket" @@ -44,8 +44,10 @@ // Warmed donk pockets will burn if you leave them in the oven or microwave. warm_type = /obj/item/food/badrecipe + positive_result = FALSE baking_time_short = 10 SECONDS baking_time_long = 15 SECONDS + omnizine_to_add = 0 /obj/item/food/donkpocket/homemade foodtypes = MEAT|GRAIN @@ -71,12 +73,7 @@ foodtypes = GRAIN|VEGETABLES crafting_complexity = FOOD_COMPLEXITY_2 warm_type = /obj/item/food/donkpocket/warm/dank - -/obj/item/food/donkpocket/dank/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, child_added_reagents) - -/obj/item/food/donkpocket/dank/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, child_added_reagents) + omnizine_to_add = 2 /obj/item/food/donkpocket/warm/dank name = "warm Dank-pocket" @@ -104,12 +101,7 @@ tastes = list("umami" = 2, "dough" = 2, "spice" = 1) foodtypes = VEGETABLES|GRAIN warm_type = /obj/item/food/donkpocket/warm/spicy - -/obj/item/food/donkpocket/spicy/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, child_added_reagents) - -/obj/item/food/donkpocket/spicy/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, child_added_reagents) + omnizine_to_add = 2 /obj/item/food/donkpocket/warm/spicy name = "warm Spicy-pocket" @@ -147,12 +139,7 @@ tastes = list("umami" = 2, "dough" = 2, "soy sauce" = 2) foodtypes = GRAIN warm_type = /obj/item/food/donkpocket/warm/teriyaki - -/obj/item/food/donkpocket/teriyaki/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, child_added_reagents) - -/obj/item/food/donkpocket/teriyaki/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, child_added_reagents) + omnizine_to_add = 2 /obj/item/food/donkpocket/warm/teriyaki name = "warm Teriyaki-pocket" @@ -190,12 +177,7 @@ tastes = list("tomato" = 2, "dough" = 2, "cheese"= 2) foodtypes = VEGETABLES|GRAIN|DAIRY warm_type = /obj/item/food/donkpocket/warm/pizza - -/obj/item/food/donkpocket/pizza/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, child_added_reagents) - -/obj/item/food/donkpocket/pizza/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, child_added_reagents) + omnizine_to_add = 2 /obj/item/food/donkpocket/warm/pizza name = "warm Pizza-pocket" @@ -229,10 +211,10 @@ custom_materials = null /obj/item/food/donkpocket/honk/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, honk_added_reagents) + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), positive_result, TRUE, honk_added_reagents) /obj/item/food/donkpocket/honk/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, honk_added_reagents) + AddElement(/datum/element/microwavable, warm_type, honk_added_reagents, positive_result) /obj/item/food/donkpocket/warm/honk name = "warm Honk-pocket" @@ -261,12 +243,7 @@ foodtypes = GRAIN|FRUIT|SUGAR warm_type = /obj/item/food/donkpocket/warm/berry custom_materials = null - -/obj/item/food/donkpocket/berry/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, child_added_reagents) - -/obj/item/food/donkpocket/berry/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, child_added_reagents) + omnizine_to_add = 2 /obj/item/food/donkpocket/warm/berry name = "warm Berry-pocket" @@ -301,10 +278,10 @@ ) /obj/item/food/donkpocket/gondola/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, gondola_added_reagents) + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), positive_result, TRUE, gondola_added_reagents) /obj/item/food/donkpocket/gondola/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, gondola_added_reagents) + AddElement(/datum/element/microwavable, warm_type, gondola_added_reagents, positive_result) /obj/item/food/donkpocket/warm/gondola name = "warm Gondola-pocket" @@ -341,10 +318,10 @@ custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * 2) /obj/item/food/donkpocket/deluxe/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, deluxe_added_reagents) + AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), positive_result, TRUE, deluxe_added_reagents) /obj/item/food/donkpocket/deluxe/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents) + AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents, positive_result) /obj/item/food/donkpocket/warm/deluxe name = "warm Donk-pocket Deluxe" @@ -375,12 +352,6 @@ warm_type = /obj/item/food/donkpocket/warm/deluxe/nocarb custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * 4) -/obj/item/food/donkpocket/deluxe/meat/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, deluxe_added_reagents) - -/obj/item/food/donkpocket/deluxe/meat/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents) - /obj/item/food/donkpocket/warm/deluxe/nocarb name = "warm Meat-pocket" desc = "The warm food of choice for the carnivorous traitor." @@ -409,12 +380,6 @@ warm_type = /obj/item/food/donkpocket/warm/deluxe/vegan custom_materials = null -/obj/item/food/donkpocket/deluxe/vegan/make_bakeable() - AddComponent(/datum/component/bakeable, warm_type, rand(baking_time_short, baking_time_long), TRUE, TRUE, deluxe_added_reagents) - -/obj/item/food/donkpocket/deluxe/vegan/make_microwaveable() - AddElement(/datum/element/microwavable, warm_type, deluxe_added_reagents) - /obj/item/food/donkpocket/warm/deluxe/vegan name = "warm Donk-roll" desc = "The classic station snack, now with rice! It's been fried to perfection." diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm index 8ef8ff8f29ff..8faea08ad94f 100644 --- a/code/game/objects/items/food/egg.dm +++ b/code/game/objects/items/food/egg.dm @@ -134,7 +134,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) if(LAZYACCESS(modifiers, ICON_Y)) broken_egg.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(ICON_SIZE_Y/2), ICON_SIZE_Y/2) playsound(user, 'sound/items/sheath.ogg', 40, TRUE) - reagents.copy_to(broken_egg, reagents.total_volume) + reagents.trans_to(broken_egg, reagents.total_volume, copy_only = TRUE) hit_griddle.AddToGrill(broken_egg, user) interacting_with.balloon_alert(user, "cracks [src] open") @@ -383,7 +383,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) if(LAZYACCESS(modifiers, ICON_Y)) broken_egg.pixel_y = clamp(text2num(LAZYACCESS(modifiers, ICON_Y)) - 16, -(ICON_SIZE_Y/2), ICON_SIZE_Y/2) playsound(user, 'sound/items/sheath.ogg', 40, TRUE) - reagents.copy_to(broken_egg, reagents.total_volume) + reagents.trans_to(broken_egg, reagents.total_volume, copy_only = TRUE) hit_griddle.AddToGrill(broken_egg, user) interacting_with.balloon_alert(user, "cracks [src] open") diff --git a/code/game/objects/items/food/lizard.dm b/code/game/objects/items/food/lizard.dm index 5c66986a74ff..ea614d0c7430 100644 --- a/code/game/objects/items/food/lizard.dm +++ b/code/game/objects/items/food/lizard.dm @@ -88,6 +88,7 @@ foodtypes = MEAT | GORE w_class = WEIGHT_CLASS_TINY crafting_complexity = FOOD_COMPLEXITY_2 + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 5) /obj/item/food/shredded_lungs name = "crispy shredded lung stirfry" @@ -266,6 +267,7 @@ foodtypes = MEAT | VEGETABLES | NUTS | GORE w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 5) /obj/item/food/kebab/picoss_skewers name = "picoss skewer" @@ -711,7 +713,7 @@ food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 - custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * 2.25) /obj/item/food/honey_roll name = "honey sweetroll" diff --git a/code/game/objects/items/food/martian.dm b/code/game/objects/items/food/martian.dm index be233b18a8ad..b83e28ec0767 100644 --- a/code/game/objects/items/food/martian.dm +++ b/code/game/objects/items/food/martian.dm @@ -1328,6 +1328,7 @@ foodtypes = MEAT w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT) // Ethereal-suitable cross-culture food /* Ethereals are, as part of the uplifting process, considered as citizens of the Terran Federation. diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index 34685f5373f1..42d7b4dfb62c 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -651,6 +651,7 @@ food_flags = FOOD_FINGER_FOOD w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_2 + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 6) /obj/item/food/rawkhinkali name = "raw khinkali" @@ -688,6 +689,7 @@ foodtypes = MEAT|GRAIN|VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_3 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT) /obj/item/food/meatbun name = "meat bun" @@ -1036,9 +1038,10 @@ w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_5 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * (4/3)) /obj/item/food/korta_wellington - name = "Kotra wellington" + name = "Korta wellington" desc = "A luxurious log of beef, covered in a fine mushroom duxelle and pancetta ham, then bound in korta pastry." icon = 'icons/obj/food/meat.dmi' icon_state = "korta_wellington" @@ -1070,6 +1073,7 @@ w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_5 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * (4/3)) /obj/item/food/roast_dinner name = "roast dinner" @@ -1104,6 +1108,7 @@ w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_5 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * 2) /obj/item/food/roast_dinner_lizzy name = "grain-free roast dinner" @@ -1138,6 +1143,7 @@ w_class = WEIGHT_CLASS_SMALL venue_value = FOOD_PRICE_NORMAL crafting_complexity = FOOD_COMPLEXITY_5 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT * 2) /obj/item/food/roast_dinner_tofu name = "tofu roast dinner" @@ -1240,6 +1246,7 @@ foodtypes = MEAT | VEGETABLES w_class = WEIGHT_CLASS_SMALL crafting_complexity = FOOD_COMPLEXITY_4 + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 2) /obj/item/food/sweet_and_sour_meatballs name = "sweet and sour meatballs" diff --git a/code/game/objects/items/food/meatslab.dm b/code/game/objects/items/food/meatslab.dm index 49637d98984b..e178ee467797 100644 --- a/code/game/objects/items/food/meatslab.dm +++ b/code/game/objects/items/food/meatslab.dm @@ -615,6 +615,10 @@ foodtypes = MEAT | RAW var/meat_type = "meat" +/obj/item/food/meat/rawcutlet/Initialize(mapload) + . = ..() + AddComponent(/datum/component/food_storage) + /obj/item/food/meat/rawcutlet/make_grillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/cutlet/plain, rand(35 SECONDS, 50 SECONDS), TRUE, TRUE) @@ -731,6 +735,10 @@ . = ..() RegisterSignal(src, COMSIG_ITEM_MICROWAVE_COOKED, PROC_REF(on_microwave_cooked)) +/obj/item/food/meat/cutlet/Initialize(mapload) + . = ..() + AddComponent(/datum/component/food_storage) + ///This proc handles setting up the correct meat name for the cutlet, this should definitely be changed with the food rework. /obj/item/food/meat/cutlet/proc/on_microwave_cooked(datum/source, atom/source_item, cooking_efficiency) SIGNAL_HANDLER diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index 4e5bee86fe38..6d957f4c5f2a 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -194,9 +194,28 @@ /obj/item/food/badrecipe/Initialize(mapload) . = ..() RegisterSignal(src, COMSIG_ITEM_GRILL_PROCESS, PROC_REF(OnGrill)) + RegisterSignals(src, list(COMSIG_ITEM_GRILLED_RESULT, COMSIG_ITEM_BAKED_RESULT, COMSIG_ITEM_MICROWAVE_COOKED_FROM), PROC_REF(convert_to_bad_food)) if(stink_particles) add_shared_particles(stink_particles) +///Prevents grilling burnt shit from well, burning. +/obj/item/food/badrecipe/proc/OnGrill() + SIGNAL_HANDLER + return COMPONENT_HANDLED_GRILLING + +/** + * The bad food reagent is cleared when cooked rather than just spawned and the reagents of the item this is from are transferred to this instead, + * So we want to convert most of the consumable reagents into bad food, which is what makes the burned mess a bad thing to eat, taste aside. + */ +/obj/item/food/badrecipe/proc/convert_to_bad_food(atom/source) + SIGNAL_HANDLER + var/bad_food_amount = 0 + for(var/datum/reagent/consumable/food_reagent in reagents.reagent_list) + var/amount_to_remove = food_reagent.volume * rand(6, 8) * 0.1 //around 60% to 80% of the volume is to be converted. + reagents.remove_reagent(food_reagent.type, amount_to_remove, safety = FALSE) + bad_food_amount += amount_to_remove + reagents.add_reagent(/datum/reagent/toxin/bad_food, bad_food_amount, reagtemp = reagents.chem_temp) + /obj/item/food/badrecipe/Destroy(force) if (stink_particles) remove_shared_particles(stink_particles) @@ -227,11 +246,6 @@ . = ..() AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOLD, CELL_VIRUS_TABLE_GENERIC, rand(2, 4), 25) -///Prevents grilling burnt shit from well, burning. -/obj/item/food/badrecipe/proc/OnGrill() - SIGNAL_HANDLER - return COMPONENT_HANDLED_GRILLING - /obj/item/food/spidereggs name = "spider eggs" desc = "A cluster of juicy spider eggs. A great side dish for when you care not for your health." @@ -705,6 +719,7 @@ tastes = list("cooked eggplant" = 5, "potato" = 1, "baked veggies" = 2, "meat" = 4, "bechamel sauce" = 3) foodtypes = MEAT|VEGETABLES|GRAIN|DAIRY crafting_complexity = FOOD_COMPLEXITY_4 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT / 4) /obj/item/food/candied_pineapple name = "candied pineapple" diff --git a/code/game/objects/items/food/monkeycube.dm b/code/game/objects/items/food/monkeycube.dm index 1d567f504380..bfb9ccc0f4e0 100644 --- a/code/game/objects/items/food/monkeycube.dm +++ b/code/game/objects/items/food/monkeycube.dm @@ -124,3 +124,37 @@ ) tastes = list("the loss of 5 TC" = 1, "eaten friend" = 1) spawned_mob = /mob/living/basic/pony/dangerous + +/obj/item/food/monkeycube/random + name = "monster cube" + desc = "A cube that, when water is added, creates a random creature. Who knows what's inside?" + food_reagents = list( + /datum/reagent/toxin = 15, + /datum/reagent/medicine/strange_reagent = 1, + ) + +/obj/item/food/monkeycube/random/Initialize(mapload) + . = ..() + spawned_mob = pick_weight(list( + /mob/living/basic/bear = 4, + /mob/living/basic/bear/snow = 1, + /mob/living/basic/blankbody = 2, + /mob/living/basic/blob_minion/blobbernaut = 2, + /mob/living/basic/blob_minion/spore = 2, + /mob/living/basic/carp = 4, + /mob/living/basic/carp/mega = 1, + /mob/living/basic/creature = 2, + /mob/living/basic/eyeball = 1, + /mob/living/basic/gorilla = 5, + /mob/living/basic/migo = 2, + /mob/living/basic/mining/basilisk = 5, + /mob/living/basic/mining/lobstrosity = 1, + /mob/living/basic/mining/lobstrosity/lava = 4, + /mob/living/basic/mining/wolf = 4, + /mob/living/basic/pet/cat/feral = 1, + /mob/living/basic/spider/giant = 5, + /mob/living/basic/spider/giant/hunter = 1, + /mob/living/basic/spider/giant/tank = 1, + /mob/living/basic/spider/giant/tarantula = 1, + /mob/living/basic/spider/giant/viper = 1, + )) diff --git a/code/game/objects/items/food/pie.dm b/code/game/objects/items/food/pie.dm index f0131dc9a277..e7535c7ee05c 100644 --- a/code/game/objects/items/food/pie.dm +++ b/code/game/objects/items/food/pie.dm @@ -137,6 +137,7 @@ tastes = list("pie" = 1, "meat" = 1) foodtypes = GRAIN|DAIRY|MEAT crafting_complexity = FOOD_COMPLEXITY_3 + custom_materials = list(/datum/material/meat = MEATSLAB_MATERIAL_AMOUNT / 5) /obj/item/food/pie/tofupie name = "tofu-pie" @@ -221,6 +222,7 @@ tastes = list("pie" = 1, "acid" = 1, "meat" = 1) foodtypes = GRAIN|DAIRY|MEAT crafting_complexity = FOOD_COMPLEXITY_3 + custom_materials = list(/datum/material/meat = MEATDISH_MATERIAL_AMOUNT / 5) /obj/item/food/pie/applepie name = "apple pie" @@ -481,6 +483,7 @@ tastes = list("juicy meat" = 1, "mashed potatoes" = 1, "baked veggies" = 1) foodtypes = MEAT | DAIRY | VEGETABLES crafting_complexity = FOOD_COMPLEXITY_5 + custom_materials = list(/datum/material/meat = SHEET_MATERIAL_AMOUNT) /obj/item/food/pie/asdfpie name = "pie-flavored pie" diff --git a/code/game/objects/items/food/spaghetti.dm b/code/game/objects/items/food/spaghetti.dm index 30e2a05a858b..8a1e6e363c3a 100644 --- a/code/game/objects/items/food/spaghetti.dm +++ b/code/game/objects/items/food/spaghetti.dm @@ -25,7 +25,7 @@ tastes = list("pasta" = 1) crafting_complexity = FOOD_COMPLEXITY_1 -/obj/item/food/spaghetti/make_bakeable() +/obj/item/food/spaghetti/raw/make_bakeable() AddComponent(/datum/component/bakeable, /obj/item/food/spaghetti/boiledspaghetti, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE) /obj/item/food/spaghetti/raw/make_microwaveable() diff --git a/code/game/objects/items/granters/martial_arts/spider_bite.dm b/code/game/objects/items/granters/martial_arts/spider_bite.dm new file mode 100644 index 000000000000..731279f47509 --- /dev/null +++ b/code/game/objects/items/granters/martial_arts/spider_bite.dm @@ -0,0 +1,36 @@ +/obj/item/book/granter/martial/spider_bite + martial = /datum/martial_art/spiders_bite + + name = "mysterious scroll" + martial_name = "spider's bite" + desc = "A scroll filled with strange markings. It seems to be drawings of some sort of martial art." + greet = span_sciradio("You have learned the Spider Clan's historic technique, The Spider's Bite. \ + You are now able to kick standing targets who are staggered, potentially disarming them of their weapons. \ + You can also tackle targets with great effectiveness, and have more solid grabs.") + icon = 'icons/obj/scrolls.dmi' + icon_state = "sleepingcarp" + worn_icon_state = "scroll" + remarks = list( + "Float like spider silk, sting like a spider's bite.", + "I must be one with the spider.", + "I've never seen this language in my life. At least it has pictures.", + "The Flow of Gravity technique... can I harness the power of gravity?", + "The Jump and Climb technique... is my body that flexible?", + "The Many Legged Spider technique... are my kicks really that powerful?", + "The Wrap in Web technique... I just need to wrap my targets in my arms?", + ) + +/obj/item/book/granter/martial/spider_bite/on_reading_finished(mob/living/carbon/user) + . = ..() + update_appearance() + +/obj/item/book/granter/martial/spider_bite/update_appearance(updates) + . = ..() + if(uses <= 0) + name = "empty scroll" + desc = "It's completely blank." + icon_state = "blankscroll" + else + name = initial(name) + desc = initial(desc) + icon_state = initial(icon_state) diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 586df9369aaf..98b7edf19ae2 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -586,17 +586,17 @@ beakers += beaker_two /obj/item/grenade/chem_grenade/glitter - name = "generic glitter grenade" - desc = "You shouldn't see this description." + name = "white glitter grenade" + desc = "For that somnolent glittery look." stage = GRENADE_READY - var/glitter_type = /datum/reagent/glitter + var/glitter_colors = list(COLOR_WHITE = 100) /obj/item/grenade/chem_grenade/glitter/Initialize(mapload) . = ..() var/obj/item/reagent_containers/cup/beaker/beaker_one = new(src) var/obj/item/reagent_containers/cup/beaker/beaker_two = new(src) - beaker_one.reagents.add_reagent(glitter_type, 25) + beaker_one.reagents.add_reagent(/datum/reagent/glitter, 25, data = list("colors" = glitter_colors)) beaker_one.reagents.add_reagent(/datum/reagent/potassium, 25) beaker_two.reagents.add_reagent(/datum/reagent/phosphorus, 25) beaker_two.reagents.add_reagent(/datum/reagent/consumable/sugar, 25) @@ -607,17 +607,12 @@ /obj/item/grenade/chem_grenade/glitter/pink name = "pink glitter bomb" desc = "For that HOT glittery look." - glitter_type = /datum/reagent/glitter/pink + glitter_colors = list("#ff8080" = 100) /obj/item/grenade/chem_grenade/glitter/blue name = "blue glitter bomb" desc = "For that COOL glittery look." - glitter_type = /datum/reagent/glitter/blue - -/obj/item/grenade/chem_grenade/glitter/white - name = "white glitter bomb" - desc = "For that somnolent glittery look." - glitter_type = /datum/reagent/glitter/white + glitter_colors = list("#4040ff" = 100) /obj/item/grenade/chem_grenade/clf3 name = "clf3 grenade" diff --git a/code/game/objects/items/grenades/flashbang.dm b/code/game/objects/items/grenades/flashbang.dm index 2bc9401c7745..41d370d7bdd8 100644 --- a/code/game/objects/items/grenades/flashbang.dm +++ b/code/game/objects/items/grenades/flashbang.dm @@ -5,7 +5,12 @@ lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' possible_fuse_time = list("3", "4", "5") - var/flashbang_range = 7 //how many tiles away the mob will be stunned. + //how many tiles away the mob will be affected by the flashbang. + var/flashbang_range = 7 + //The devision for the sweetspot culations. if set to 1, the sweetspot is ostensibly the flashbang range. + var/sweetspot_divider = 3 + //The light emitted by this flashbang to indicate the sweetspot. + var/flashbang_light = LIGHT_COLOR_INTENSE_RED /obj/item/grenade/flashbang/apply_grenade_fantasy_bonuses(quality) flashbang_range = modify_fantasy_variable("flashbang_range", flashbang_range, quality) @@ -13,6 +18,14 @@ /obj/item/grenade/flashbang/remove_grenade_fantasy_bonuses(quality) flashbang_range = reset_fantasy_variable("flashbang_range", flashbang_range) +/obj/item/grenade/flashbang/arm_grenade(mob/user, delayoverride, msg = TRUE, volume = 60) + . = ..() + if(!.) + return + + var/sweetspot_range = clamp(CEILING(flashbang_range/sweetspot_divider, 1), 0, flashbang_range) + set_light(sweetspot_range, sweetspot_range, flashbang_light) + /obj/item/grenade/flashbang/detonate(mob/living/lanced_by) . = ..() if(!.) @@ -34,22 +47,38 @@ return living_mob.show_message(span_warning("BANG"), MSG_AUDIBLE) var/distance = max(0, get_dist(get_turf(src), turf)) + var/sweetspot_range = clamp(CEILING(flashbang_range/sweetspot_divider, 1), 0, flashbang_range) //Flash - if(living_mob.flash_act(affect_silicon = 1)) - living_mob.Paralyze(max(20/max(1, distance), 5)) - living_mob.Knockdown(max(200/max(1, distance), 60)) + var/attempt_flash = living_mob.flash_act(affect_silicon = 1) + if(attempt_flash == FLASH_COMPLETED) + if(distance <= sweetspot_range || issilicon(living_mob)) + living_mob.Paralyze(max(20/max(1, distance), 5)) + living_mob.Knockdown(max(200/max(1, distance), 60)) + else + living_mob.adjust_dizzy_up_to(max(200/max(1, distance), 5), 20 SECONDS) + living_mob.dropItemToGround(living_mob.get_active_held_item()) + living_mob.dropItemToGround(living_mob.get_inactive_held_item()) //Bang if(!distance || loc == living_mob || loc == living_mob.loc) - living_mob.Paralyze(20) - living_mob.Knockdown(200) - living_mob.soundbang_act(1, 200, 10, 15) - else - if(distance <= 1) // Adds more stun as to not prime n' pull (#45381) - living_mob.Paralyze(5) - living_mob.Knockdown(30) + living_mob.soundbang_act(2, 20 SECONDS, 10, 15) + return + + if(distance <= 1) // Adds more stun as to not prime n' pull (#45381) + living_mob.soundbang_act(2, 3 SECONDS, 5) + return + + if(distance <= sweetspot_range) living_mob.soundbang_act(1, max(200 / max(1, distance), 60), rand(0, 5)) + return + + if(!living_mob.soundbang_act(1, 0, rand(0, 2))) + return + + living_mob.adjust_staggered_up_to(max(200/max(1, distance), 5), 10 SECONDS) + living_mob.dropItemToGround(living_mob.get_active_held_item()) + living_mob.dropItemToGround(living_mob.get_inactive_held_item()) /obj/item/grenade/stingbang name = "stingbang" diff --git a/code/game/objects/items/his_grace.dm b/code/game/objects/items/his_grace.dm index d77de96c3dad..367aba1e8643 100644 --- a/code/game/objects/items/his_grace.dm +++ b/code/game/objects/items/his_grace.dm @@ -20,6 +20,7 @@ hitsound = 'sound/items/weapons/smash.ogg' drop_sound = 'sound/items/handling/toolbox/toolbox_drop.ogg' pickup_sound = 'sound/items/handling/toolbox/toolbox_pickup.ogg' + gender = MALE var/awakened = FALSE var/bloodthirst = HIS_GRACE_SATIATED var/prev_bloodthirst = HIS_GRACE_SATIATED @@ -28,6 +29,35 @@ var/victims_needed = 25 var/ascend_bonus = 15 +/obj/item/his_grace/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool,/obj/item/slimepotion/genderchange)) + var/turf/T = get_turf(src) + var/mob/living/holder + if(istype(loc, /mob/living)) + holder = loc + if(gender == MALE) + gender = FEMALE + if(awakened) + name = "Her Grace" + else if (!ascended) + desc = "A toolbox painted bright pink. Looking at it makes you feel uneasy." + icon_state = "pink" + inhand_icon_state = "toolbox_pink" + T.visible_message(span_boldwarning("[src] starts to look a little... girly?")) + else if(gender == FEMALE) + gender = MALE + if(awakened) + name = "His Grace" + else if (!ascended) + desc = "A toolbox painted bright green. Looking at it makes you feel uneasy." + icon_state = "green" + inhand_icon_state = "toolbox_green" + T.visible_message(span_boldwarning("[src] begins to look a little more... manly?")) + if(holder) + holder.remove_status_effect(/datum/status_effect/his_grace) + qdel(tool) + return ITEM_INTERACT_SUCCESS + return NONE /obj/item/his_grace/Initialize(mapload) . = ..() START_PROCESSING(SSprocessing, src) @@ -42,8 +72,15 @@ return ..() /obj/item/his_grace/update_icon_state() - icon_state = ascended ? "gold" : "green" - inhand_icon_state = ascended ? "toolbox_gold" : "toolbox_green" + if(ascended) + icon_state = "gold" + inhand_icon_state = "toolbox_gold" + else if(gender == MALE) + icon_state = "green" + inhand_icon_state = "toolbox_green" + else if(gender == FEMALE) + icon_state = "pink" + inhand_icon_state = "toolbox_pink" return ..() /obj/item/his_grace/update_overlays() @@ -61,6 +98,15 @@ /obj/item/his_grace/attack(mob/living/M, mob/user) if(awakened && M.stat) + if(gender == FEMALE) + var/dx = M.x - user.x + var/dy = M.y - user.y + if(dx && dy) + var/obj/item/reagent_containers/spray/chemsprayer/party/party_popper = new /obj/item/reagent_containers/spray/chemsprayer/party(get_turf(user)) + dx = dx / abs(dx) + dy = dy / abs(dy) + party_popper.spray(locate(M.x + dx * 2, M.y + dy * 2, M.z), user) + qdel(party_popper) consume(M) else ..() @@ -114,7 +160,7 @@ master.adjustBruteLoss(master.maxHealth) playsound(master, 'sound/effects/splat.ogg', 100, FALSE) else - master.apply_status_effect(/datum/status_effect/his_grace) + master.apply_status_effect(/datum/status_effect/his_grace,gender) return forceMove(get_turf(src)) //no you can't put His Grace in a locker you just have to deal with Him if(bloodthirst < HIS_GRACE_CONSUME_OWNER) @@ -144,16 +190,15 @@ if(awakened) return awakened = TRUE - user.visible_message(span_boldwarning("[src] begins to rattle. He thirsts."), span_his_grace("You flick [src]'s latch up. You hope this is a good idea.")) - name = "His Grace" + user.visible_message(span_boldwarning("[src] begins to rattle. [p_They()] thirsts."), span_his_grace("You flick [src]'s latch up. You hope this is a good idea.")) + name = p_Their() + " Grace" desc = "A bloodthirsty artifact created by a profane rite." - gender = MALE adjust_bloodthirst(1) force_bonus = HIS_GRACE_FORCE_BONUS * LAZYLEN(contents) notify_ghosts( - "[user.real_name] has awoken His Grace!", + "[user.real_name] has awoken [src]!", source = src, - header = "All Hail His Grace!", + header = "All Hail [src]!", ) playsound(user, 'sound/effects/pope_entry.ogg', 100) update_appearance() @@ -171,12 +216,14 @@ if(!awakened || ascended) return var/turf/T = get_turf(src) - T.visible_message(span_boldwarning("[src] slowly stops rattling and falls still, His latch snapping shut.")) + T.visible_message(span_boldwarning("[src] slowly stops rattling and falls still, [p_Their()] latch snapping shut.")) playsound(loc, 'sound/items/weapons/batonextend.ogg', 100, TRUE) name = initial(name) - desc = initial(desc) + if(gender == MALE) + desc = "A toolbox painted bright green. Looking at it makes you feel uneasy." + else if (gender == FEMALE) + desc = "A toolbox painted bright pink. Looking at it makes you feel uneasy." animate(src, transform=matrix()) - gender = initial(gender) force = initial(force) force_bonus = initial(force_bonus) awakened = FALSE @@ -225,21 +272,21 @@ if(HIS_GRACE_STARVING to HIS_GRACE_CONSUME_OWNER) ADD_TRAIT(src, TRAIT_NODROP, HIS_GRACE_TRAIT) if(HIS_GRACE_STARVING > prev_bloodthirst) - master.visible_message(span_boldwarning("[src] is starving!"), "[src]'s bloodlust overcomes you. [src] must be fed, or you will become His meal.\ - [force_bonus < 15 ? " And still, His power grows.":""]") + master.visible_message(span_boldwarning("[src] is starving!"), "[src]'s bloodlust overcomes you. [src] must be fed, or you will become [p_Their()] meal.\ + [force_bonus < 15 ? " And still, [p_Their()] power grows.":""]") force_bonus = max(force_bonus, 15) if(HIS_GRACE_FAMISHED to HIS_GRACE_STARVING) ADD_TRAIT(src, TRAIT_NODROP, HIS_GRACE_TRAIT) if(HIS_GRACE_FAMISHED > prev_bloodthirst) master.visible_message(span_warning("[src] is very hungry!"), "Spines sink into your hand. [src] must feed immediately.\ - [force_bonus < 10 ? " His power grows.":""]") + [force_bonus < 10 ? " [p_Their()] power grows.":""]") force_bonus = max(force_bonus, 10) if(prev_bloodthirst >= HIS_GRACE_STARVING) master.visible_message(span_warning("[src] is now only very hungry!"), "Your bloodlust recedes.") if(HIS_GRACE_HUNGRY to HIS_GRACE_FAMISHED) if(HIS_GRACE_HUNGRY > prev_bloodthirst) master.visible_message(span_warning("[src] is getting hungry."), "You feel [src]'s hunger within you.\ - [force_bonus < 5 ? " His power grows.":""]") + [force_bonus < 5 ? " [p_Their()] power grows.":""]") force_bonus = max(force_bonus, 5) if(prev_bloodthirst >= HIS_GRACE_FAMISHED) master.visible_message(span_warning("[src] is now only somewhat hungry."), span_his_grace("[src]'s hunger recedes a little...")) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index b23d1f08c8b4..1e74d8b94b8d 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -27,7 +27,7 @@ /// Hitsound played attacking while active. var/active_hitsound = 'sound/items/weapons/blade1.ogg' /// Weight class while active. - var/active_w_class = WEIGHT_CLASS_BULKY + var/active_w_class = WEIGHT_CLASS_HUGE /// The heat given off when active. var/active_heat = 3500 @@ -196,12 +196,15 @@ embed_type = /datum/embedding/esword var/list/alt_continuous = list("stabs", "pierces", "impales") var/list/alt_simple = list("stab", "pierce", "impale") + var/alt_sharpness = SHARP_POINTY + var/alt_force_mod = -10 + var/alt_hitsound = null /obj/item/melee/energy/sword/Initialize(mapload) . = ..() alt_continuous = string_list(alt_continuous) alt_simple = string_list(alt_simple) - AddComponent(/datum/component/alternative_sharpness, SHARP_POINTY, alt_continuous, alt_simple, -10, TRAIT_TRANSFORM_ACTIVE) + AddComponent(/datum/component/alternative_sharpness, alt_sharpness, alt_continuous, alt_simple, alt_force_mod, TRAIT_TRANSFORM_ACTIVE, alt_hitsound) /obj/item/melee/energy/sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) @@ -374,3 +377,131 @@ inhand_icon_state = "lightblade" base_icon_state = "lightblade" icon_angle = 0 + +/obj/item/melee/energy/sword/surplus + name = "\improper Type I 'Iaito' energy sword" + desc = "Oversized, overengineered, and mass-produced. The two blades help make up for the poor cutting plane the emitter generates. Hopefully. \ + Supposedly, this version of the energy sword was a Waffle Corp prototype that was first trialed in a variety of armed conflicts around the interstellar \ + frontier. The success rate, and survival of its users, were abysmally low. To make matters worse, they had made so many of these swords (accidentally) that \ + it would cost the company more disposing of them than trying to offload them to raise a quick buck. Thus, the 'Iaito' was 'born'. Often found in the hands of \ + grunts, mooks, goons, criminals, wannabe assassins or lunatics. You may or may not fit into one of these categories if you are genuinely attempting to kill someone\ + with this sword." + icon_state = "surplus_e_sword" + inhand_icon_state = "surplus_e_sword" + base_icon_state = "surplus_e_sword" + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 + active_force = 15 // This force is augmented by the state of our target. + active_throwforce = 15 + alt_continuous = list("whacks", "smacks", "bashes") + alt_simple = list("whack", "smack", "bash") + alt_sharpness = NONE + alt_force_mod = -12 + alt_hitsound = SFX_SWING_HIT + /// Battery used to determine how many hits we can make before our sword switches off and can't be turned back on without a do_after. + var/charge = 20 + /// Our battery maximum. + var/max_charge = 20 + /// The amount of time it takes to recharge the sword. + var/charge_time = 5 SECONDS + /// The cooldown between instances of vigorous jiggling to get your shitty sword back on. + COOLDOWN_DECLARE(jiggle_cooldown) + +/obj/item/melee/energy/sword/surplus/Initialize(mapload) + . = ..() + RegisterSignal(src, COMSIG_TRANSFORMING_PRE_TRANSFORM, PROC_REF(check_power)) + +/obj/item/melee/energy/sword/surplus/examine(mob/user) + . = ..() + if(charge) + . += span_notice("[src] has [charge] hits left before it must be recharged.") + else + . += span_warning("[src] needs to be recharged.") + + . += span_info("You get the sense that this weapon isn't very effective unless you hit someone while they are exposed in some way, like attacking from behind or while they're staggered.") + +/obj/item/melee/energy/sword/surplus/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + + if(charge < max_charge) + context[SCREENTIP_CONTEXT_RMB] = "Recharge" + return CONTEXTUAL_SCREENTIP_SET + + return NONE + +// A weapon best employed by someone in a desperate struggle +/obj/item/melee/energy/sword/surplus/pre_attack(atom/target, mob/living/user, list/modifiers, list/attack_modifiers) + if(!isliving(target)) + return ..() + + if(sharpness == NONE) + return ..() + + var/mob/living/living_target = target + var/vulnerable_target = FALSE + + if(living_target.stat == DEAD) // I know it doesn't make a lot of sense but it makes it a bit too good for dismemberment otherwise + return ..() + + if(living_target.get_timed_status_effect_duration(/datum/status_effect/staggered)) + vulnerable_target = TRUE + + if(HAS_TRAIT(living_target, TRAIT_INCAPACITATED)) + vulnerable_target = TRUE + + if(check_behind(user, living_target)) + vulnerable_target = TRUE + + if(vulnerable_target) + MODIFY_ATTACK_FORCE_MULTIPLIER(attack_modifiers, 2) + + return ..() + +/obj/item/melee/energy/sword/surplus/attack_self_secondary(mob/user, list/modifiers) + . = ..() + if (.) + return + + if(charge == max_charge) + return SECONDARY_ATTACK_CALL_NORMAL + + if(DOING_INTERACTION(user, DOAFTER_SOURCE_CHARGING_ESWORD)) + user.balloon_alert(user, "busy!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + if(charge <= max_charge) + user.balloon_alert(user, "attempting recharge...") + if(!do_after(user, charge_time, target = src, extra_checks = CALLBACK(src, PROC_REF(do_jiggle), user), interaction_key = DOAFTER_SOURCE_CHARGING_ESWORD, iconstate = "beat_the_heat")) + user.balloon_alert(user, "interrupted!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + charge = max_charge + user.balloon_alert(user, "recharge successful") + playsound(src, 'sound/machines/ping.ogg', 40, TRUE) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/item/melee/energy/sword/surplus/afterattack(atom/target, mob/user, list/modifiers, list/attack_modifiers) + if(!HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE) || charge <= 0) + return + + charge-- + if(charge <= 0) + user.balloon_alert(user, "out of charge!") + attack_self(user) + +/obj/item/melee/energy/sword/surplus/proc/check_power(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + if(charge <= 0 && !HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE)) + balloon_alert(user, "no charge!") + return COMPONENT_BLOCK_TRANSFORM + +/obj/item/melee/energy/sword/surplus/proc/do_jiggle(mob/user) + if(!COOLDOWN_FINISHED(src, jiggle_cooldown)) + return TRUE + + user.Shake(2, 1, 0.3 SECONDS, shake_interval = 0.1 SECONDS) + playsound(src, 'sound/items/baton/telescopic_baton_folded_pickup.ogg', 40, TRUE) + COOLDOWN_START(src, jiggle_cooldown, 1 SECONDS) + return TRUE diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index d09266f394dd..67cb04a614d5 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -4,7 +4,7 @@ /obj/item/melee/chainofcommand name = "chain of command" - desc = "A tool used by great men to placate the frothing masses." + desc = "A tool used by great men to placate the frothing masses. Can be used to hasten allies with right-click." icon = 'icons/obj/weapons/whip.dmi' icon_state = "chain" inhand_icon_state = "chain" @@ -24,11 +24,42 @@ attack_verb_simple = list("flog", "whip", "lash", "discipline") hitsound = 'sound/items/weapons/chainhit.ogg' custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT) + ///Does this chain allow you to speed people up with right click? + var/can_hasten = TRUE /obj/item/melee/chainofcommand/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] is strangling [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return OXYLOSS +/obj/item/melee/chainofcommand/attack_secondary(mob/living/victim, mob/living/user, list/modifiers, list/attack_modifiers) + . = ..() + + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + if(victim == user) + to_chat(user, span_warning("You consider lashing yourself, but hesitate at the thought of how much it would hurt.")) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + playsound(victim, 'sound/items/weapons/whip.ogg', 50, TRUE, -1) + victim.apply_status_effect(/datum/status_effect/speed_boost/commanded) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/datum/status_effect/speed_boost/commanded + id = "commanded" + status_type = STATUS_EFFECT_REFRESH + alert_type = /atom/movable/screen/alert/status_effect/commanded + move_datum = /datum/movespeed_modifier/status_speed_boost/minor + duration = 7 SECONDS + +/datum/movespeed_modifier/status_speed_boost/minor + multiplicative_slowdown = -0.20 + +/atom/movable/screen/alert/status_effect/commanded + name = "Commanded" + desc = "You are inspired to move faster!" + icon_state = "commanded" + /obj/item/melee/synthetic_arm_blade name = "synthetic arm blade" desc = "A grotesque blade that on closer inspection seems to be made out of synthetic flesh, it still feels like it would hurt very badly as a weapon." diff --git a/code/game/objects/items/rcd/RCD.dm b/code/game/objects/items/rcd/RCD.dm index 1bc5df2ed86b..9098908ef23c 100644 --- a/code/game/objects/items/rcd/RCD.dm +++ b/code/game/objects/items/rcd/RCD.dm @@ -236,6 +236,11 @@ * * [mob][user]- the user building this structure */ /obj/item/construction/rcd/proc/rcd_create(atom/target, mob/user) + if(isopenturf(target)) + var/turf/open/open = target + if(!open.CanBuildHere()) + return NONE + var/list/rcd_results = target.rcd_vals(user, src) // does this atom allow for rcd actions? if(!rcd_results) // nope return NONE diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 7d91b02eb4a9..25790cada0ab 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -97,7 +97,7 @@ /datum/crafting_recipe/security_banner name = "Securistan Banner" result = /obj/item/banner/security/mundane - time = 40 + time = 4 SECONDS reqs = list(/obj/item/stack/rods = 2, /obj/item/clothing/under/rank/security/officer = 1) category = CAT_MISC @@ -122,7 +122,7 @@ /datum/crafting_recipe/medical_banner name = "Meditopia Banner" result = /obj/item/banner/medical/mundane - time = 40 + time = 4 SECONDS reqs = list(/obj/item/stack/rods = 2, /obj/item/clothing/under/rank/medical/doctor = 1) category = CAT_MISC @@ -155,7 +155,7 @@ /datum/crafting_recipe/science_banner name = "Sciencia Banner" result = /obj/item/banner/science/mundane - time = 40 + time = 4 SECONDS reqs = list(/obj/item/stack/rods = 2, /obj/item/clothing/under/rank/rnd/scientist = 1) category = CAT_MISC @@ -177,7 +177,7 @@ /datum/crafting_recipe/cargo_banner name = "Cargonia Banner" result = /obj/item/banner/cargo/mundane - time = 40 + time = 4 SECONDS reqs = list(/obj/item/stack/rods = 2, /obj/item/clothing/under/rank/cargo/tech = 1) category = CAT_MISC @@ -202,7 +202,7 @@ /datum/crafting_recipe/engineering_banner name = "Engitopia Banner" result = /obj/item/banner/engineering/mundane - time = 40 + time = 4 SECONDS reqs = list(/obj/item/stack/rods = 2, /obj/item/clothing/under/rank/engineering/engineer = 1) category = CAT_MISC @@ -226,7 +226,7 @@ /datum/crafting_recipe/command_banner name = "Command Banner" result = /obj/item/banner/command/mundane - time = 40 + time = 4 SECONDS reqs = list(/obj/item/stack/rods = 2, /obj/item/clothing/under/rank/captain/parade = 1) category = CAT_MISC diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index a725791e2389..671cad6780f2 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -74,5 +74,5 @@ result = /obj/item/picket_sign reqs = list(/obj/item/stack/rods = 1, /obj/item/stack/sheet/cardboard = 2) - time = 80 + time = 8 SECONDS category = CAT_ENTERTAINMENT diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 9219c1e1f394..1082d682c4ff 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -11,7 +11,7 @@ points = 50 refined_type = /obj/item/stack/sheet/bluespace_crystal grind_results = list(/datum/reagent/bluespace = 20) - scan_state = "rock_BScrystal" + scan_state = "rock_bscrystal" merge_type = /obj/item/stack/ore/bluespace_crystal /// The teleport range when crushed/thrown at someone. var/blink_range = 8 diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 52b7dac9b34e..3ad37af3e0fa 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -273,7 +273,7 @@ var/datum/wound/burn/flesh/any_burn_wound = locate() in affecting.wounds var/can_heal_burn_wounds = (flesh_regeneration || sanitization) && any_burn_wound?.can_be_ointmented_or_meshed() - var/can_suture_bleeding = stop_bleeding && affecting.get_modified_bleed_rate() > 0 + var/can_suture_bleeding = stop_bleeding && affecting.cached_bleed_rate > 0 var/brute_to_heal = heal_brute && affecting.brute_dam > 0 var/burn_to_heal = heal_burn && affecting.burn_dam > 0 @@ -487,7 +487,7 @@ if(heal_end_sound) playsound(patient, heal_end_sound, 75, TRUE, MEDIUM_RANGE_SOUND_EXTRARANGE) - if(limb.get_modified_bleed_rate()) + if(limb.cached_bleed_rate) add_mob_blood(patient) limb.apply_gauze(src) diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index f498959064f0..ee769900a113 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -531,17 +531,26 @@ GLOBAL_LIST_INIT(metalhydrogen_recipes, list( inhand_icon_state = null singular_name = "metal hydrogen sheet" w_class = WEIGHT_CLASS_NORMAL - resistance_flags = FIRE_PROOF | LAVA_PROOF | ACID_PROOF | INDESTRUCTIBLE + resistance_flags = FIRE_PROOF | LAVA_PROOF | ACID_PROOF | BOMB_PROOF gulag_valid = TRUE mats_per_unit = list(/datum/material/metalhydrogen = SHEET_MATERIAL_AMOUNT) material_type = /datum/material/metalhydrogen merge_type = /obj/item/stack/sheet/mineral/metal_hydrogen + armor_type = /datum/armor/metal_hydrogen_sheet /obj/item/stack/sheet/mineral/metal_hydrogen/get_main_recipes() . = ..() . += GLOB.metalhydrogen_recipes - +/datum/armor/metal_hydrogen_sheet + melee = 100 + bullet = 100 + laser = 100 + energy = 100 + bomb = 100 + fire = 100 + acid = 100 + bio = 100 GLOBAL_LIST_INIT(zaukerite_recipes, list( new /datum/stack_recipe("zaukerite shard", /obj/item/ammo_casing/rebar/zaukerite, req_amount=1, res_amount=1, category = CAT_WEAPON_AMMO), diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 8a39b16d5433..d63bef249caf 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -205,11 +205,9 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ /obj/item/stack/sheet/iron/examine(mob/user) . = ..() - . += span_notice("You can build a wall girder (unanchored) by right clicking on an empty floor.") - -/obj/item/stack/sheet/iron/narsie_act() - new /obj/item/stack/sheet/runed_metal(loc, amount) - qdel(src) + . += span_notice("Right click on floor to build:") + . += span_notice("- Unanchored wall girder") + . += span_notice("- Computer or Machine frame (with circuitboard)") /obj/item/stack/sheet/iron/fifty amount = 50 @@ -269,18 +267,39 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ if(build_on.is_blocked_turf()) user.balloon_alert(user, "something is blocking the tile!") return ITEM_INTERACT_BLOCKING - if(get_amount() < 2) - user.balloon_alert(user, "not enough material!") + + var/frame_path = null + var/cost = 2 // Default girder cost + var/time = 4 SECONDS //Default girder build time + var/obj/item/circuitboard/held_board = locate() in user.held_items + if(!isnull(held_board)) + if(istype(held_board, /obj/item/circuitboard/machine)) + frame_path = /obj/structure/frame/machine + else + frame_path = /obj/structure/frame/computer + for(var/datum/stack_recipe/recipe in GLOB.metal_recipes) + if(recipe.result_type == frame_path) + time = recipe.time + cost = recipe.req_amount + break + if(get_amount() < cost) + user.balloon_alert(user, "need [cost] metal sheets!") return ITEM_INTERACT_BLOCKING - if(!do_after(user, 4 SECONDS, build_on)) + if(!do_after(user, time, build_on)) return ITEM_INTERACT_BLOCKING if(build_on.is_blocked_turf()) user.balloon_alert(user, "something is blocking the tile!") return ITEM_INTERACT_BLOCKING - if(!use(2)) + if(!use(cost)) user.balloon_alert(user, "not enough material!") return ITEM_INTERACT_BLOCKING - new/obj/structure/girder/displaced(build_on) + if(frame_path) + var/obj/structure/frame/constructed_frame = new frame_path(build_on) + constructed_frame.setDir(REVERSE_DIR(user.dir)) //to align computer frame with player direction + user.balloon_alert(user, "frame created") + else + new/obj/structure/girder/displaced(build_on) + user.balloon_alert(user, "girder created") return ITEM_INTERACT_SUCCESS /* @@ -882,6 +901,8 @@ GLOBAL_LIST_INIT(plastic_recipes, list( new /datum/stack_recipe("wet floor sign", /obj/item/clothing/suit/caution, 2, crafting_flags = NONE, category = CAT_EQUIPMENT), \ new /datum/stack_recipe("warning cone", /obj/item/clothing/head/cone, 2, crafting_flags = NONE, category = CAT_EQUIPMENT), \ new /datum/stack_recipe("blank wall sign", /obj/item/sign, 1, crafting_flags = NONE, category = CAT_FURNITURE), \ + new /datum/stack_recipe("liquid cooler jug", /obj/item/reagent_containers/cooler_jug, 4, time = 5 SECONDS, crafting_flags = NONE, category = CAT_CONTAINERS), \ + new /datum/stack_recipe("liquid cooler", /obj/structure/reagent_dispensers/water_cooler/jugless, 25, time = 10 SECONDS, crafting_flags = NONE, category = CAT_STRUCTURE), \ new /datum/stack_recipe("rebellion mask", /obj/item/clothing/mask/rebellion, 1, crafting_flags = NONE, category = CAT_CLOTHING))) /obj/item/stack/sheet/plastic @@ -890,7 +911,7 @@ GLOBAL_LIST_INIT(plastic_recipes, list( singular_name = "plastic sheet" icon_state = "sheet-plastic" inhand_icon_state = "sheet-plastic" - mats_per_unit = list(/datum/material/plastic=SHEET_MATERIAL_AMOUNT) + mats_per_unit = list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT) throwforce = 7 material_type = /datum/material/plastic merge_type = /obj/item/stack/sheet/plastic diff --git a/code/game/objects/items/stacks/stack_recipe.dm b/code/game/objects/items/stacks/stack_recipe.dm index 11d5315e5f63..f507e2fc784a 100644 --- a/code/game/objects/items/stacks/stack_recipe.dm +++ b/code/game/objects/items/stacks/stack_recipe.dm @@ -35,7 +35,7 @@ req_amount = 1, res_amount = 1, max_res_amount = 1, - time = 0, + time = 0 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY, placement_checks = NONE, trait_booster, @@ -74,7 +74,7 @@ req_amount = 1, res_amount = 1, max_res_amount = 1, - time = 0, + time = 0 SECONDS, crafting_flags = CRAFT_CHECK_DENSITY, placement_checks = NONE, trait_booster, diff --git a/code/game/objects/items/stacks/tape.dm b/code/game/objects/items/stacks/tape.dm index d06b2250ed2e..62ac35ec7281 100644 --- a/code/game/objects/items/stacks/tape.dm +++ b/code/game/objects/items/stacks/tape.dm @@ -186,6 +186,10 @@ if(!isobj(interacting_with) || iseffect(interacting_with)) return NONE + if(HAS_TRAIT(interacting_with, TRAIT_DUCT_TAPE_UNREPAIRABLE)) + user.balloon_alert(user, "cannot be repaired with duct tape!") + return ITEM_INTERACT_BLOCKING + var/obj/item/object_to_repair = interacting_with var/object_is_damaged = object_to_repair.get_integrity() < object_to_repair.max_integrity diff --git a/code/game/objects/items/stacks/tiles/tile_iron.dm b/code/game/objects/items/stacks/tiles/tile_iron.dm index b1ff419208a3..204ecfe3b175 100644 --- a/code/game/objects/items/stacks/tiles/tile_iron.dm +++ b/code/game/objects/items/stacks/tiles/tile_iron.dm @@ -79,6 +79,10 @@ /obj/item/stack/tile/iron/showroomfloor, /obj/item/stack/tile/iron/solarpanel, /obj/item/stack/tile/iron/freezer, + /obj/item/stack/tile/iron/freezer/edge, + /obj/item/stack/tile/iron/freezer/half, + /obj/item/stack/tile/iron/freezer/corner, + /obj/item/stack/tile/iron/freezer/large, /obj/item/stack/tile/iron/grimy, /obj/item/stack/tile/iron/sepia, ) @@ -603,6 +607,37 @@ turf_type = /turf/open/floor/iron/freezer merge_type = /obj/item/stack/tile/iron/freezer +/obj/item/stack/tile/iron/freezer/edge + name = "freezer edge floor tile" + singular_name = "edged freezer floor tile" + icon_state = "tile_freezer_edge" + turf_type = /turf/open/floor/iron/freezer/edge + merge_type = /obj/item/stack/tile/iron/freezer/edge + tile_rotate_dirs = list(SOUTH, NORTH, EAST, WEST) + +/obj/item/stack/tile/iron/freezer/half + name = "freezer half floor tile" + singular_name = "halved freezer floor tile" + icon_state = "tile_freezer_half" + turf_type = /turf/open/floor/iron/freezer/half + merge_type = /obj/item/stack/tile/iron/freezer/half + tile_rotate_dirs = list(SOUTH, NORTH) + +/obj/item/stack/tile/iron/freezer/corner + name = "freezer corner floor tile" + singular_name = "cornered freezer floor tile" + icon_state = "tile_freezer_corner" + turf_type = /turf/open/floor/iron/freezer/corner + merge_type = /obj/item/stack/tile/iron/freezer/corner + tile_rotate_dirs = list(SOUTH, NORTH, EAST, WEST) + +/obj/item/stack/tile/iron/freezer/large + name = "freezer large floor tile" + singular_name = "large freezer floor tile" + icon_state = "tile_freezer_large" + turf_type = /turf/open/floor/iron/freezer/large + merge_type = /obj/item/stack/tile/iron/freezer/large + /obj/item/stack/tile/iron/grimy name = "grimy floor tile" singular_name = "grimy floor tile" diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 9f0cb2cbf02c..4560172066a7 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -29,7 +29,7 @@ icon = 'icons/obj/service/janitor.dmi' icon_state = "trashbag" inhand_icon_state = "trashbag" - worn_icon_state = "trashbag" + worn_icon_state = null lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' storage_type = /datum/storage/bag/trash diff --git a/code/game/objects/items/storage/boxes/clothes_boxes.dm b/code/game/objects/items/storage/boxes/clothes_boxes.dm index 6d789293e79e..2ac97ff0313d 100644 --- a/code/game/objects/items/storage/boxes/clothes_boxes.dm +++ b/code/game/objects/items/storage/boxes/clothes_boxes.dm @@ -209,6 +209,7 @@ /obj/item/storage/box/holy/adept/PopulateContents() new /obj/item/clothing/suit/chaplainsuit/armor/adept(src) new /obj/item/clothing/head/helmet/chaplain/adept(src) + new /obj/item/clothing/gloves/bracer(src) /obj/item/storage/box/holy/follower name = "Followers of the Chaplain Kit" diff --git a/code/game/objects/items/storage/boxes/medical_boxes.dm b/code/game/objects/items/storage/boxes/medical_boxes.dm index 1a85927b5ef1..7d468ff81b1a 100644 --- a/code/game/objects/items/storage/boxes/medical_boxes.dm +++ b/code/game/objects/items/storage/boxes/medical_boxes.dm @@ -51,7 +51,7 @@ /obj/item/storage/box/beakers/big/PopulateContents() for(var/i in 1 to 7) - new /obj/item/reagent_containers/cup/beaker/large + new /obj/item/reagent_containers/cup/beaker/large(src) /obj/item/storage/box/beakers/bluespace name = "box of bluespace beakers" diff --git a/code/game/objects/items/storage/boxes/science_boxes.dm b/code/game/objects/items/storage/boxes/science_boxes.dm index 8e294822f5ae..46d0890ea409 100644 --- a/code/game/objects/items/storage/boxes/science_boxes.dm +++ b/code/game/objects/items/storage/boxes/science_boxes.dm @@ -50,6 +50,11 @@ desc = "Waffle Corp. brand monkey cubes. Just add water and a dash of subterfuge!" cube_type = /obj/item/food/monkeycube/syndicate +/obj/item/storage/box/monkeycubes/random + name = "monster cube box" + desc = "A box containing a bunch of random cubes. Add water and see what you get!" + cube_type = /obj/item/food/monkeycube/random + /obj/item/storage/box/gorillacubes name = "gorilla cube box" desc = "Waffle Corp. brand gorilla cubes. Do not taunt." diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 9ff03b3a9026..709f3e190b3c 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -300,7 +300,7 @@ new /obj/item/clothing/suit/armor/vest/marine/pmc(src) //The armor kit is comparable to the infiltrator, 6 TC new /obj/item/clothing/head/helmet/marine/pmc(src) new /obj/item/clothing/mask/gas/sechailer(src) - new /obj/item/clothing/glasses/night/colorless(src) // 3~ TC + new /obj/item/clothing/glasses/night(src) // 3~ TC new /obj/item/clothing/gloves/krav_maga/combatglovesplus(src) //5TC new /obj/item/clothing/shoes/jackboots(src) new /obj/item/storage/belt/military/assault/fisher(src) //items in this belt easily costs 18 TC diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index 27aea36ee15b..8ab4b176ee1a 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -51,7 +51,7 @@ if(ishuman(loc)) var/mob/living/carbon/human/wearing_human = loc if(wearing_human.wear_id == src) - wearing_human.sec_hud_set_ID() + wearing_human.update_ID_card() update_label() update_appearance(UPDATE_ICON) @@ -98,14 +98,14 @@ /obj/item/storage/wallet/GetID() return front_id -/obj/item/storage/wallet/RemoveID() +/obj/item/storage/wallet/remove_id() if(!front_id) return . = front_id front_id.forceMove(get_turf(src)) -/obj/item/storage/wallet/InsertID(obj/item/inserting_item) - var/obj/item/card/inserting_id = inserting_item.RemoveID() +/obj/item/storage/wallet/insert_id(obj/item/inserting_item) + var/obj/item/card/inserting_id = inserting_item.remove_id() if(!inserting_id) return FALSE attackby(inserting_id) diff --git a/code/game/objects/items/vending_items.dm b/code/game/objects/items/vending_items.dm index 7084b313dff5..6d11220251a3 100644 --- a/code/game/objects/items/vending_items.dm +++ b/code/game/objects/items/vending_items.dm @@ -3,8 +3,6 @@ */ /obj/item/vending_refill name = "resupply canister" - var/machine_name = "Generic" - icon = 'icons/obj/vending_restock.dmi' icon_state = "refill_snack" inhand_icon_state = "restock_unit" @@ -19,13 +17,14 @@ w_class = WEIGHT_CLASS_BULKY armor_type = /datum/armor/item_vending_refill - /** - * Built automatically from the corresponding vending machine. - * If null, considered to be full. Otherwise, is list(/typepath = amount). - */ + ///Name of the vending machine this canister is associated with + var/machine_name = "Generic" + + ///corresponds to /obj/machinery/vending::list/products var/list/products - var/list/product_categories + ///corresponds to /obj/machinery/vending::list/contraband var/list/contraband + ///corresponds to /obj/machinery/vending::list/premium var/list/premium /datum/armor/item_vending_refill @@ -38,18 +37,21 @@ /obj/item/vending_refill/examine(mob/user) . = ..() + var/num = get_part_rating() - if (num == INFINITY) - . += "It's sealed tight, completely full of supplies." - else if (num == 0) - . += "It's empty!" + if (!num) + . += span_notice("It's empty!") + else if(num == INFINITY) + . += span_notice("It's full of supplies!") else - . += "It can restock [num] item\s." + . += span_notice("It can restock [num] item\s.") /obj/item/vending_refill/get_part_rating() - if (!products || !product_categories || !contraband || !premium) - return INFINITY . = 0 + //first time needs to be filled by the vending machine + if(!products) + return INFINITY + for(var/key in products) . += products[key] for(var/key in contraband) @@ -57,9 +59,3 @@ for(var/key in premium) . += premium[key] - for (var/list/category as anything in product_categories) - var/list/products = category["products"] - for (var/product_key in products) - . += products[product_key] - - return . diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 0c9b1d2cb3bc..802ea57f9140 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -840,6 +840,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 icon_state = "tailwhip" inhand_icon_state = "tailwhip" item_flags = NONE + can_hasten = FALSE /obj/item/melee/chainofcommand/tailwhip/kitty name = "cat o' nine tails" diff --git a/code/game/objects/items/wind_turbine.dm b/code/game/objects/items/wind_turbine.dm new file mode 100644 index 000000000000..74cd1213b698 --- /dev/null +++ b/code/game/objects/items/wind_turbine.dm @@ -0,0 +1,376 @@ +#define TURBINE_MAX_STORED_POWER (0.2 * STANDARD_CELL_CHARGE) +#define TURBINE_ANIMATION_TICKS_PER_TILE (1) +#define TURBINE_ANIMATION_TICKS (4) +#define TURBINE_CHARGE_PER_TILE (0.002 * STANDARD_CELL_CHARGE) +#define TURBINE_ANCHORED_POWER_PER_KPA (TURBINE_CHARGE_PER_TILE * 2) +#define TURBINE_MIN_SECONDS_BETWEEN_SOUNDS (0.33 SECONDS) + +/obj/item/portable_wind_turbine + name = "portable wind turbine" + icon = 'icons/obj/wind_turbine.dmi' + icon_state = "icon" + base_icon_state = "icon" + desc = "A portable wind turbine that can charge attached energy based weaponry, PDAs, and other devices. As a safety mechanism after an unprecedented amount of amputations, only charges when attached to your back / the floor." + worn_icon = 'icons/obj/wind_turbine.dmi' + worn_icon_state = "base_turbine" + inhand_icon_state = "wind_turbine" + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 + slot_flags = ITEM_SLOT_SUITSTORE | ITEM_SLOT_BACK + force = 10 + throwforce = 6 + w_class = WEIGHT_CLASS_BULKY + ///What item is being charged currently? + var/obj/item/charging = null + ///Did we put power into "charging" last process()? + var/using_power = FALSE + ///Did we finish recharging the currently inserted item? + var/finished_recharging = FALSE + + ///Current rotor animation frame. (floating point value). + var/rotor_tick = 0 + ///Power that has been generated by moving about. + var/available_power = 0 + ///The last time (world.time) a sound was played at. + var/last_sound_time = 0 + ///Capacitor currently inserted. + var/obj/item/stock_parts/capacitor/cap = null + + var/static/list/allowed_devices = typecacheof(list( + /obj/item/gun/energy, + /obj/item/compact_remote, + /obj/item/controller, + /obj/item/organ/cyberimp/bci, + /obj/item/integrated_circuit, + /obj/item/melee/baton/security, + /obj/item/modular_computer, + /obj/item/stock_parts/power_store/cell, + )) + +/obj/item/portable_wind_turbine/Initialize(mapload) + . = ..() + AddElement(/datum/element/drag_pickup) + RegisterSignal(src, COMSIG_MOVABLE_SET_ANCHORED, PROC_REF(on_anchor)) + RegisterSignal(src, COMSIG_ATOM_PRE_DIR_CHANGE, PROC_REF(block_dir_changes_unanchored)) + update_appearance() + +/obj/item/portable_wind_turbine/loaded/Initialize(mapload) + . = ..() + cap = new /obj/item/stock_parts/capacitor(src) + +/obj/item/portable_wind_turbine/Destroy() + return ..() + +///Called when src is anchored +/obj/item/portable_wind_turbine/proc/on_anchor(atom/source, is_anchored) + SIGNAL_HANDLER + + if (is_anchored) + RegisterSignal(src, COMSIG_MOVABLE_RESISTED_SPACEWIND, PROC_REF(on_space_wind)) + UnregisterSignal(src, COMSIG_ATOM_PRE_DIR_CHANGE) + forceMove(get_turf(src)) + pixel_x = 0 + pixel_y = 0 + setDir(SOUTH) + else + UnregisterSignal(src, COMSIG_MOVABLE_RESISTED_SPACEWIND) + RegisterSignal(src, COMSIG_ATOM_PRE_DIR_CHANGE, PROC_REF(block_dir_changes_unanchored)) + +///Called when src changes direction when not equipped +/obj/item/portable_wind_turbine/proc/block_dir_changes_unanchored(atom/source, old_dir, new_dir) + SIGNAL_HANDLER + + return COMPONENT_ATOM_BLOCK_DIR_CHANGE + +///Called when this resists space wind +/obj/item/portable_wind_turbine/proc/on_space_wind(atom/source, pressure_difference, pressure_direction) + SIGNAL_HANDLER + + var/obj/item/portable_wind_turbine/turbine = source + if (!turbine) + return + if (isnull(cap)) + return + turbine.add_power(TURBINE_ANCHORED_POWER_PER_KPA * pressure_difference * cap.rating, ignore_cap = TRUE) + set_rotor_tick(rotor_tick + 1) + +/obj/item/portable_wind_turbine/update_appearance(updates) + . = ..() + update_back() + +/obj/item/portable_wind_turbine/equipped(mob/user, slot, initial) + . = ..() + update_appearance() + if(slot & slot_flags) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + RegisterSignal(user, COMSIG_ATOM_POST_DIR_CHANGE, PROC_REF(on_dir_change)) + else + setDir(SOUTH) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(on_move)) + UnregisterSignal(user, COMSIG_ATOM_POST_DIR_CHANGE, PROC_REF(on_dir_change)) + +///Called when the thing HOLDING the turbine changes direction +/obj/item/portable_wind_turbine/proc/on_dir_change(datum/source, old_dir, new_dir) + SIGNAL_HANDLER + + update_appearance() + +///Updates the worn back icon for the current loc +/obj/item/portable_wind_turbine/proc/update_back() + if (ishuman(loc)) + var/mob/living/carbon/human/human = loc + human.update_worn_back() + +///Tries to play the woosh sound effect. May not play it if it's been too soon since the last call. +/obj/item/portable_wind_turbine/proc/try_playsound() + if ((world.time - last_sound_time) < TURBINE_MIN_SECONDS_BETWEEN_SOUNDS) + return + playsound(src, 'sound/machines/woosh.ogg', 20, FALSE) + last_sound_time = world.time + +///Sets the rotor animation tick to a new value. Returns TRUE if the rotor made a full rotation. +/obj/item/portable_wind_turbine/proc/set_rotor_tick(new_tick) + var/last_rotor_tick = floor(rotor_tick) + rotor_tick = new_tick + var/made_full_rotation = FALSE + if (rotor_tick >= TURBINE_ANIMATION_TICKS) + rotor_tick -= floor(rotor_tick / TURBINE_ANIMATION_TICKS) * TURBINE_ANIMATION_TICKS + try_playsound() + made_full_rotation = TRUE + var/rounded_rotor_tick = floor(rotor_tick) + if (rounded_rotor_tick != last_rotor_tick) + update_appearance() + return made_full_rotation + +///Adds a certain amount of power to the internal buffer +/obj/item/portable_wind_turbine/proc/add_power(power, ignore_cap = FALSE) + if (ignore_cap) + available_power += power + else + available_power = min(available_power + power, TURBINE_MAX_STORED_POWER * (isnull(cap?.rating) ? 1 : cap.rating)) + +///Called when the thing HOLDING the turbine moves +/obj/item/portable_wind_turbine/proc/on_move(atom/thing, atom/old_loc, dir) + SIGNAL_HANDLER + + var/mob/living/user = thing + if (!user) + return + if (isnull(cap)) + return + var/distance = get_dist(old_loc, user.loc) + var/turf/open/open_turf = get_turf(user) + if (!istype(open_turf)) + return + var/pressure_factor = open_turf.air.return_pressure() / 101.0 + if (pressure_factor <= 0) + return + var/made_full_rotation = set_rotor_tick(rotor_tick + distance * TURBINE_ANIMATION_TICKS_PER_TILE * pressure_factor) + add_power(distance * TURBINE_CHARGE_PER_TILE * pressure_factor * cap.rating) + if (!made_full_rotation) + return + if (!HAS_TRAIT(user, TRAIT_CLUMSY)) + return + var/obj/item/bodypart/head/head_to_bash = user.get_bodypart(BODY_ZONE_HEAD) + if (!head_to_bash) + return + user.Paralyze(5) + user.Knockdown(10) + user.visible_message(span_danger("[user] gets whacked in the head by the [src]'s spinning blades!"), span_userdanger("You get hit in the head by the [src] and fall over!")) + // imaginary friends call sleep in their emotes + // even though imaginary friends can't put on a wind turbine I still have to do this + INVOKE_ASYNC(user, TYPE_PROC_REF(/mob/living/, emote), "scream") + user.apply_damage(5, BRUTE, head_to_bash, attacking_item=src) + playsound(source = src, soundin = 'sound/items/weapons/smash.ogg', vol = src.get_clamped_volume(), vary = TRUE) + +/obj/item/portable_wind_turbine/wrench_act(mob/living/user, obj/item/tool) + . = NONE + switch(default_unfasten_wrench(user, tool, 4 SECONDS)) + if(SUCCESSFUL_UNFASTEN) + return ITEM_INTERACT_SUCCESS + if(FAILED_UNFASTEN) + return ITEM_INTERACT_BLOCKING + return . + +/obj/item/portable_wind_turbine/examine(mob/user) + . = ..() + + if(!in_range(user, src) && !issilicon(user) && !isobserver(user)) + . += span_warning("You're too far away to examine [src]'s contents! You can still watch it spin so wonderfully though...") + if (charging && istype(charging,/obj/item/melee/baton/security/)) + . += span_info("You can see the [charging] hanging precariously off the charging port...") + return + + if(cap) + . += span_info("Click it with a screwdriver to eject the [cap].") + . += span_info("Wrench it on a tile to anchor it and harness space wind.") + . += span_info("The wind turbine is currently storing [floor(available_power / 100) / 10]kJ.") + if(charging) + . += {"[span_notice("\The [src] contains:")] + [span_notice("- \A [charging].")]"} + +/obj/item/portable_wind_turbine/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(charging) + user.balloon_alert(user, "remove the [charging] first!") + return FALSE + if(cap) + tool.play_tool_sound(src, 50) + user.balloon_alert(user, "capacitor removed") + cap.forceMove(drop_location()) + available_power = 0 + cap = null + return TRUE + else + user.balloon_alert(user, "no capacitor!") + return FALSE + +/obj/item/portable_wind_turbine/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + if(is_type_in_typecache(arrived, allowed_devices)) + charging = arrived + START_PROCESSING(SSmachines, src) + finished_recharging = FALSE + using_power = TRUE + update_appearance() + return ..() + +/obj/item/portable_wind_turbine/Exited(atom/movable/gone, direction) + if(gone == charging) + if(!QDELING(charging)) + charging.update_appearance() + charging = null + using_power = FALSE + update_appearance() + return ..() + +/obj/item/portable_wind_turbine/attackby(obj/item/attacking_item, mob/user, params) + if(istype(attacking_item, /obj/item/stock_parts/capacitor)) + if (cap) + balloon_alert(user, "already has a capacitor!") + return TRUE + user.transferItemToLoc(attacking_item, src) + cap = attacking_item + balloon_alert(user, "inserted the [attacking_item]") + return TRUE + if(!is_type_in_typecache(attacking_item, allowed_devices)) + return ..() + if(isnull(cap)) + balloon_alert(user, "no capacitor inserted!") + return TRUE + if(charging) + balloon_alert(user, "already charging something!") + return TRUE + if(istype(attacking_item, /obj/item/gun/energy)) + var/obj/item/gun/energy/energy_gun = attacking_item + if(!energy_gun.can_charge) + balloon_alert(user, "not rechargable!") + return TRUE + user.transferItemToLoc(attacking_item, src) + charging = attacking_item + return TRUE + +/obj/item/portable_wind_turbine/attack_hand(mob/user, list/modifiers) + if(loc == user || (istype(loc, /turf) && !isnull(charging))) + take_charging_out(user) + return TRUE + add_fingerprint(user) + return ..() + +/obj/item/portable_wind_turbine/handle_deconstruct(dissassembled) + charging?.forceMove(drop_location()) + cap?.forceMove(drop_location()) + return ..() + +///Takes charging item out if there is one +/obj/item/portable_wind_turbine/proc/take_charging_out(mob/user) + if(isnull(charging) || user.put_in_hands(charging)) + return + charging.forceMove(drop_location()) + update_appearance() + +/obj/item/portable_wind_turbine/attack_tk(mob/user) + if(isnull(charging)) + return + charging.forceMove(drop_location()) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/obj/item/portable_wind_turbine/process(seconds_per_tick) + using_power = FALSE + if(isnull(charging)) + return PROCESS_KILL + if(isnull(cap)) + // this is easier than starting/stopping the process based on capacitor state + // this code only charges the attached item, so stopping it early should not be a problem + return + var/obj/item/stock_parts/power_store/cell/charging_cell = charging.get_cell() + if (!charging_cell && istype(charging, /obj/item/stock_parts/power_store/cell)) + charging_cell = charging + if (!charging_cell) + var/datum/component/shell/shell = charging.GetComponent(/datum/component/shell) + charging_cell = shell?.attached_circuit?.get_cell() + if(charging_cell) + var/wanted_power = min(charging_cell.maxcharge - charging_cell.charge, charging_cell.chargerate) + if(wanted_power > 0) + using_power = TRUE + var/power_to_give = min(available_power, wanted_power) * seconds_per_tick / 2 + if (power_to_give > 0) + charging_cell.give(power_to_give) + available_power -= power_to_give + update_appearance() + + if(!using_power && !finished_recharging) //Inserted thing is at max charge/ammo, notify those around us + finished_recharging = TRUE + playsound(src, 'sound/machines/ping.ogg', 30, TRUE) + say("[charging] has finished recharging!") + +/obj/item/portable_wind_turbine/emp_act(severity) + . = ..() + if (. & EMP_PROTECT_CONTENTS) + return + + if(istype(charging, /obj/item/gun/energy)) + var/obj/item/gun/energy/energy_gun = charging + energy_gun?.cell.emp_act(severity) + + else if(istype(charging, /obj/item/melee/baton/security)) + var/obj/item/melee/baton/security/batong = charging + batong?.cell.charge = 0 + +/obj/item/portable_wind_turbine/update_overlays() + . = ..() + var/mutable_appearance/rotor = mutable_appearance(worn_icon, "rotor_[floor(rotor_tick)]") + rotor.pixel_y -= 8 + . += rotor + if (isnull(charging)) + return + if (istype(charging, /obj/item/melee/baton/security/)) + . += mutable_appearance(icon, "baton") + +/obj/item/portable_wind_turbine/worn_overlays(mutable_appearance/standing, isinhands, icon_file) + . = ..() + if (isinhands) + return + var/mutable_appearance/rotor = mutable_appearance(worn_icon, "rotor_[floor(rotor_tick)]") + rotor.layer = BELOW_MOB_LAYER + if (ishuman(loc)) + var/mob/living/carbon/human/user = loc + if (user.dir & NORTH) + var/mutable_appearance/just_render_above_other_things = mutable_appearance(worn_icon, worn_icon_state) + just_render_above_other_things.layer = ABOVE_MOB_LAYER + rotor.layer = ABOVE_MOB_LAYER + . += just_render_above_other_things + . += rotor + if (isnull(charging)) + return + if (istype(charging, /obj/item/melee/baton/security/)) + var/mutable_appearance/baton_overlay = mutable_appearance(icon, "baton") + . += baton_overlay + +#undef TURBINE_MAX_STORED_POWER +#undef TURBINE_ANIMATION_TICKS_PER_TILE +#undef TURBINE_ANIMATION_TICKS +#undef TURBINE_CHARGE_PER_TILE +#undef TURBINE_ANCHORED_POWER_PER_KPA +#undef TURBINE_MIN_SECONDS_BETWEEN_SOUNDS diff --git a/code/game/objects/structures/billboard.dm b/code/game/objects/structures/billboard.dm index 86e36a2154bf..e8f74c902cac 100644 --- a/code/game/objects/structures/billboard.dm +++ b/code/game/objects/structures/billboard.dm @@ -104,3 +104,8 @@ name = "\improper All-American Diner billboard" desc = "A billboard advertising an old-school 1950's themed restaurant franchise \"All-American Diner\"" icon_state = "billboard_american_diner" + +/obj/structure/billboard/gloves + name = "\improper RoroCo Gloves billboard" + desc = "A billboard advertising RoroCo, a manufacturer of insulated gloves and insulated glove accessories. Features the company's loveable mascot Roro." + icon_state = "billboard_gloves" diff --git a/code/game/objects/structures/crates_lockers/closet_see_inside.dm b/code/game/objects/structures/crates_lockers/closet_see_inside.dm index 7895d31d5195..efd7b338e401 100644 --- a/code/game/objects/structures/crates_lockers/closet_see_inside.dm +++ b/code/game/objects/structures/crates_lockers/closet_see_inside.dm @@ -1,41 +1,34 @@ /// Responsible for showing the insides of a closet to those inside it. /datum/closet_see_inside - var/obj/structure/closet/closet - + ///Closet grayed out image so players can click on it to get out of closet var/image/background_image + ///Stuff inside closet image var/image/contents_image - var/list/client/clients_looking_at_image = list() - - var/door_alpha = 85 - /datum/closet_see_inside/New(obj/structure/closet/closet) - src.closet = closet - - RegisterSignal(closet, COMSIG_ATOM_ENTERED, PROC_REF(on_atom_entered)) - RegisterSignal(closet, COMSIG_ATOM_EXITED, PROC_REF(on_atom_exited)) + RegisterSignal(closet, COMSIG_CLOSET_PRE_OPEN, PROC_REF(on_closet_pre_open)) + RegisterSignal(closet, COMSIG_CLOSET_POST_CLOSE, PROC_REF(on_closet_closed)) /datum/closet_see_inside/Destroy(force) - if (contents_image) - for (var/client/looking_at_image as anything in clients_looking_at_image) - looking_at_image.images -= background_image - looking_at_image.images -= contents_image - - contents_image.vis_contents.Cut() - - clients_looking_at_image.Cut() - - + on_closet_pre_open(src) return ..() -/datum/closet_see_inside/proc/create_image() - contents_image = new - contents_image.loc = closet - contents_image.appearance_flags |= KEEP_TOGETHER +/** + * Creates the closet background & contents image to display for the client + * + * Arguments + * * obj/structure/closet/closet - the closet whose insides we are taking a snapshot of +*/ +/datum/closet_see_inside/proc/create_image(obj/structure/closet/closet) + PRIVATE_PROC(TRUE) + if(contents_image) + return + + ///closet grayed out image background_image = image( icon = closet.icon, - icon_state = closet.base_icon_state == null ? initial(closet.icon_state) : closet.base_icon_state, + icon_state = isnull(closet.base_icon_state) ? initial(closet.icon_state) : closet.base_icon_state, loc = closet, layer = BELOW_OBJ_LAYER, ) @@ -43,6 +36,10 @@ background_image.opacity = MOUSE_OPACITY_TRANSPARENT background_image.override = TRUE + //all stuff inside the closet image + contents_image = new + contents_image.loc = closet + contents_image.appearance_flags |= KEEP_TOGETHER contents_image.add_filter( "mask", 1, @@ -52,7 +49,6 @@ y = -3, ) ) - contents_image.add_filter( "color", 2, @@ -62,45 +58,39 @@ ) ) + //door & contents to add to image if (closet.enable_door_overlay) var/obj/effect/overlay/door = new door.icon = closet.icon door.icon_state = "[closet.icon_door || background_image.icon_state]_door" - door.alpha = door_alpha + door.alpha = 85 door.layer = ABOVE_ALL_MOB_LAYER door.mouse_opacity = MOUSE_OPACITY_TRANSPARENT contents_image.vis_contents += door - for (var/atom/movable/movable in closet) contents_image.vis_contents += movable -/datum/closet_see_inside/proc/on_atom_entered(obj/structure/closet/source, atom/movable/arrived) +/datum/closet_see_inside/proc/on_closet_pre_open(obj/structure/closet/source, mob/user) SIGNAL_HANDLER - if (contents_image) - contents_image.vis_contents += arrived - - if (ismob(arrived)) - var/mob/arrived_mob = arrived - var/client/client = GET_CLIENT(arrived_mob) - if (client) - create_image() - clients_looking_at_image += client - client.images += background_image - client.images += contents_image + if(contents_image) + for(var/atom/movable/movable in source) + if(ismob(movable)) + var/client/client = GET_CLIENT(astype(movable, /mob)) + if (client) + client.images -= background_image + client.images -= contents_image + contents_image.vis_contents.Cut() -/datum/closet_see_inside/proc/on_atom_exited(obj/structure/closet/source, atom/movable/exited) +/datum/closet_see_inside/proc/on_closet_closed(obj/structure/closet/source, mob/user) SIGNAL_HANDLER - if (!contents_image) - return - - contents_image.vis_contents -= exited - - if (ismob(exited)) - var/mob/exited_mob = exited - var/client/client = GET_CLIENT(exited_mob) - if (client) - clients_looking_at_image -= client - client.images -= background_image - client.images -= contents_image + for(var/atom/movable/movable in source) + if(ismob(movable)) + var/client/client = GET_CLIENT(astype(movable, /mob)) + if (client) + create_image(source) + client.images += background_image + client.images += contents_image + if(contents_image) + contents_image.vis_contents += movable diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index c511562d769c..8a35511c6f46 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -100,9 +100,8 @@ GLOBAL_LIST_EMPTY(roundstart_station_closets) var/x_shake_pixel_shift = 2 /// how many pixels the closet can shift on the y axes when shaking var/y_shake_pixel_shift = 1 - - VAR_PRIVATE - datum/closet_see_inside/closet_see_inside + ///Creates see through image for clients to see while inside closet + VAR_PRIVATE/datum/closet_see_inside/closet_see_inside /datum/armor/structure_closet melee = 20 diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 2e9c6687826a..2c596b67aebb 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -270,6 +270,7 @@ /obj/structure/closet/body_bag/environmental/prisoner/attempt_fold(mob/living/carbon/human/the_folder) if(sinched) to_chat(the_folder, span_warning("You wrestle with [src], but it won't fold while its straps are fastened.")) + return FALSE return ..() /obj/structure/closet/body_bag/environmental/prisoner/before_open(mob/living/user, force) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 06b006fe4cc3..fc2c2fe56d10 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -20,7 +20,7 @@ /obj/structure/closet/syndicate/personal/PopulateContents() ..() new /obj/item/trench_tool(src) - new /obj/item/clothing/glasses/night/colorless(src) + new /obj/item/clothing/glasses/night(src) new /obj/item/ammo_box/magazine/m10mm(src) new /obj/item/storage/belt/military(src) new /obj/item/storage/belt/holster/nukie(src) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 1c3ff385b4d7..c54605eb78c2 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -476,14 +476,26 @@ /obj/structure/closet/crate/add_to_roundstart_list() return -/obj/structure/closet/crate/pink +/obj/structure/closet/crate/glitter name = "pink crate" desc = "A glittery pink crate." icon_state = "pink" base_icon_state = "pink" + var/glitter_prob = 25 + var/glitter_color = "#ff8080" -/obj/structure/closet/crate/lavender +/obj/structure/closet/crate/glitter/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change) + . = ..() + + var/turf/old_turf = get_turf(old_loc) + if(!old_turf) + return + if(prob(glitter_prob)) + old_turf.spawn_glitter(list("[glitter_color]" = 100)) + +/obj/structure/closet/crate/glitter/lavender name = "lavender crate" desc = "A glittery purple... no, lavender crate." icon_state = "lavender" base_icon_state = "lavender" + glitter_color = "#db80ff" diff --git a/code/game/objects/structures/gym/weight_machine_action.dm b/code/game/objects/structures/gym/weight_machine_action.dm index 6023a1b19470..2f370e20b0d0 100644 --- a/code/game/objects/structures/gym/weight_machine_action.dm +++ b/code/game/objects/structures/gym/weight_machine_action.dm @@ -15,7 +15,7 @@ return FALSE return TRUE -/datum/action/push_weights/Trigger(trigger_flags) +/datum/action/push_weights/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return FALSE diff --git a/code/game/objects/structures/ladders.dm b/code/game/objects/structures/ladders.dm index 95534b286105..6a60c80f92df 100644 --- a/code/game/objects/structures/ladders.dm +++ b/code/game/objects/structures/ladders.dm @@ -277,7 +277,8 @@ user.zMove(target = target, z_move_flags = ZMOVE_CHECK_PULLEDBY|ZMOVE_ALLOW_BUCKLED|ZMOVE_INCLUDE_PULLED) if(grant_exp) - user.mind?.adjust_experience(/datum/skill/athletics, 10) //get a little experience for our trouble + var/fitness_level = user.mind?.get_skill_level(/datum/skill/athletics) + user.mind?.adjust_experience(/datum/skill/athletics, round(ATHLETICS_SKILL_MISC_EXP/(fitness_level || 1), 1)) //get a little experience for our trouble if(!is_ghost) show_final_fluff_message(user, ladder, going_up) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 3b4f453c6b78..eaa18fd6eb1f 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -277,7 +277,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/mirror/broken, 28) /obj/structure/mirror/attacked_by(obj/item/I, mob/living/user, list/modifiers, list/attack_modifiers) . = ..() - if(broken || !.) // breaking a mirror truly gets you bad luck! + if(broken || . <= 0) // breaking a mirror truly gets you bad luck! return to_chat(user, span_warning("A chill runs down your spine as [src] shatters...")) user.AddComponent(/datum/component/omen, incidents_left = 7) diff --git a/code/game/objects/structures/platform.dm b/code/game/objects/structures/platform.dm index 48e1e2b78c7d..6adfcf310aa5 100644 --- a/code/game/objects/structures/platform.dm +++ b/code/game/objects/structures/platform.dm @@ -1,4 +1,4 @@ -#define PLATFORM_BASE_MATERIAL_AMOUNT 2000 +#define PLATFORM_BASE_MATERIAL_AMOUNT (2 * SHEET_MATERIAL_AMOUNT) /// A raised platform you can stand on top of /obj/structure/platform @@ -21,7 +21,7 @@ /// Icon used for the frame var/frame_icon = 'icons/obj/smooth_structures/platform/frame_faces/window_frame_normal.dmi' /// Material used in our construction - var/sheet_type = /obj/item/stack/sheet/iron + var/sheet_type = null /// Count of sheets used in our construction var/sheet_amount = 2 /// What footstep do we use? diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 6d8db7188e7c..d1ce7c6f34bb 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -52,6 +52,12 @@ var/matrix/before_flipped_matrix /// Do we place people onto the table rather than slamming them? var/slam_gently = FALSE + /// Where icon is our flipped table located in? + var/flipped_table_icon = 'icons/obj/flipped_tables.dmi' + /// What sound does the table make when unflipped? + var/unflip_table_sound = 'sound/items/trayhit/trayhit2.ogg' + /// What sound does the table make when we flip the table? + var/flipped_table_sound = 'sound/items/trayhit/trayhit1.ogg' /obj/structure/table/Initialize(mapload, obj/structure/table_frame/frame_used, obj/item/stack/stack_used) . = ..() @@ -109,7 +115,7 @@ //proc that adds elements present in normal tables /obj/structure/table/proc/unflip_table() - playsound(src, 'sound/items/trayhit/trayhit2.ogg', 100) + playsound(src, unflip_table_sound, 100) make_climbable() AddElement(/datum/element/give_turf_traits, turf_traits) AddElement(/datum/element/footstep_override, priority = STEP_SOUND_TABLE_PRIORITY) @@ -129,7 +135,7 @@ //proc that removes elements present in now-flipped tables /obj/structure/table/proc/flip_table(new_dir = SOUTH) - playsound(src, 'sound/items/trayhit/trayhit1.ogg', 100) + playsound(src, flipped_table_sound, 100) qdel(GetComponent(/datum/component/climb_walkable)) RemoveElement(/datum/element/climbable) RemoveElement(/datum/element/footstep_override, priority = STEP_SOUND_TABLE_PRIORITY) @@ -170,7 +176,7 @@ transform_matrix.Turn(270) animate(src, transform = transform_matrix, time = 0) else - icon = 'icons/obj/flipped_tables.dmi' + icon = flipped_table_icon icon_state = base_icon_state update_appearance() @@ -283,14 +289,17 @@ if(!can_flip) return + var/interaction_key = "table_flip_[REF(src)]" if(!is_flipped) - user.balloon_alert_to_viewers("flipping table...") - if(do_after(user, max_integrity * 0.25)) + if(!LAZYACCESS(user.do_afters, interaction_key)) // To avoid balloon alert spam + user.balloon_alert_to_viewers("flipping table...") + if(do_after(user, max_integrity * 0.25, src, interaction_key = interaction_key)) flip_table(get_dir(user, src)) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - user.balloon_alert_to_viewers("flipping table upright...") - if(do_after(user, max_integrity * 0.25, src)) + if(!LAZYACCESS(user.do_afters, interaction_key)) // To avoid balloon alert spam + user.balloon_alert_to_viewers("flipping table upright...") + if(do_after(user, max_integrity * 0.25, src, interaction_key = interaction_key)) unflip_table() return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/game/objects/structures/tank_holder.dm b/code/game/objects/structures/tank_holder.dm index 5a9eb683c5c2..3d0b5e18b754 100644 --- a/code/game/objects/structures/tank_holder.dm +++ b/code/game/objects/structures/tank_holder.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/canisters.dmi' icon_state = "holder" - custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT) + custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT) density = FALSE anchored = FALSE @@ -35,11 +35,14 @@ /obj/structure/tank_holder/examine(mob/user) . = ..() - . += "It is [anchored ? "wrenched to the floor." : "The bolts on the bottom are unsecured."]
" + if(anchored) + . += span_notice("It is bolted to the floor.") + else + . += span_notice("The bolts on the bottom are unsecured.") if(tank) - . += "It is holding one [tank]." + . += span_notice("It is holding \a [tank].") else - . += "It is empty." + . += span_notice("It is empty.") . += span_notice("It is held together by some screws.") /obj/structure/tank_holder/attackby(obj/item/W, mob/living/user, list/modifiers, list/attack_modifiers) diff --git a/code/game/say.dm b/code/game/say.dm index 8baabda3be9e..85848ee0f489 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -62,7 +62,8 @@ GLOBAL_LIST_INIT(freqtospan, list( return spans |= speech_span language ||= get_selected_language() - message_mods[SAY_MOD_VERB] = say_mod(message, message_mods) + if(!message_mods[SAY_MOD_VERB]) + message_mods[SAY_MOD_VERB] = say_mod(message, message_mods) send_speech(message, message_range, src, bubble_type, spans, language, message_mods, forced = forced) /// Called when this movable hears a message from a source. @@ -167,18 +168,15 @@ GLOBAL_LIST_INIT(freqtospan, list( //End name span. var/endspanpart = "" - //Message - var/messagepart + // Language icon. var/languageicon = "" - if(message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) - messagepart = message_mods[MODE_CUSTOM_SAY_EMOTE] - else - messagepart = speaker.say_quote(raw_message, spans, message_mods) - + if(!message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) var/datum/language/dialect = GLOB.language_datum_instances[message_language] if(istype(dialect) && dialect.display_icon(src)) languageicon = "[dialect.get_icon()] " + // The actual message part. + var/messagepart = speaker.generate_messagepart(raw_message, spans, message_mods) messagepart = " [messagepart]" return "[spanpart1][spanpart2][freqpart][languageicon][compose_track_href(speaker, namepart)][namepart][compose_job(speaker, message_language, raw_message, radio_freq)][endspanpart][messagepart]" @@ -219,14 +217,20 @@ GLOBAL_LIST_INIT(freqtospan, list( return verb_say /** - * This prock is used to generate a message for chat - * Generates the `says, "meme"` part of the `Grey Tider says, "meme"`. + * This proc is used to generate the 'message' part of a chat message. + * Generates the `says, "meme"` part of the `Grey Tider says, "meme"`, + * or the `taps their microphone.` part of `Grey Tider taps their microphone.`. * * input - The message to be said * spans - A list of spans to attach to the message. Includes the atom's speech span by default * message_mods - A list of message modifiers, i.e. whispering/singing */ -/atom/movable/proc/say_quote(input, list/spans = list(speech_span), list/message_mods = list()) +/atom/movable/proc/generate_messagepart(input, list/spans = list(speech_span), list/message_mods = list()) + // If we only care about the emote part, early return. + if(message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) + return apply_message_emphasis(message_mods[MODE_CUSTOM_SAY_EMOTE]) + + // Otherwise, we format our full quoted message. if(!input) input = "..." diff --git a/code/game/sound/sound_keys/sound_keys.dm b/code/game/sound/sound_keys/sound_keys.dm index 7f4577aa7bed..971f50c38727 100644 --- a/code/game/sound/sound_keys/sound_keys.dm +++ b/code/game/sound/sound_keys/sound_keys.dm @@ -842,3 +842,8 @@ /datum/sound_effect/cig_pack_throw_drop key = SFX_CIG_PACK_THROW_DROP file_paths = list('sound/items/cigs/cig_pack_throw_drop1.ogg') + +/datum/sound_effect/roro_warble + key = SFX_RORO_WARBLE + file_paths = list( + 'sound/mobs/non-humanoids/roro/roro_warble.ogg') diff --git a/code/game/turfs/closed/indestructible.dm b/code/game/turfs/closed/indestructible.dm index a32e0a1b1458..82a0cca5305d 100644 --- a/code/game/turfs/closed/indestructible.dm +++ b/code/game/turfs/closed/indestructible.dm @@ -137,12 +137,6 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) smoothing_groups = SMOOTH_GROUP_WALLS + SMOOTH_GROUP_CLOSED_TURFS + SMOOTH_GROUP_SYNDICATE_WALLS canSmoothWith = SMOOTH_GROUP_SHUTTLE_PARTS + SMOOTH_GROUP_AIRLOCK + SMOOTH_GROUP_PLASTITANIUM_WALLS + SMOOTH_GROUP_SYNDICATE_WALLS -/turf/closed/indestructible/syndicate/nodiagonal - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "plastitanium_wall" - smoothing_flags = SMOOTH_BITMASK - /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' icon_state = "uranium_wall-0" @@ -160,7 +154,8 @@ INITIALIZE_IMMEDIATE(/turf/closed/indestructible/splashscreen) canSmoothWith = SMOOTH_GROUP_PLASTINUM_WALLS /turf/closed/indestructible/riveted/plastinum/nodiagonal - icon_state = "map-shuttle_nd" + icon = MAP_SWITCH('icons/turf/walls/plastinum_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastinum_wall-0", "plastinum_nd") smoothing_flags = SMOOTH_BITMASK /turf/closed/indestructible/wood diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 714991c1b55f..505371164bf6 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -85,12 +85,12 @@ /turf/closed/mineral/proc/Change_Ore(ore_type, random = 0) if(random) mineralAmt = rand(1, 5) - if(ispath(ore_type, /obj/item/stack/ore)) //If it has a scan_state, switch to it + if(ispath(ore_type, /obj/item/stack/ore)) // If it has a scan_state, switch to it var/obj/item/stack/ore/the_ore = ore_type scan_state = initial(the_ore.scan_state) // I SAID. SWITCH. TO. IT. mineralType = ore_type // Everything else assumes that this is typed correctly so don't set it to non-ores thanks. if(ispath(ore_type, /obj/item/boulder)) - scan_state = "rock_Boulder" //Yes even the lowly boulder has a scan state + scan_state = "rock_boulder" // Yes even the lowly boulder has a scan state spawned_boulder = /obj/item/boulder/gulag_expanded /** @@ -545,7 +545,7 @@ /turf/closed/mineral/iron mineralType = /obj/item/stack/ore/iron - scan_state = "rock_Iron" + scan_state = "rock_iron" /turf/closed/mineral/iron/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -565,7 +565,7 @@ /turf/closed/mineral/uranium mineralType = /obj/item/stack/ore/uranium - scan_state = "rock_Uranium" + scan_state = "rock_uranium" /turf/closed/mineral/uranium/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -575,7 +575,7 @@ /turf/closed/mineral/diamond mineralType = /obj/item/stack/ore/diamond - scan_state = "rock_Diamond" + scan_state = "rock_diamond" /turf/closed/mineral/diamond/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -595,7 +595,7 @@ /turf/closed/mineral/gold mineralType = /obj/item/stack/ore/gold - scan_state = "rock_Gold" + scan_state = "rock_gold" /turf/closed/mineral/gold/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -605,7 +605,7 @@ /turf/closed/mineral/silver mineralType = /obj/item/stack/ore/silver - scan_state = "rock_Silver" + scan_state = "rock_silver" /turf/closed/mineral/silver/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -620,7 +620,7 @@ /turf/closed/mineral/titanium mineralType = /obj/item/stack/ore/titanium - scan_state = "rock_Titanium" + scan_state = "rock_titanium" /turf/closed/mineral/titanium/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -630,7 +630,7 @@ /turf/closed/mineral/plasma mineralType = /obj/item/stack/ore/plasma - scan_state = "rock_Plasma" + scan_state = "rock_plasma" /turf/closed/mineral/plasma/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -651,7 +651,7 @@ /turf/closed/mineral/bananium mineralType = /obj/item/stack/ore/bananium mineralAmt = 3 - scan_state = "rock_Bananium" + scan_state = "rock_bananium" /turf/closed/mineral/bananium/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -662,7 +662,7 @@ /turf/closed/mineral/bscrystal mineralType = /obj/item/stack/ore/bluespace_crystal mineralAmt = 1 - scan_state = "rock_BScrystal" + scan_state = "rock_bscrystal" /turf/closed/mineral/bscrystal/volcanic turf_type = /turf/open/misc/asteroid/basalt/lava_land_surface @@ -770,7 +770,7 @@ /turf/closed/mineral/gibtonite mineralAmt = 1 MAP_SWITCH(, icon_state = "rock_Gibtonite_inactive") - scan_state = "rock_Gibtonite" + scan_state = "rock_gibtonite" var/det_time = 8 //Countdown till explosion, but also rewards the player for how close you were to detonation when you defuse it var/stage = GIBTONITE_UNSTRUCK //How far into the lifecycle of gibtonite we are var/activated_ckey = null //These are to track who triggered the gibtonite deposit for logging purposes diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index 49c4e09c8b37..460da266758a 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -281,14 +281,13 @@ return ..() /turf/closed/wall/mineral/titanium/nodiagonal - icon = 'icons/turf/walls/shuttle_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "shuttle_wall" + icon = MAP_SWITCH('icons/turf/walls/shuttle_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("shuttle_wall-0", "shuttle_nd") smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/mineral/titanium/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + icon = MAP_SWITCH('icons/turf/walls/shuttle_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("shuttle_wall-0", "shuttle_overspace") fixed_underlay = list("space" = TRUE) /turf/closed/wall/mineral/titanium/interior/copyTurf(turf/copy_to_turf, copy_air = FALSE, flags = null) @@ -352,17 +351,14 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "plastitanium_wall" + icon = MAP_SWITCH('icons/turf/walls/plastitanium_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastitanium_wall-0", "plastitanium_nd") smoothing_flags = SMOOTH_BITMASK - rust_resistance = RUST_RESISTANCE_TITANIUM /turf/closed/wall/mineral/plastitanium/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + icon = MAP_SWITCH('icons/turf/walls/plastitanium_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastitanium_wall-0", "plastitanium_overspace") fixed_underlay = list("space" = TRUE) - rust_resistance = RUST_RESISTANCE_TITANIUM /turf/closed/wall/mineral/plastitanium/rust_turf() if(HAS_TRAIT(src, TRAIT_RUSTY)) diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index c612e550ce58..a416091aed5c 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -248,14 +248,13 @@ rust_resistance = RUST_RESISTANCE_TITANIUM /turf/closed/wall/r_wall/plastitanium/nodiagonal - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "plastitanium_wall" + icon = MAP_SWITCH('icons/turf/walls/plastitanium_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastitanium_wall-0", "plastitanium_nd") smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/r_wall/plastitanium/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + icon = MAP_SWITCH('icons/turf/walls/plastitanium_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastitanium_wall-0", "plastitanium_overspace") fixed_underlay = list("space" = TRUE) /turf/closed/wall/r_wall/plastitanium/syndicate @@ -267,12 +266,11 @@ return FALSE /turf/closed/wall/r_wall/plastitanium/syndicate/nodiagonal - icon = 'icons/turf/walls/plastitanium_wall.dmi' - icon_state = "map-shuttle_nd" - base_icon_state = "plastitanium_wall" + icon = MAP_SWITCH('icons/turf/walls/plastitanium_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastitanium_wall-0", "plastitanium_nd") smoothing_flags = SMOOTH_BITMASK /turf/closed/wall/r_wall/plastitanium/syndicate/overspace - icon_state = "map-overspace" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS + icon = MAP_SWITCH('icons/turf/walls/plastitanium_wall.dmi', 'icons/turf/walls/misc_wall.dmi') + icon_state = MAP_SWITCH("plastitanium_wall-0", "plastitanium_overspace") fixed_underlay = list("space" = TRUE) diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm index e2aac7afa980..2dd779a7f1f5 100644 --- a/code/game/turfs/open/_open.dm +++ b/code/game/turfs/open/_open.dm @@ -18,6 +18,12 @@ /// Are burnt overlays smoothed? if they are we have to change a little bit about how we render them var/smooth_burnt = FALSE + /// Custom destination for mirages + var/destination_z + /// Custom destination for mirages + var/destination_x + /// Custom destination for mirages + var/destination_y /// Returns a list of every turf state considered "broken". /// Will be randomly chosen if a turf breaks at runtime. @@ -107,6 +113,55 @@ . = ..() update_visuals() +//ATTACK GHOST IGNORING PARENT RETURN VALUE +/turf/open/attack_ghost(mob/dead/observer/user) + . = ..() + if(destination_z) + var/turf/T = locate(destination_x, destination_y, destination_z) + user.forceMove(T) + +/turf/open/proc/CanBuildHere() + if(destination_z) + return FALSE + return TRUE + +/turf/open/is_transition_turf() + if(destination_x || destination_y || destination_z) + return TRUE + +/turf/open/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + . = ..() + if(!arrived || src != arrived.loc) + return + + if(!destination_z || !destination_x || !destination_y || arrived.pulledby || arrived.currently_z_moving) + return + + var/tx = destination_x + var/ty = destination_y + var/turf/DT = locate(tx, ty, destination_z) + var/itercount = 0 + while(DT.density || istype(DT.loc,/area/shuttle)) // Extend towards the center of the map, trying to look for a better place to arrive + if (itercount++ >= 100) + log_game("SPACE Z-TRANSIT ERROR: Could not find a safe place to land [arrived] within 100 iterations.") + break + if (tx < 128) + tx++ + else + tx-- + if (ty < 128) + ty++ + else + ty-- + DT = locate(tx, ty, destination_z) + + arrived.zMove(null, DT, ZMOVE_ALLOW_BUCKLED) + + var/atom/movable/current_pull = arrived.pulling + while (current_pull) + var/turf/target_turf = get_step(current_pull.pulledby.loc, REVERSE_DIR(current_pull.pulledby.dir)) || current_pull.pulledby.loc + current_pull.zMove(null, target_turf, ZMOVE_ALLOW_BUCKLED) + current_pull = current_pull.pulling /** * Replace an open turf with another open turf while avoiding the pitfall of replacing plating with a floor tile, leaving a hole underneath. * This replaces the current turf if it is plating and is passed plating, is tile and is passed tile. diff --git a/code/game/turfs/open/floor/iron_floor.dm b/code/game/turfs/open/floor/iron_floor.dm index 904cefb4b15c..978a9ab0fdf5 100644 --- a/code/game/turfs/open/floor/iron_floor.dm +++ b/code/game/turfs/open/floor/iron_floor.dm @@ -420,10 +420,30 @@ /turf/open/floor/iron/freezer - icon_state = "freezerfloor" - base_icon_state = "freezerfloor" + icon_state = "freezer" + base_icon_state = "freezer" floor_tile = /obj/item/stack/tile/iron/freezer +/turf/open/floor/iron/freezer/edge + icon_state = "freezer_edge" + base_icon_state = "freezer_edge" + floor_tile = /obj/item/stack/tile/iron/freezer/edge + +/turf/open/floor/iron/freezer/half + icon_state = "freezer_half" + base_icon_state = "freezer_half" + floor_tile = /obj/item/stack/tile/iron/freezer/half + +/turf/open/floor/iron/freezer/corner + icon_state = "freezer_corner" + base_icon_state = "freezer_corner" + floor_tile = /obj/item/stack/tile/iron/freezer/corner + +/turf/open/floor/iron/freezer/large + icon_state = "freezer_large" + base_icon_state = "freezer_large" + floor_tile = /obj/item/stack/tile/iron/freezer/large + /turf/open/floor/iron/freezer/airless initial_gas_mix = AIRLESS_ATMOS @@ -445,8 +465,8 @@ floor_tile = /obj/item/stack/tile/iron/dark/textured /turf/open/floor/iron/kitchen_coldroom/freezerfloor - icon_state = "freezerfloor" - base_icon_state = "freezerfloor" + icon_state = "freezer" + base_icon_state = "freezer" floor_tile = /obj/item/stack/tile/iron/freezer /turf/open/floor/iron/grimy diff --git a/code/game/turfs/open/openspace.dm b/code/game/turfs/open/openspace.dm index 5d6dc0fbe755..d2149766faa1 100644 --- a/code/game/turfs/open/openspace.dm +++ b/code/game/turfs/open/openspace.dm @@ -110,7 +110,7 @@ /turf/open/openspace/proc/CanCoverUp() return can_cover_up -/turf/open/openspace/proc/CanBuildHere() +/turf/open/openspace/CanBuildHere() return can_build_on /turf/open/openspace/attackby(obj/item/attacking_item, mob/user, list/modifiers) @@ -132,9 +132,6 @@ return ..() /turf/open/openspace/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - if(!CanBuildHere()) - return FALSE - if(the_rcd.mode == RCD_TURF && the_rcd.rcd_design_path == /turf/open/floor/plating/rcd) var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) if(L) diff --git a/code/game/turfs/open/space/space.dm b/code/game/turfs/open/space/space.dm index 754793963294..e20137240dbc 100644 --- a/code/game/turfs/open/space/space.dm +++ b/code/game/turfs/open/space/space.dm @@ -44,7 +44,7 @@ GLOBAL_LIST_EMPTY(starlight) /turf/open/space icon = 'icons/turf/space.dmi' - icon_state = "space" + MAP_SWITCH(icon_state = "space", icon_state = "space_map") name = "\proper space" overfloor_placed = FALSE underfloor_accessibility = UNDERFLOOR_INTERACTABLE @@ -54,10 +54,6 @@ GLOBAL_LIST_EMPTY(starlight) thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT heat_capacity = 700000 - var/destination_z - var/destination_x - var/destination_y - var/static/datum/gas_mixture/immutable/space/space_gas = new // We do NOT want atmos adjacent turfs init_air = FALSE @@ -75,6 +71,9 @@ GLOBAL_LIST_EMPTY(starlight) force_no_gravity = TRUE +/turf/open/space/basic + MAP_SWITCH(icon_state = "space", icon_state = "space_basic_map") + /turf/open/space/basic/New() //Do not convert to Initialize SHOULD_CALL_PARENT(FALSE) //This is used to optimize the map loader @@ -84,12 +83,6 @@ GLOBAL_LIST_EMPTY(starlight) GLOB.starlight -= src return ..() -//ATTACK GHOST IGNORING PARENT RETURN VALUE -/turf/open/space/attack_ghost(mob/dead/observer/user) - if(destination_z) - var/turf/T = locate(destination_x, destination_y, destination_z) - user.forceMove(T) - /turf/open/space/TakeTemperature(temp) /turf/open/space/RemoveLattice() @@ -129,11 +122,6 @@ GLOBAL_LIST_EMPTY(starlight) /turf/open/space/attack_paw(mob/user, list/modifiers) return attack_hand(user, modifiers) -/turf/open/space/proc/CanBuildHere() - if(destination_z) - return FALSE - return TRUE - /turf/open/space/handle_slip() return @@ -146,40 +134,6 @@ GLOBAL_LIST_EMPTY(starlight) else if(ismetaltile(attacking_item)) build_with_floor_tiles(attacking_item, user) - -/turf/open/space/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) - . = ..() - if(!arrived || src != arrived.loc) - return - - if(destination_z && destination_x && destination_y && !arrived.pulledby && !arrived.currently_z_moving) - var/tx = destination_x - var/ty = destination_y - var/turf/DT = locate(tx, ty, destination_z) - var/itercount = 0 - while(DT.density || istype(DT.loc,/area/shuttle)) // Extend towards the center of the map, trying to look for a better place to arrive - if (itercount++ >= 100) - log_game("SPACE Z-TRANSIT ERROR: Could not find a safe place to land [arrived] within 100 iterations.") - break - if (tx < 128) - tx++ - else - tx-- - if (ty < 128) - ty++ - else - ty-- - DT = locate(tx, ty, destination_z) - - arrived.zMove(null, DT, ZMOVE_ALLOW_BUCKLED) - - var/atom/movable/current_pull = arrived.pulling - while (current_pull) - var/turf/target_turf = get_step(current_pull.pulledby.loc, REVERSE_DIR(current_pull.pulledby.dir)) || current_pull.pulledby.loc - current_pull.zMove(null, target_turf, ZMOVE_ALLOW_BUCKLED) - current_pull = current_pull.pulling - - /turf/open/space/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) return @@ -191,11 +145,6 @@ GLOBAL_LIST_EMPTY(starlight) return TRUE return FALSE -/turf/open/space/is_transition_turf() - if(destination_x || destination_y || destination_z) - return TRUE - - /turf/open/space/acid_act(acidpwr, acid_volume) return FALSE @@ -205,9 +154,6 @@ GLOBAL_LIST_EMPTY(starlight) /turf/open/space/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - if(!CanBuildHere()) - return FALSE - if(the_rcd.mode == RCD_TURF) if(the_rcd.rcd_design_path == /turf/open/floor/plating/rcd) var/obj/structure/lattice/lattice = locate(/obj/structure/lattice, src) diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm index 748cdeef85ee..cabdd3fd434d 100644 --- a/code/game/turfs/open/water.dm +++ b/code/game/turfs/open/water.dm @@ -202,6 +202,8 @@ ///Registers the signals from the immerse element and calls dip_in if the movable has the required trait. /turf/open/water/hot_spring/proc/enter_hot_spring(atom/movable/movable) + if(is_type_in_typecache(movable, GLOB.immerse_ignored_movable)) // So we don't immerse weird things like turf decals/effects, projectiles, etc + return FALSE RegisterSignal(movable, SIGNAL_ADDTRAIT(TRAIT_IMMERSED), PROC_REF(dip_in)) if(isliving(movable)) //so far, exiting a hot spring only has effects on living mobs. RegisterSignal(movable, SIGNAL_REMOVETRAIT(TRAIT_IMMERSED), PROC_REF(dip_out)) diff --git a/code/modules/admin/admin_pda_message.dm b/code/modules/admin/admin_pda_message.dm index bee5a5846342..0bf20554e77c 100644 --- a/code/modules/admin/admin_pda_message.dm +++ b/code/modules/admin/admin_pda_message.dm @@ -29,8 +29,7 @@ ADMIN_VERB(message_pda, R_ADMIN, "PDA Message", "Send a message to a user's PDA. /datum/admin_pda_panel/ui_static_data(mob/user) var/list/data = list() var/list/available_messengers = list() - for(var/messenger_ref in get_messengers_sorted_by_name()) - var/datum/computer_file/program/messenger/messenger = GLOB.pda_messengers[messenger_ref] + for(var/datum/computer_file/program/messenger/messenger as anything in GLOB.pda_messengers_by_name) available_messengers[REF(messenger)] = list( ref = REF(messenger), username = get_messenger_name(messenger), @@ -55,8 +54,7 @@ ADMIN_VERB(message_pda, R_ADMIN, "PDA Message", "Send a message to a user's PDA. if(!spam && (ref in GLOB.pda_messengers)) targets += GLOB.pda_messengers[ref] else - for(var/messenger_ref in get_messengers_sorted_by_name()) - var/datum/computer_file/program/messenger/messenger = GLOB.pda_messengers[messenger_ref] + for(var/datum/computer_file/program/messenger/messenger as anything in GLOB.pda_messengers_by_name) if(messenger.invisible && !params["include_invisible"]) continue targets += messenger diff --git a/code/modules/admin/verbs/admin_newscaster.dm b/code/modules/admin/verbs/admin_newscaster.dm index d199d31e9b9a..e300150659b1 100644 --- a/code/modules/admin/verbs/admin_newscaster.dm +++ b/code/modules/admin/verbs/admin_newscaster.dm @@ -86,15 +86,15 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo "author" = channel.author, "censored" = channel.censored, "locked" = channel.locked, - "ID" = channel.channel_ID, + "ID" = channel.channel_id, )) if(current_channel) for(var/datum/feed_message/feed_message as anything in current_channel.messages) - var/photo_ID = null + var/photo_id = null var/list/comment_list if(feed_message.img) - user << browse_rsc(feed_message.img, "tmp_photo[feed_message.message_ID].png") - photo_ID = "tmp_photo[feed_message.message_ID].png" + user << browse_rsc(feed_message.img, "tmp_photo[feed_message.message_id].png") + photo_id = "tmp_photo[feed_message.message_id].png" for(var/datum/feed_comment/comment_message as anything in feed_message.comments) comment_list += list(list( "auth" = comment_message.author, @@ -105,16 +105,16 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo "auth" = feed_message.author, "body" = feed_message.body, "time" = feed_message.time_stamp, - "channel_num" = feed_message.parent_ID, + "channel_num" = feed_message.parent_id, "censored_message" = feed_message.body_censor, "censored_author" = feed_message.author_censor, - "ID" = feed_message.message_ID, - "photo" = photo_ID, + "ID" = feed_message.message_id, + "photo" = photo_id, "comments" = comment_list )) - data["viewing_channel"] = current_channel?.channel_ID + data["viewing_channel"] = current_channel?.channel_id //Here we display all the information about the current channel. data["channelName"] = current_channel?.channel_name data["channelAuthor"] = current_channel?.author @@ -141,19 +141,20 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo switch(action) if("setChannel") - var/prototype_channel = params["channel"] - if(isnull(prototype_channel)) + var/selected_channel_id = params["channel"] + if(isnull(selected_channel_id)) return TRUE - for(var/datum/feed_channel/potential_channel as anything in GLOB.news_network.network_channels) - if(prototype_channel == potential_channel.channel_ID) - current_channel = potential_channel + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_id["[selected_channel_id]"] + if(isnull(potential_channel)) + return TRUE + current_channel = potential_channel if("createStory") if(!current_channel) to_chat(usr, "select a channel first!") return TRUE - var/prototype_channel = params["current"] - create_story(channel_name = prototype_channel) + var/current_channel_id = params["current"] + create_story(channel_id = current_channel_id) if("togglePhoto") toggle_photo() @@ -189,23 +190,25 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo if("storyCensor") var/questionable_message = params["messageID"] for(var/datum/feed_message/iterated_feed_message as anything in current_channel.messages) - if(iterated_feed_message.message_ID == questionable_message) + if(iterated_feed_message.message_id == questionable_message) iterated_feed_message.toggle_censor_body() break if("author_censor") var/questionable_message = params["messageID"] for(var/datum/feed_message/iterated_feed_message in current_channel.messages) - if(iterated_feed_message.message_ID == questionable_message) + if(iterated_feed_message.message_id == questionable_message) iterated_feed_message.toggle_censor_author() break if("channelDNotice") - var/prototype_channel = (params["channel"]) - for(var/datum/feed_channel/potential_channel in GLOB.news_network.network_channels) - if(prototype_channel == potential_channel.channel_ID) - current_channel = potential_channel - break + var/selected_channel_id = (params["channel"]) + if(isnull(selected_channel_id)) + return TRUE + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_id["[selected_channel_id]"] + if(isnull(potential_channel)) + return TRUE + current_channel = potential_channel current_channel.toggle_censor_D_class() if("startComment") @@ -214,7 +217,7 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo if(!commentable_message) return TRUE for(var/datum/feed_message/iterated_feed_message as anything in current_channel.messages) - if(iterated_feed_message.message_ID == commentable_message) + if(iterated_feed_message.message_id == commentable_message) current_message = iterated_feed_message return TRUE @@ -284,10 +287,10 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo /datum/newspanel/proc/create_channel(channel_locked) if(!channel_name) return - for(var/datum/feed_channel/iterated_feed_channel as anything in GLOB.news_network.network_channels) - if(iterated_feed_channel.channel_name == channel_name) - tgui_alert(usr, "ERROR: Feed channel with that name already exists on the Network.", list("Okay")) - return TRUE + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_name[channel_name] + if(potential_channel) + tgui_alert(usr, "ERROR: Feed channel with that name already exists on the Network.", list("Okay")) + return TRUE if(!channel_desc) return TRUE if(isnull(channel_locked)) @@ -334,11 +337,12 @@ ADMIN_VERB(access_news_network, R_ADMIN, "Access Newscaster Network", "Allows yo * Verifies that the message is being written to a real feed_channel, then provides a text input for the feed story to be written into. * Finally, it submits the message to the network, is logged globally, and clears all message-specific variables from the machine. */ -/datum/newspanel/proc/create_story(channel_name) - for(var/datum/feed_channel/potential_channel as anything in GLOB.news_network.network_channels) - if(channel_name == potential_channel.channel_ID) - current_channel = potential_channel - break +/datum/newspanel/proc/create_story(channel_id) + var/datum/feed_channel/potential_channel = GLOB.news_network.network_channels_by_id["[channel_id]"] + if(isnull(potential_channel)) + return + current_channel = potential_channel + var/temp_message = tgui_input_text(usr, "Write your Feed story", "Network Channel Handler", feed_channel_message, max_length = MAX_BROADCAST_LEN, multiline = TRUE) if(length(temp_message) <= 1) return TRUE diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c0abfcd88cca..a981a5c3e74c 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -139,7 +139,7 @@ ADMIN_VERB(cmd_admin_grantfullaccess, R_DEBUG, "Grant Full Access", "Grant full if(worn) if(istype(worn, /obj/item/modular_computer)) var/obj/item/modular_computer/worn_computer = worn - worn_computer.InsertID(id, H) + worn_computer.insert_id(id, H) else if(istype(worn, /obj/item/storage/wallet)) var/obj/item/storage/wallet/W = worn @@ -1031,3 +1031,21 @@ ADMIN_VERB(count_instances, R_DEBUG, "Count Atoms/Datums", "Count how many atom . = list() CRASH("count_datums not supported on OpenDream") #endif + +ADMIN_VERB_VISIBILITY(export_save_to_dev_preference, ADMIN_VERB_VISIBLITY_FLAG_LOCALHOST) +ADMIN_VERB(export_save_to_dev_preference, R_DEBUG, "Export Save as Dev Preferences", "Exports your savefile to be used by any guests that connect to your localost.", ADMIN_CATEGORY_SERVER) + if(!user.is_localhost()) + tgui_alert(user, "You shouldn't be using this right now!", "Export Failed", list("OK")) + log_admin("[key_name(user)] attempted to export preferences to [DEV_PREFS_PATH] - this is normally locked to localhost only!") + stack_trace("Export Save as Dev Preferences was called by a non-localhost user!") + return + if(is_guest_key(user.key)) + tgui_alert(user, "Guests don't have preferences to export.", "Export Failed", list("OK")) + return + var/datum/preferences/user_prefs = user.prefs + var/datum/json_savefile/dev_save = new(DEV_PREFS_PATH) + user_prefs.save_preferences() + user_prefs.savefile.copy_to_savefile(dev_save) + dev_save.save() + tgui_alert(user, "Exported preferences to [DEV_PREFS_PATH]. \ + Next time you localhost as a guest it will use this savefile as-is.", "Export Complete", list("OK thanks")) diff --git a/code/modules/admin/verbs/light_debug.dm b/code/modules/admin/verbs/light_debug.dm index f9758de0bd04..04026573b26e 100644 --- a/code/modules/admin/verbs/light_debug.dm +++ b/code/modules/admin/verbs/light_debug.dm @@ -357,7 +357,7 @@ GLOBAL_LIST_EMPTY(light_debugged_atoms) SIGNAL_HANDLER Grant(new_mob) -/datum/action/spawn_light/Trigger(trigger_flags) +/datum/action/spawn_light/Trigger(mob/clicker, trigger_flags) . = ..() ui_interact(usr) diff --git a/code/modules/admin/verbs/secrets.dm b/code/modules/admin/verbs/secrets.dm index f842d20cd028..ab0f54b6f25d 100644 --- a/code/modules/admin/verbs/secrets.dm +++ b/code/modules/admin/verbs/secrets.dm @@ -94,12 +94,12 @@ ADMIN_VERB(secrets, R_NONE, "Secrets", "Abuse harder than you ever have before w //Buttons for helpful stuff. This is where people land in the tgui if("clear_virus") - var/choice = tgui_alert(usr, "Are you sure you want to cure all disease?",, list("Yes", "Cancel")) + var/choice = tgui_alert(usr, "Are you sure you want to cure all disease? This will also grant immunity for that disease",, list("Yes", "Cancel")) if(choice == "Yes") message_admins("[key_name_admin(holder)] has cured all diseases.") for(var/thing in SSdisease.active_diseases) var/datum/disease/D = thing - D.cure(0) + D.cure() if("list_bombers") holder.holder.list_bombers() diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 17cc44245545..3d4cdc4e2366 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -123,8 +123,8 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() - if(. || isobserver(ui.user)) - return + if(. || ui.user != owner.current) + return TRUE switch(action) if("change_objectives") submit_player_objective() @@ -155,12 +155,12 @@ GLOBAL_LIST_EMPTY(antagonists) . = ..() name = "Open [target] Information:" -/datum/action/antag_info/Trigger(trigger_flags) +/datum/action/antag_info/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return - target.ui_interact(usr || owner) + target.ui_interact(clicker || owner) /datum/action/antag_info/IsAvailable(feedback = FALSE) if(!target) diff --git a/code/modules/antagonists/abductor/equipment/abduction_surgery.dm b/code/modules/antagonists/abductor/equipment/abduction_surgery.dm index 790dd0f8e535..07be8836f970 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_surgery.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_surgery.dm @@ -27,7 +27,7 @@ /datum/surgery_step/extract_organ name = "remove heart" accept_hand = 1 - time = 32 + time = 3.2 SECONDS var/obj/item/organ/IC = null var/list/organ_types = list(/obj/item/organ/heart) @@ -51,7 +51,7 @@ /datum/surgery_step/gland_insert name = "insert gland" implements = list(/obj/item/organ/heart/gland = 100) - time = 32 + time = 3.2 SECONDS /datum/surgery_step/gland_insert/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) user.visible_message(span_notice("[user] starts to insert [tool] into [target]."), span_notice("You start to insert [tool] into [target]...")) diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm index 365ab92a160d..1ab9db5898be 100644 --- a/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm +++ b/code/modules/antagonists/abductor/equipment/gear/abductor_clothing.dm @@ -87,15 +87,19 @@ if(disguise == null) return stealth_active = TRUE - if(ishuman(loc)) - var/mob/living/carbon/human/wearer = loc - new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(wearer), wearer.dir) - RegisterSignal(wearer, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(return_disguise_name)) - wearer.icon = disguise.icon - wearer.icon_state = disguise.icon_state - wearer.cut_overlays() - wearer.add_overlay(disguise.overlays) - wearer.update_held_items() + if(!ishuman(loc)) + return + var/mob/living/carbon/human/wearer = loc + new /obj/effect/temp_visual/dir_setting/ninja/cloak(get_turf(wearer), wearer.dir) + RegisterSignal(wearer, COMSIG_HUMAN_GET_VISIBLE_NAME, PROC_REF(return_disguise_name)) + // Reassert disguise after z-level transitions complete + RegisterSignal(wearer, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(on_z_changed)) + wearer.icon = disguise.icon + wearer.icon_state = disguise.icon_state + wearer.cut_overlays() + wearer.add_overlay(disguise.overlays) + wearer.update_held_items() + wearer.update_visible_name() /obj/item/clothing/suit/armor/abductor/vest/proc/return_disguise_name(mob/living/carbon/human/source, list/identity) SIGNAL_HANDLER @@ -108,12 +112,31 @@ if(!stealth_active) return stealth_active = FALSE - if(ishuman(loc)) - var/mob/living/carbon/human/wearer = loc - new /obj/effect/temp_visual/dir_setting/ninja(get_turf(wearer), wearer.dir) - UnregisterSignal(wearer, COMSIG_HUMAN_GET_VISIBLE_NAME) - wearer.cut_overlays() - wearer.regenerate_icons() + if(!ishuman(loc)) + return + var/mob/living/carbon/human/wearer = loc + new /obj/effect/temp_visual/dir_setting/ninja(get_turf(wearer), wearer.dir) + UnregisterSignal(wearer, COMSIG_HUMAN_GET_VISIBLE_NAME) + UnregisterSignal(wearer, COMSIG_MOVABLE_Z_CHANGED) + wearer.regenerate_icons() + wearer.update_visible_name() + +/// After a z-level change, reapply the disguise overlays to override any rebuilt base overlays +/obj/item/clothing/suit/armor/abductor/vest/proc/on_z_changed(datum/source, turf/old_turf, turf/new_turf, same_z_layer) + SIGNAL_HANDLER + if(!stealth_active || !ishuman(loc) || disguise == null) + return + addtimer(CALLBACK(src, PROC_REF(reassert_disguise)), 0) + +/obj/item/clothing/suit/armor/abductor/vest/proc/reassert_disguise() + if(!stealth_active || !ishuman(loc) || disguise == null) + return + var/mob/living/carbon/human/wearer = loc + wearer.icon = disguise.icon + wearer.icon_state = disguise.icon_state + wearer.cut_overlays() + wearer.add_overlay(disguise.overlays) + wearer.update_visible_name() /obj/item/clothing/suit/armor/abductor/vest/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK, damage_type = BRUTE) DeactivateStealth() diff --git a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm index 57d3e2a36d73..90d2d5a90538 100644 --- a/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm +++ b/code/modules/antagonists/abductor/equipment/gear/abductor_items.dm @@ -520,7 +520,7 @@ Return to step 11 of normal process."} /obj/item/radio/headset/abductor/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) make_syndie() // Stops humans from disassembling abductor headsets. diff --git a/code/modules/antagonists/blob/overmind.dm b/code/modules/antagonists/blob/overmind.dm index ad0a89ee8023..582feac39922 100644 --- a/code/modules/antagonists/blob/overmind.dm +++ b/code/modules/antagonists/blob/overmind.dm @@ -321,10 +321,11 @@ GLOBAL_LIST_EMPTY(blob_nodes) if (!message) return - src.log_talk(message, LOG_SAY) - - var/message_a = say_quote(message) - var/rendered = span_big(span_blob("\[Blob Telepathy\] [name]([blobstrain.name]) [message_a]")) + var/list/message_mods = list() + var/adjusted_message = check_for_custom_say_emote(message, message_mods) + log_sayverb_talk(message, message_mods, tag = "blob hivemind telepathy") + var/messagepart = generate_messagepart(adjusted_message, message_mods = message_mods) + var/rendered = span_big(span_blob("\[Blob Telepathy\] [name]([blobstrain.name]) [messagepart]")) relay_to_list_and_observers(rendered, GLOB.blob_telepathy_mobs, src, MESSAGE_TYPE_RADIO) /mob/eye/blob/blob_act(obj/structure/blob/B) diff --git a/code/modules/antagonists/changeling/cellular_emporium.dm b/code/modules/antagonists/changeling/cellular_emporium.dm index 754d2343d5cd..4641f859bee6 100644 --- a/code/modules/antagonists/changeling/cellular_emporium.dm +++ b/code/modules/antagonists/changeling/cellular_emporium.dm @@ -99,7 +99,7 @@ stack_trace("cellular_emporium action created with non-emporium.") qdel(src) -/datum/action/cellular_emporium/Trigger(trigger_flags) +/datum/action/cellular_emporium/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index d06d8fe91735..85fa4b537806 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -44,7 +44,7 @@ the same goes for Remove(). if you override Remove(), call parent or else your p /datum/action/changeling/proc/on_purchase(mob/user, is_respec) Grant(user)//how powers are added rather than the checks in mob.dm -/datum/action/changeling/Trigger(trigger_flags) +/datum/action/changeling/Trigger(mob/clicker, trigger_flags) var/mob/user = owner if(!user || !IS_CHANGELING(user)) return diff --git a/code/modules/antagonists/changeling/powers/mimic_voice.dm b/code/modules/antagonists/changeling/powers/mimic_voice.dm index 9caf0abb450f..99f543045804 100644 --- a/code/modules/antagonists/changeling/powers/mimic_voice.dm +++ b/code/modules/antagonists/changeling/powers/mimic_voice.dm @@ -2,7 +2,7 @@ name = "Mimic Voice" desc = "We shape our vocal glands to sound like a desired voice. Maintaining this power slows chemical production." button_icon_state = "mimic_voice" - helptext = "Will turn your voice into the name that you enter. We must constantly expend chemicals to maintain our form like this." + helptext = "Will turn our voice into the name that we enter. We must constantly expend chemicals to maintain our form like this." chemical_cost = 0//constant chemical drain hardcoded dna_cost = 1 req_human = TRUE diff --git a/code/modules/antagonists/changeling/powers/mmi_talk.dm b/code/modules/antagonists/changeling/powers/mmi_talk.dm index 59048463e1e4..47c748f6f18b 100644 --- a/code/modules/antagonists/changeling/powers/mmi_talk.dm +++ b/code/modules/antagonists/changeling/powers/mmi_talk.dm @@ -2,7 +2,7 @@ name = "MMI Talk" desc = "Our decoy brain has been implanted into a Man-Machine Interface. \ In order to maintain our secrecy, we can speak through the decoy as if a normal brain. \ - The decoy brain will relay speech it hears to you in purple." + The decoy brain will relay speech it hears to us in purple." button_icon = 'icons/obj/devices/assemblies.dmi' button_icon_state = "mmi_off" dna_cost = CHANGELING_POWER_UNOBTAINABLE diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index bc51b4969080..028ba5aaa96d 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -708,7 +708,7 @@ button_icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' button_icon_state = "legion_head" cooldown_time = 15 SECONDS - spawn_type = /mob/living/basic/legion_brood + spawn_type = /mob/living/basic/mining/legion_brood spawn_count = 4 /datum/action/cooldown/hivehead_spawn_minions/legion/do_tell() @@ -716,6 +716,6 @@ playsound(owner, 'sound/effects/blob/attackblob.ogg', 60, TRUE) /datum/action/cooldown/hivehead_spawn_minions/legion/minion_additional_changes(mob/living/basic/minion) - var/mob/living/basic/legion_brood/brood = minion + var/mob/living/basic/mining/legion_brood/brood = minion if (istype(brood)) brood.assign_creator(owner, FALSE) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 739eb3ec2eba..f6bc841e11c0 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -2,7 +2,7 @@ name = "Tiny Prick" desc = "Stabby stabby" -/datum/action/changeling/sting/Trigger(trigger_flags) +/datum/action/changeling/sting/Trigger(mob/clicker, trigger_flags) var/mob/user = owner if(!user || !user.mind) return @@ -166,7 +166,7 @@ var/obj/item/held = target.get_active_held_item() if(held && !target.dropItemToGround(held)) - to_chat(user, span_warning("[held] is stuck to [target.p_their()] hand, you cannot grow a false armblade over it!")) + to_chat(user, span_warning("[held] is stuck to [target.p_their()] hand, we cannot grow a false armblade over it!")) return ..() @@ -193,7 +193,7 @@ /datum/action/changeling/sting/extract_dna name = "Extract DNA Sting" desc = "We stealthily sting a target and extract their DNA. Costs 25 chemicals." - helptext = "Will give you the DNA of your target, allowing you to transform into them." + helptext = "Will give us the DNA of our target, allowing us to transform into them. This will render us unable to absorb their body fully later." button_icon_state = "sting_extract" chemical_cost = 25 dna_cost = 0 diff --git a/code/modules/antagonists/changeling/powers/void_adaption.dm b/code/modules/antagonists/changeling/powers/void_adaption.dm index eb21fef598cc..f066b24b5da3 100644 --- a/code/modules/antagonists/changeling/powers/void_adaption.dm +++ b/code/modules/antagonists/changeling/powers/void_adaption.dm @@ -1,9 +1,9 @@ /datum/action/changeling/void_adaption name = "Void Adaption" desc = "We prepare our cells to resist the hostile environment outside of the station. We may freely travel wherever we wish." - helptext = "This ability is passive, and will automatically protect you in situations of extreme cold or vacuum, \ - as well as removing your need to breathe oxygen, although you will still be affected by hazardous gases. \ - While it is actively protecting you from temperature or pressure it reduces your chemical regeneration rate." + helptext = "This ability is passive, and will automatically protect us in situations of extreme cold or vacuum, \ + as well as removing our need to breathe oxygen, although we will still be affected by hazardous gases. \ + While it is actively protecting us from temperature or pressure it reduces our chemical regeneration rate." owner_has_control = FALSE dna_cost = 2 diff --git a/code/modules/antagonists/clown_ops/clown_weapons.dm b/code/modules/antagonists/clown_ops/clown_weapons.dm index c66df8215ca2..cba33a918026 100644 --- a/code/modules/antagonists/clown_ops/clown_weapons.dm +++ b/code/modules/antagonists/clown_ops/clown_weapons.dm @@ -19,7 +19,7 @@ slowdown = SHOES_SLOWDOWN body_parts_covered = FEET|LEGS armor_type = /datum/armor/clown_shoes_combat - strip_delay = 70 + strip_delay = 7 SECONDS resistance_flags = NONE /datum/armor/clown_shoes_combat @@ -47,7 +47,7 @@ desc = "The culmination of years of clown combat research, these shoes leave a trail of chaos in their wake. They will slowly recharge themselves over time, or can be manually charged with bananium." slowdown = SHOES_SLOWDOWN armor_type = /datum/armor/banana_shoes_combat - strip_delay = 70 + strip_delay = 7 SECONDS resistance_flags = NONE always_noslip = TRUE body_parts_covered = FEET|LEGS diff --git a/code/modules/antagonists/cult/cult_armor.dm b/code/modules/antagonists/cult/cult_armor.dm index 939e5bd2c809..4f6aae945be4 100644 --- a/code/modules/antagonists/cult/cult_armor.dm +++ b/code/modules/antagonists/cult/cult_armor.dm @@ -246,7 +246,6 @@ actions_types = null color_cutoffs = list(40, 0, 0) //red glass_colour_type = null - forced_glass_color = FALSE /obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot) . = ..() diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 0b638295be7d..799e54f2c488 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -406,29 +406,36 @@ structure_check() searches for nearby cultist structures required for the invoca /// Tries to convert a null rod over the rune to a cult sword /obj/effect/rune/convert/proc/try_spawn_sword() - for(var/obj/item/nullrod/rod in loc) - if(rod.anchored || (rod.resistance_flags & INDESTRUCTIBLE)) + for(var/obj/item/potential_rod in loc) + if(!HAS_TRAIT(potential_rod, TRAIT_NULLROD_ITEM)) continue - var/num_slain = LAZYLEN(rod.cultists_slain) - var/displayed_message = "[rod] glows an unholy red and begins to transform..." - if(GET_ATOM_BLOOD_DNA_LENGTH(rod)) - displayed_message += " The blood of [num_slain] fallen cultist[num_slain == 1 ? "":"s"] is absorbed into [rod]!" + if(potential_rod.anchored || (potential_rod.resistance_flags & INDESTRUCTIBLE)) + continue + + var/num_slain = 0 + if (istype(potential_rod, /obj/item/nullrod)) + var/obj/item/nullrod/actual_rod = potential_rod + num_slain = LAZYLEN(actual_rod.cultists_slain) + + var/displayed_message = "[potential_rod] glows an unholy red and begins to transform..." + if(num_slain && GET_ATOM_BLOOD_DNA_LENGTH(potential_rod)) + displayed_message += " The blood of [num_slain] fallen cultist[num_slain == 1 ? "":"s"] is absorbed into [potential_rod]!" - rod.visible_message(span_cult_italic(displayed_message)) + potential_rod.visible_message(span_cult_italic(displayed_message)) switch(num_slain) if(0) - animate_spawn_sword(rod, /obj/item/melee/cultblade/dagger) + animate_spawn_sword(potential_rod, /obj/item/melee/cultblade/dagger) if(1) - animate_spawn_sword(rod, /obj/item/melee/cultblade) + animate_spawn_sword(potential_rod, /obj/item/melee/cultblade) else - animate_spawn_sword(rod, /obj/item/melee/cultblade/halberd) + animate_spawn_sword(potential_rod, /obj/item/melee/cultblade/halberd) return TRUE return FALSE /// Does an animation of a null rod transforming into a cult sword -/obj/effect/rune/convert/proc/animate_spawn_sword(obj/item/nullrod/former_rod, new_blade_typepath) +/obj/effect/rune/convert/proc/animate_spawn_sword(obj/item/former_rod, new_blade_typepath) playsound(src, 'sound/effects/magic.ogg', 33, vary = TRUE, extrarange = SILENCED_SOUND_EXTRARANGE, frequency = 0.66) former_rod.anchored = TRUE former_rod.Shake() diff --git a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm index 4efe29b1048c..34d10b057890 100644 --- a/code/modules/antagonists/fugitive/hunters/hunter_gear.dm +++ b/code/modules/antagonists/fugitive/hunters/hunter_gear.dm @@ -218,7 +218,7 @@ /obj/item/radio/headset/psyker/Initialize(mapload) . = ..() - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) /obj/item/radio/headset/psyker/equipped(mob/living/user, slot) . = ..() diff --git a/code/modules/antagonists/heretic/heretic_living_heart.dm b/code/modules/antagonists/heretic/heretic_living_heart.dm index 443ea0603fd1..f8f18a8188e2 100644 --- a/code/modules/antagonists/heretic/heretic_living_heart.dm +++ b/code/modules/antagonists/heretic/heretic_living_heart.dm @@ -101,7 +101,7 @@ return TRUE -/datum/action/cooldown/track_target/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/track_target/Trigger(mob/clicker, trigger_flags, atom/target) right_clicked = !!(trigger_flags & TRIGGER_SECONDARY_ACTION) return ..() diff --git a/code/modules/antagonists/heretic/items/corrupted_organs.dm b/code/modules/antagonists/heretic/items/corrupted_organs.dm index 1035a006a9c6..5ffe055de80a 100644 --- a/code/modules/antagonists/heretic/items/corrupted_organs.dm +++ b/code/modules/antagonists/heretic/items/corrupted_organs.dm @@ -191,13 +191,14 @@ return ..() - /// Occasionally bombards you with spooky hands and lets everyone hear your pulse. /obj/item/organ/heart/corrupt name = "corrupt heart" desc = "What corruption is this spreading along with the blood?" beat_noise = "THE THUMPTHUMPTHUMPING OF THE CHISEL ON THE GLASS. OPEN THE FUTURE SHATTER THE-" organ_flags = parent_type::organ_flags | ORGAN_HAZARDOUS + cell_line = CELL_LINE_ORGAN_HEART_CURSED + cells_minimum = 2 //guarantees we always get sacred heart and corrupted heart cells /// How long until the next heart? COOLDOWN_DECLARE(hand_cooldown) diff --git a/code/modules/antagonists/heretic/items/hunter_rifle.dm b/code/modules/antagonists/heretic/items/hunter_rifle.dm index e7f8ba9ec6d7..43f55b8b77f6 100644 --- a/code/modules/antagonists/heretic/items/hunter_rifle.dm +++ b/code/modules/antagonists/heretic/items/hunter_rifle.dm @@ -24,9 +24,7 @@ name = "lionhunter rifle internal magazine" ammo_type = /obj/item/ammo_casing/strilka310/lionhunter caliber = CALIBER_STRILKA310 - armour_penetration = 100 max_ammo = 3 - multiload = TRUE /obj/item/ammo_casing/strilka310/lionhunter projectile_type = /obj/projectile/bullet/strilka310/lionhunter diff --git a/code/modules/antagonists/heretic/items/keyring.dm b/code/modules/antagonists/heretic/items/keyring.dm index 19ae1810507b..61dbef21dc19 100644 --- a/code/modules/antagonists/heretic/items/keyring.dm +++ b/code/modules/antagonists/heretic/items/keyring.dm @@ -139,7 +139,7 @@ trim = card.trim if(ishuman(loc)) var/mob/living/carbon/human/wearing = loc - wearing.sec_hud_set_ID() + wearing.update_ID_card() assignment = card.assignment registered_age = card.registered_age registered_name = card.registered_name diff --git a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm index 2f99e1fd556b..ef0b03911379 100644 --- a/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm +++ b/code/modules/antagonists/heretic/knowledge/sacrifice_knowledge/sacrifice_buff.dm @@ -22,6 +22,8 @@ /datum/status_effect/unholy_determination/on_apply() owner.add_traits(list(TRAIT_COAGULATING, TRAIT_NOCRITDAMAGE, TRAIT_NOSOFTCRIT), TRAIT_STATUS_EFFECT(id)) + if(owner.blood_volume < BLOOD_VOLUME_OKAY) + owner.blood_volume = BLOOD_VOLUME_OKAY return TRUE /datum/status_effect/unholy_determination/on_remove() diff --git a/code/modules/antagonists/heretic/magic/ash_ascension.dm b/code/modules/antagonists/heretic/magic/ash_ascension.dm index dcedaf03cecb..7dc39389a563 100644 --- a/code/modules/antagonists/heretic/magic/ash_ascension.dm +++ b/code/modules/antagonists/heretic/magic/ash_ascension.dm @@ -110,7 +110,7 @@ ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' school = SCHOOL_FORBIDDEN - cooldown_time = 300 + cooldown_time = 30 SECONDS invocation = "F'R." invocation_type = INVOCATION_WHISPER diff --git a/code/modules/antagonists/heretic/status_effects/buffs.dm b/code/modules/antagonists/heretic/status_effects/buffs.dm index 8f37d5ff298a..ab327817735a 100644 --- a/code/modules/antagonists/heretic/status_effects/buffs.dm +++ b/code/modules/antagonists/heretic/status_effects/buffs.dm @@ -35,7 +35,7 @@ button_icon = 'icons/obj/antags/eldritch.dmi' button_icon_state = "crucible_soul" -/datum/action/cancel_crucible_soul/Trigger(trigger_flags) +/datum/action/cancel_crucible_soul/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/antagonists/heretic/structures/carving_knife.dm b/code/modules/antagonists/heretic/structures/carving_knife.dm index 5b2f8743691b..289b1784c4d7 100644 --- a/code/modules/antagonists/heretic/structures/carving_knife.dm +++ b/code/modules/antagonists/heretic/structures/carving_knife.dm @@ -190,7 +190,7 @@ return ..() /obj/structure/trap/eldritch/item_interaction(mob/living/user, obj/item/tool, list/modifiers) - if(istype(tool, /obj/item/melee/rune_carver) || istype(tool, /obj/item/nullrod)) + if(istype(tool, /obj/item/melee/rune_carver) || HAS_TRAIT(tool, TRAIT_NULLROD_ITEM)) loc.balloon_alert(user, "carving dispelled") playsound(src, 'sound/items/sheath.ogg', 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE, ignore_walls = FALSE) qdel(src) diff --git a/code/modules/antagonists/malf_ai/malf_ai_modules.dm b/code/modules/antagonists/malf_ai/malf_ai_modules.dm index ba155b663a8d..029477f9fb14 100644 --- a/code/modules/antagonists/malf_ai/malf_ai_modules.dm +++ b/code/modules/antagonists/malf_ai/malf_ai_modules.dm @@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(malf_modules, subtypesof(/datum/ai_module/malf)) return FALSE . = ..() -/datum/action/innate/ai/Trigger(trigger_flags) +/datum/action/innate/ai/Trigger(mob/clicker, trigger_flags) . = ..() if(auto_use_uses) adjust_uses(-1) diff --git a/code/modules/antagonists/ninja/outfit.dm b/code/modules/antagonists/ninja/outfit.dm index 924943dce777..f91f660a3e8b 100644 --- a/code/modules/antagonists/ninja/outfit.dm +++ b/code/modules/antagonists/ninja/outfit.dm @@ -1,7 +1,7 @@ /datum/outfit/ninja name = "Space Ninja" uniform = /obj/item/clothing/under/syndicate/ninja - glasses = /obj/item/clothing/glasses/night/colorless + glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/ninja ears = /obj/item/radio/headset shoes = /obj/item/clothing/shoes/jackboots diff --git a/code/modules/antagonists/nukeop/outfits.dm b/code/modules/antagonists/nukeop/outfits.dm index 5be8f13f2fce..07f00f626db0 100644 --- a/code/modules/antagonists/nukeop/outfits.dm +++ b/code/modules/antagonists/nukeop/outfits.dm @@ -66,7 +66,7 @@ /datum/outfit/syndicate/full name = "Syndicate Operative - Full Kit" - glasses = /obj/item/clothing/glasses/night/colorless + glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/syndicate back = /obj/item/mod/control/pre_equipped/nuclear r_pocket = /obj/item/tank/internals/emergency_oxygen/engi diff --git a/code/modules/antagonists/revenant/haunted_item.dm b/code/modules/antagonists/revenant/haunted_item.dm index 642002976cb6..bd1cac77fb72 100644 --- a/code/modules/antagonists/revenant/haunted_item.dm +++ b/code/modules/antagonists/revenant/haunted_item.dm @@ -7,6 +7,8 @@ var/despawn_message /// List of types that, if they hit our item, we will instantly stop the haunting var/list/types_which_dispell_us + /// List of traits which allow items outside of types_which_dispell_us to also work on us + var/list/traits_which_dispell_us /datum/component/haunted_item/Initialize( // What color should the haunted item be glowing? By default the color's white (passed into the haunted element). @@ -25,6 +27,9 @@ throw_force_max = 15, // See the types_which_dispell_us list. By default / if null, this will become the default static list. list/types_which_dispell_us, + // List of traits which allow items outside of types_which_dispell_us to also work on us + // By default / if null will default to TRAIT_NULLROD_ITEM + list/traits_which_dispell_us, ) if(!isitem(parent)) @@ -62,7 +67,9 @@ haunted_item.throwforce = min(haunted_item.throwforce + throw_force_bonus, throw_force_max) var/static/list/default_dispell_types = list(/obj/item/nullrod, /obj/item/book/bible) + var/static/list/default_dispell_traits = list(TRAIT_NULLROD_ITEM) src.types_which_dispell_us = types_which_dispell_us || default_dispell_types + src.traits_which_dispell_us = traits_which_dispell_us || default_dispell_traits src.despawn_message = despawn_message /datum/component/haunted_item/Destroy(force) @@ -94,7 +101,14 @@ SIGNAL_HANDLER if(!is_type_in_list(attacking_item, types_which_dispell_us)) - return + var/has_trait = FALSE + for(var/dispell_trait in traits_which_dispell_us) + if(HAS_TRAIT(attacking_item, dispell_trait)) + has_trait = TRUE + break + + if(!has_trait) + return attacker.visible_message(span_warning("[attacker] dispells the ghostly energy from [source]!"), span_warning("You dispel the ghostly energy from [source]!")) clear_haunting() diff --git a/code/modules/antagonists/space_dragon/carp_rift.dm b/code/modules/antagonists/space_dragon/carp_rift.dm index 05d712254e8e..432fba6e7ea6 100644 --- a/code/modules/antagonists/space_dragon/carp_rift.dm +++ b/code/modules/antagonists/space_dragon/carp_rift.dm @@ -278,6 +278,21 @@ update_light() return TRUE +/obj/structure/carp_rift/attackby(obj/item/attacking_item, mob/user, list/modifiers, list/attack_modifiers) + if(HAS_TRAIT(attacking_item, TRAIT_TELEKINESIS_CONTROLLED)) + if(user) + to_chat(user, span_warning("The gravitational field of [src] interferes with the telekenetic control of [user], nullifying the hit!")) + return FALSE + . = ..() + +/obj/structure/carp_rift/hitby(atom/movable/hit_by, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + if(HAS_TRAIT(hit_by, TRAIT_TELEKINESIS_CONTROLLED)) + var/mob/thrower = throwingdatum.thrower.resolve() + if(thrower && ismob(thrower)) + to_chat(thrower, span_warning("The gravitational field of [src] interferes with the telekenetic control of [hit_by], nullifying the hit!")) + return + . = ..() + #undef CHARGE_ONGOING #undef CHARGE_FINALWARNING #undef CHARGE_COMPLETED diff --git a/code/modules/antagonists/spy/spy.dm b/code/modules/antagonists/spy/spy.dm index e39740bc1aab..d0297b9842c9 100644 --- a/code/modules/antagonists/spy/spy.dm +++ b/code/modules/antagonists/spy/spy.dm @@ -224,7 +224,7 @@ stack_trace("[type] created on invalid target [Target || "null"]") qdel(src) -/datum/action/backup_uplink/Trigger(trigger_flags) +/datum/action/backup_uplink/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index bee49757a18f..4d90d4aa53bf 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -63,13 +63,13 @@ qdel(src) return PROCESS_KILL -/obj/effect/rend/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - if(istype(I, /obj/item/nullrod)) - user.visible_message(span_danger("[user] seals \the [src] with \the [I].")) - qdel(src) - return - else - return ..() +/obj/effect/rend/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!HAS_TRAIT(tool, TRAIT_NULLROD_ITEM)) + return NONE + + user.visible_message(span_danger("[user] seals \the [src] with \the [tool].")) + qdel(src) + return ITEM_INTERACT_SUCCESS /obj/effect/rend/singularity_act() return diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 4db1dc6f3357..79798ec1f5e4 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -546,7 +546,7 @@ else make_new_construct(/mob/living/basic/construct/harvester, target, creator, cultoverride, loc_override) -/proc/make_new_construct(mob/living/basic/construct/ctype, mob/target, mob/stoner = null, cultoverride = FALSE, loc_override = null) +/proc/make_new_construct(mob/living/basic/construct/ctype, mob/target, mob/stoner = null, cultoverride = FALSE, loc_override = null, ghost_activated = FALSE) if(QDELETED(target)) return var/mob/living/basic/construct/newstruct = new ctype(loc_override || get_turf(target)) @@ -560,7 +560,13 @@ var/datum/action/innate/seek_master/seek_master = new seek_master.Grant(newstruct) - if (!target.ckey || isnull(target.mind) || is_banned_from(target.ckey, ROLE_CULTIST)) + if(ghost_activated) + if(isnull(target.mind)) + newstruct.PossessByPlayer(target.ckey) + else + target.mind.transfer_to(newstruct, force_key_move = TRUE) + + else if (!target.ckey || isnull(target.mind) || is_banned_from(target.ckey, ROLE_CULTIST)) to_chat(stoner, span_userdanger("Shell imbuement failed!")) to_chat(stoner, span_warning("The soul has already fled its mortal frame. You attempt to bring it back...")) target = SSpolling.poll_ghosts_for_target( @@ -593,7 +599,7 @@ var/atom/movable/screen/alert/bloodsense/sense_alert if(newstruct.mind && !IS_CULTIST(newstruct) && ((stoner && IS_CULTIST(stoner)) || cultoverride) && SSticker.HasRoundStarted()) newstruct.mind.add_antag_datum(/datum/antagonist/cult/construct) - if(IS_CULTIST(stoner) || cultoverride) + if(cultoverride || (stoner && IS_CULTIST(stoner))) to_chat(newstruct, span_cult_bold("You are still bound to serve the cult[stoner ? " and [stoner]" : ""], follow [stoner?.p_their() || "their"] orders and help [stoner?.p_them() || "them"] complete [stoner?.p_their() || "their"] goals at all costs.")) else if(stoner) to_chat(newstruct, span_boldwarning("You are still bound to serve your creator, [stoner], follow [stoner.p_their()] orders and help [stoner.p_them()] complete [stoner.p_their()] goals at all costs.")) diff --git a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm index e5611411a67e..f3832e464aeb 100644 --- a/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm +++ b/code/modules/antagonists/wizard/grand_ritual/grand_ritual.dm @@ -73,7 +73,6 @@ )) /// Areas where you can't be tasked to draw a rune, usually because they're too mean var/static/list/area_blacklist = typecacheof(list( - /area/station/cargo/warehouse, // This SHOULD be fine except SOMEBODY gave this area to a kilo structure which is IN SPACE /area/station/engineering/supermatter, /area/station/engineering/transit_tube, /area/station/science/ordnance/bomb, diff --git a/code/modules/asset_cache/spritesheet/batched/batched_spritesheet.dm b/code/modules/asset_cache/spritesheet/batched/batched_spritesheet.dm index 9256231c0e8d..650c87cf6807 100644 --- a/code/modules/asset_cache/spritesheet/batched/batched_spritesheet.dm +++ b/code/modules/asset_cache/spritesheet/batched/batched_spritesheet.dm @@ -189,10 +189,12 @@ var/data_out if(yield || !isnull(job_id)) if(isnull(job_id)) - job_id = rustg_iconforge_generate_async("data/spritesheets/", name, entries_json, do_cache) + SSasset_loading.assets_generating++ + job_id = rustg_iconforge_generate_async("data/spritesheets/", name, entries_json, do_cache, FALSE, TRUE) UNTIL((data_out = rustg_iconforge_check(job_id)) != RUSTG_JOB_NO_RESULTS_YET) + SSasset_loading.assets_generating-- else - data_out = rustg_iconforge_generate("data/spritesheets/", name, entries_json, do_cache) + data_out = rustg_iconforge_generate("data/spritesheets/", name, entries_json, do_cache, FALSE, TRUE) if (data_out == RUSTG_JOB_ERROR) CRASH("Spritesheet [name] JOB PANIC") else if(!findtext(data_out, "{", 1, 2)) @@ -232,7 +234,7 @@ CRASH("Error during spritesheet generation for [name]: [data["error"]]") /datum/asset/spritesheet_batched/queued_generation() - realize_spritesheets(yield = TRUE) + INVOKE_ASYNC(src, PROC_REF(realize_spritesheets), TRUE) // The proc is called inside a subsystem and waits with an UNTIL /datum/asset/spritesheet_batched/ensure_ready() if(!fully_generated) diff --git a/code/modules/asset_cache/spritesheet/batched/universal_icon.dm b/code/modules/asset_cache/spritesheet/batched/universal_icon.dm index 3f06001900b1..0ecdd1ea349f 100644 --- a/code/modules/asset_cache/spritesheet/batched/universal_icon.dm +++ b/code/modules/asset_cache/spritesheet/batched/universal_icon.dm @@ -10,7 +10,7 @@ var/datum/icon_transformer/transform /// Don't instantiate these yourself, use uni_icon. -/datum/universal_icon/New(icon/icon_file, icon_state="", dir=SOUTH, frame=1, datum/icon_transformer/transform=null, color=null) +/datum/universal_icon/New(icon/icon_file, icon_state="", dir=null, frame=null, datum/icon_transformer/transform=null, color=null) #ifdef UNIT_TESTS // This check is kinda slow and shouldn't fail unless a developer makes a mistake. So it'll get caught in unit tests. if(!isicon(icon_file) || !isfile(icon_file) || "[icon_file]" == "/icon" || !length("[icon_file]")) @@ -44,10 +44,10 @@ transform.blend_color(color, blend_mode) return src -/datum/universal_icon/proc/blend_icon(datum/universal_icon/icon_object, blend_mode) +/datum/universal_icon/proc/blend_icon(datum/universal_icon/icon_object, blend_mode, x=1, y=1) if(!transform) transform = new - transform.blend_icon(icon_object, blend_mode) + transform.blend_icon(icon_object, blend_mode, x, y) return src /datum/universal_icon/proc/scale(width, height) @@ -62,14 +62,116 @@ transform.crop(x1, y1, x2, y2) return src -/// Internally performs a crop. -/datum/universal_icon/proc/shift(dir, amount, icon_width, icon_height) +/datum/universal_icon/proc/flip(dir) if(!transform) transform = new - var/list/offsets = dir2offset(dir) - var/shift_x = -offsets[1] * amount - var/shift_y = -offsets[2] * amount - transform.crop(1 + shift_x, 1 + shift_y, icon_width + shift_x, icon_height + shift_y) + transform.flip(dir) + return src + +/datum/universal_icon/proc/rotate(angle) + if(!transform) + transform = new + transform.rotate(angle) + return src + +/datum/universal_icon/proc/shift(dir, offset, wrap=0) + if(!transform) + transform = new + transform.shift(dir, offset, wrap) + return src + +/datum/universal_icon/proc/swap_color(src_color, dst_color) + if(!transform) + transform = new + transform.swap_color(src_color, dst_color) + return src + +/datum/universal_icon/proc/draw_box(color, x1, y1, x2=x1, y2=y1) + if(!transform) + transform = new + transform.draw_box(color, x1, y1, x2, y2) + return src + +/datum/universal_icon/proc/map_colors_inferred(list/color_args) + var/num_args = length(color_args) + if(num_args <= 20 || num_args >= 16) + src.map_colors_rgba(arglist(color_args)) + else if(num_args <= 12 || num_args >= 9) + src.map_colors_rgb(arglist(color_args)) + else if(num_args == 5) + src.map_colors_rgba_hex(arglist(color_args)) + else if(num_args == 4) + // is there alpha in the hex? + if(length(color_args[3]) == 7 || length(color_args[3]) == 4) + src.map_colors_rgb_hex(arglist(color_args)) + else + src.map_colors_rgba_hex(arglist(color_args)) + else if(num_args == 3) + src.map_colors_rgb_hex(arglist(color_args)) + +/datum/universal_icon/proc/map_colors_rgba(rr, rg, rb, ra, gr, gg, gb, ga, br, bg, bb, ba, ar, ag, ab, aa, r0=0, g0=0, b0=0, a0=0) + if(!transform) + transform = new + transform.map_colors(rr, rg, rb, ra, gr, gg, gb, ga, br, bg, bb, ba, ar, ag, ab, aa, r0, g0, b0, a0) + return src + +/datum/universal_icon/proc/map_colors_rgb(rr, rg, rb, gr, gg, gb, br, bg, bb, r0=0, g0=0, b0=0) + if(!transform) + transform = new + transform.map_colors(rr, rg, rb, 0, gr, gg, gb, 0, br, bg, bb, 0, 0, 0, 0, 1, r0, g0, b0, 0) + return src + +/datum/universal_icon/proc/map_colors_rgb_hex(r_rgb, g_rgb, b_rgb, rgb0=rgb(0,0,0)) + if(!transform) + transform = new + var/rr = hex2num(copytext(r_rgb, 2, 4)) / 255 + var/rg = hex2num(copytext(r_rgb, 4, 6)) / 255 + var/rb = hex2num(copytext(r_rgb, 6, 8)) / 255 + + var/gr = hex2num(copytext(g_rgb, 2, 4)) / 255 + var/gg = hex2num(copytext(g_rgb, 4, 6)) / 255 + var/gb = hex2num(copytext(g_rgb, 6, 8)) / 255 + + var/br = hex2num(copytext(b_rgb, 2, 4)) / 255 + var/bg = hex2num(copytext(b_rgb, 4, 6)) / 255 + var/bb = hex2num(copytext(b_rgb, 6, 8)) / 255 + + var/r0 = hex2num(copytext(rgb0, 2, 4)) / 255 + var/b0 = hex2num(copytext(rgb0, 4, 6)) / 255 + var/g0 = hex2num(copytext(rgb0, 6, 8)) / 255 + + transform.map_colors(rr, rg, rb, 0, gr, gg, gb, 0, br, bg, bb, 0, 0, 0, 0, 1, r0, b0, g0, 0) + return src + +/datum/universal_icon/proc/map_colors_rgba_hex(r_rgba, g_rgba, b_rgba, a_rgba, rgba0="#00000000") + if(!transform) + transform = new + var/rr = hex2num(copytext(r_rgba, 2, 4)) / 255 + var/rg = hex2num(copytext(r_rgba, 4, 6)) / 255 + var/rb = hex2num(copytext(r_rgba, 6, 8)) / 255 + var/ra = hex2num(copytext(r_rgba, 8, 10)) / 255 + + var/gr = hex2num(copytext(g_rgba, 2, 4)) / 255 + var/gg = hex2num(copytext(g_rgba, 4, 6)) / 255 + var/gb = hex2num(copytext(g_rgba, 6, 8)) / 255 + var/ga = hex2num(copytext(g_rgba, 8, 10)) / 255 + + var/br = hex2num(copytext(b_rgba, 2, 4)) / 255 + var/bg = hex2num(copytext(b_rgba, 4, 6)) / 255 + var/bb = hex2num(copytext(b_rgba, 6, 8)) / 255 + var/ba = hex2num(copytext(b_rgba, 8, 10)) / 255 + + var/ar = hex2num(copytext(a_rgba, 2, 4)) / 255 + var/ag = hex2num(copytext(a_rgba, 4, 6)) / 255 + var/ab = hex2num(copytext(a_rgba, 6, 8)) / 255 + var/aa = hex2num(copytext(a_rgba, 8, 10)) / 255 + + var/r0 = hex2num(copytext(rgba0, 2, 4)) / 255 + var/b0 = hex2num(copytext(rgba0, 4, 6)) / 255 + var/g0 = hex2num(copytext(rgba0, 6, 8)) / 255 + var/a0 = hex2num(copytext(rgba0, 8, 10)) / 255 + + transform.map_colors(rr, rg, rb, ra, gr, gg, gb, ga, br, bg, bb, ba, ar, ag, ab, aa, r0, b0, g0, a0) return src /// Internally performs a color blend. @@ -118,11 +220,29 @@ if(!istype(icon_object)) stack_trace("Invalid icon found in icon transformer during apply()! [icon_object]") continue - target.Blend(icon_object.to_icon(), transform["blend_mode"]) + target.Blend(icon_object.to_icon(), transform["blend_mode"], transform["x"], transform["y"]) if(RUSTG_ICONFORGE_SCALE) target.Scale(transform["width"], transform["height"]) if(RUSTG_ICONFORGE_CROP) target.Crop(transform["x1"], transform["y1"], transform["x2"], transform["y2"]) + if(RUSTG_ICONFORGE_MAP_COLORS) + target.MapColors( + transform["rr"], transform["rg"], transform["rb"], transform["ra"], + transform["gr"], transform["gg"], transform["gb"], transform["ga"], + transform["br"], transform["bg"], transform["bb"], transform["ba"], + transform["ar"], transform["ag"], transform["ab"], transform["aa"], + transform["r0"], transform["g0"], transform["b0"], transform["a0"], + ) + if(RUSTG_ICONFORGE_FLIP) + target.Flip(transform["dir"]) + if(RUSTG_ICONFORGE_TURN) + target.Turn(transform["angle"]) + if(RUSTG_ICONFORGE_SHIFT) + target.Shift(transform["dir"], transform["offset"], transform["wrap"]) + if(RUSTG_ICONFORGE_SWAP_COLOR) + target.SwapColor(transform["src_color"], transform["dst_color"]) + if(RUSTG_ICONFORGE_DRAW_BOX) + target.DrawBox(transform["color"], transform["x1"], transform["y1"], transform["x2"], transform["y2"]) return target /datum/icon_transformer/proc/copy() @@ -142,13 +262,17 @@ #endif transforms += list(list("type" = RUSTG_ICONFORGE_BLEND_COLOR, "color" = color, "blend_mode" = blend_mode)) -/datum/icon_transformer/proc/blend_icon(datum/universal_icon/icon_object, blend_mode) +/datum/icon_transformer/proc/blend_icon(datum/universal_icon/icon_object, blend_mode, x=1, y=1) #ifdef UNIT_TESTS // icon_object's type is checked later in to_list if(!isnum(blend_mode)) CRASH("Invalid blend_mode provided to blend_icon: [blend_mode]") + if(!isnum(x)) + CRASH("Invalid x offset provided to blend_icon: [x]") + if(!isnum(y)) + CRASH("Invalid y offset provided to blend_icon: [y]") #endif - transforms += list(list("type" = RUSTG_ICONFORGE_BLEND_ICON, "icon" = icon_object, "blend_mode" = blend_mode)) + transforms += list(list("type" = RUSTG_ICONFORGE_BLEND_ICON, "icon" = icon_object, "blend_mode" = blend_mode, "x" = x, "y" = y)) /datum/icon_transformer/proc/scale(width, height) #ifdef UNIT_TESTS @@ -164,6 +288,51 @@ #endif transforms += list(list("type" = RUSTG_ICONFORGE_CROP, "x1" = x1, "y1" = y1, "x2" = x2, "y2" = y2)) +/datum/icon_transformer/proc/flip(dir) + #ifdef UNIT_TESTS + if(!isnum(dir)) + CRASH("Invalid arguments provided to flip: [dir]") + #endif + transforms += list(list("type" = RUSTG_ICONFORGE_FLIP, "dir" = dir)) + +/datum/icon_transformer/proc/rotate(angle) + #ifdef UNIT_TESTS + if(!isnum(angle)) + CRASH("Invalid arguments provided to rotate: [angle]") + #endif + transforms += list(list("type" = RUSTG_ICONFORGE_TURN, "angle" = angle)) + +/datum/icon_transformer/proc/shift(dir, offset, wrap=FALSE) + #ifdef UNIT_TESTS + if(!isnum(dir) || !isnum(offset) || (wrap != FALSE && wrap != TRUE)) + CRASH("Invalid arguments provided to shift: [dir],[offset],[wrap]") + #endif + transforms += list(list("type" = RUSTG_ICONFORGE_SHIFT, "dir" = dir, "offset" = offset, "wrap" = wrap)) + +/datum/icon_transformer/proc/swap_color(src_color, dst_color) + #ifdef UNIT_TESTS + if(!istext(src_color) || !istext(dst_color)) + CRASH("Invalid arguments provided to swap_color: [src_color],[dst_color]") + #endif + transforms += list(list("type" = RUSTG_ICONFORGE_SWAP_COLOR, "src_color" = src_color, "dst_color" = dst_color)) + +/datum/icon_transformer/proc/draw_box(color, x1, y1, x2=x1, y2=y1) + #ifdef UNIT_TESTS + if(!istext(color) || !isnum(x1) || !isnum(y1) || !isnum(x2) || !isnum(y2)) + CRASH("Invalid arguments provided to draw_box: [color],[x1],[y1],[x2],[y2]") + #endif + transforms += list(list("type" = RUSTG_ICONFORGE_DRAW_BOX, "color" = color, "x1" = x1, "y1" = y1, "x2" = x2, "y2" = y2)) + +/datum/icon_transformer/proc/map_colors(rr, rg, rb, ra, gr, gg, gb, ga, br, bg, bb, ba, ar, ag, ab, aa, r0=0, g0=0, b0=0, a0=0) + transforms += list(list( + "type" = RUSTG_ICONFORGE_MAP_COLORS, + "rr" = rr, "rg" = rg, "rb" = rb, "ra" = ra, + "gr" = gr, "gg" = gg, "gb" = gb, "ga" = ga, + "br" = br, "bg" = bg, "bb" = bb, "ba" = ba, + "ar" = ar, "ag" = ag, "ab" = ab, "aa" = aa, + "r0" = r0, "g0" = g0, "b0" = b0, "a0" = a0, + )) + /// Recursively converts all contained [/datum/universal_icon]s and their associated [/datum/icon_transformer]s into list form so the transforms can be JSON encoded. /datum/icon_transformer/proc/to_list() RETURN_TYPE(/list) @@ -218,21 +387,19 @@ /proc/get_display_icon_for(atom/atom_path) if (!ispath(atom_path, /atom)) return FALSE - var/icon_file = initial(atom_path.icon) - var/icon_state = initial(atom_path.icon_state) - if(initial(atom_path.greyscale_config) && initial(atom_path.greyscale_colors)) + var/icon_file = atom_path::icon + var/icon_state = atom_path::icon_state + if(atom_path::greyscale_config && atom_path::greyscale_colors) return gags_to_universal_icon(atom_path) if(ispath(atom_path, /obj)) var/obj/obj_path = atom_path - if(initial(obj_path.icon_state_preview)) - icon_state = initial(obj_path.icon_state_preview) - return uni_icon(icon_file, icon_state, color=initial(atom_path.color)) + if(obj_path::icon_state_preview) + icon_state = obj_path::icon_state_preview + return uni_icon(icon_file, icon_state, color=atom_path::color) /// getFlatIcon for [/datum/universal_icon]s -/// Only supports 32x32 icons facing south -/// Tough luck if you want anything else /// Still fairly slow for complex appearances due to filesystem operations. Try to avoid using it -/proc/get_flat_uni_icon(image/appearance, deficon, defstate, defblend, start = TRUE, parentcolor) +/proc/get_flat_uni_icon(image/appearance, defdir, deficon, defstate, defblend, start = TRUE, parentcolor) // Loop through the underlays, then overlays, sorting them into the layers list #define PROCESS_OVERLAYS_OR_UNDERLAYS(flat, process, base_layer) \ for (var/i in 1 to process.len) { \ @@ -283,7 +450,7 @@ var/curstate = appearance.icon_state || defstate // Filter out 'runtime' icons (server-generated RSC cache icons) // Write the icon to the filesystem so it can be used by iconforge - if(!isfile(curicon) || string_curicon == "/icon" || string_curicon == "/image" || !length(string_curicon)) + if(!isfile(curicon) || !length(string_curicon)) var/file_path_tmp = "tmp/uni_icon-tmp-[rand(1, 999)].dmi" // this filename is temporary. fcopy(curicon, file_path_tmp) var/file_hash = rustg_hash_file(RUSTG_HASH_MD5, file_path_tmp) @@ -293,21 +460,51 @@ fdel(file_path_tmp) // delete the old one curicon = file(file_path) - var/curblend = appearance.blend_mode || defblend - var/list/curstates = icon_states(curicon) - if(!(curstate in curstates)) - if("" in curstates) // BYOND defaulting functionality + if(!icon_exists(curicon, curstate)) + if("" in icon_states_fast(curicon)) // BYOND defaulting functionality curstate = "" else should_display = FALSE + var/curdir = (!appearance.dir || appearance.dir == SOUTH) ? defdir : appearance.dir + var/base_icon_dir //We'll use this to get the icon state to display if not null BUT NOT pass it to overlays as the dir we have + + if(should_display) + //Determines if there're directionals. + if (curdir != SOUTH) + // icon states either have 1, 4 or 8 dirs. We only have to check + // one of NORTH, EAST or WEST to know that this isn't a 1-dir icon_state since they just have SOUTH. + var/list/metadata = icon_metadata(curicon) + if(islist(metadata)) + for(var/list/state_data as anything in metadata["states"]) + var/name = state_data["name"] + if(name != curstate) + continue + var/dir_count = state_data["dirs"] + if(dir_count == 1) + base_icon_dir = SOUTH + else if(!length(icon_states(icon(curicon, curstate, NORTH)))) + base_icon_dir = SOUTH + + var/list/icon_dimensions = get_icon_dimensions(curicon) + var/icon_width = icon_dimensions["width"] + var/icon_height = icon_dimensions["height"] + if(icon_width != 32 || icon_height != 32) + flat.scale(icon_width, icon_height) + + if(!base_icon_dir) + base_icon_dir = curdir + + var/curblend = appearance.blend_mode || defblend + + if(appearance.overlays.len || appearance.underlays.len) // Layers will be a sorted list of icons/overlays, based on the order in which they are displayed var/list/layers = list() var/image/copy if(should_display) // Add the atom's icon itself, without pixel_x/y offsets. - copy = image(icon=curicon, icon_state=curstate, layer=appearance.layer, dir=SOUTH) + copy = image(icon=curicon, icon_state=curstate, layer=appearance.layer, dir=base_icon_dir) copy.color = appearance.color copy.alpha = appearance.alpha copy.blend_mode = curblend @@ -318,15 +515,26 @@ var/datum/universal_icon/add // Icon of overlay being added + var/list/flat_dimensions = get_icon_dimensions(flat) + var/flatX1 = 1 + var/flatX2 = flat_dimensions["width"] + var/flatY1 = 1 + var/flatY2 = flat_dimensions["height"] + + var/addX1 = 0 + var/addX2 = 0 + var/addY1 = 0 + var/addY2 = 0 + if(appearance.color) if(islist(appearance.color)) - stack_trace("Unsupported color map appearance provided to get_flat_uni_icon, ignoring it.") + flat.map_colors_inferred(appearance.color) else flat.blend_color(appearance.color, ICON_MULTIPLY) if(parentcolor && !(appearance.appearance_flags & RESET_COLOR)) if(islist(parentcolor)) - stack_trace("Unsupported color map appearance provided to get_flat_uni_icon, ignoring it.") + flat.map_colors_inferred(parentcolor) else flat.blend_color(parentcolor, ICON_MULTIPLY) @@ -338,19 +546,45 @@ if(layer_image == copy && length("[layer_image.icon]")) // 'layer_image' is an /image based on the object being flattened, and isn't a 'runtime' icon. curblend = BLEND_OVERLAY - add = uni_icon(layer_image.icon, layer_image.icon_state, SOUTH) + add = uni_icon(layer_image.icon, layer_image.icon_state, base_icon_dir) if(appearance.color) if(islist(appearance.color)) - stack_trace("Unsupported color map appearance provided to get_flat_uni_icon, ignoring it.") + add.map_colors_inferred(appearance.color) else add.blend_color(appearance.color, ICON_MULTIPLY) else // 'layer_image' is an appearance object. - add = get_flat_uni_icon(layer_image, curicon, curstate, curblend, FALSE, next_parentcolor) + add = get_flat_uni_icon(layer_image, curdir, curicon, curstate, curblend, FALSE, next_parentcolor) if(!add || !length(add.icon_file)) continue + // Find the new dimensions of the flat icon to fit the added overlay + var/list/add_dimensions = get_icon_dimensions(add) + addX1 = min(flatX1, layer_image.pixel_x + layer_image.pixel_w + 1) + addX2 = max(flatX2, layer_image.pixel_x + layer_image.pixel_w + add_dimensions["width"]) // assuming 32x32 + addY1 = min(flatY1, layer_image.pixel_y + layer_image.pixel_z + 1) + addY2 = max(flatY2, layer_image.pixel_y + layer_image.pixel_z + add_dimensions["height"]) + + if ( + addX1 != flatX1 \ + && addX2 != flatX2 \ + && addY1 != flatY1 \ + && addY2 != flatY2 \ + ) + // Resize the flattened icon so the new icon fits + flat.crop( + addX1 - flatX1 + 1, + addY1 - flatY1 + 1, + addX2 - flatX1 + 1, + addY2 - flatY1 + 1 + ) + + flatX1 = addX1 + flatX2 = addY1 + flatY1 = addX2 + flatY2 = addY2 + // Blend the overlay into the flattened icon - flat.blend_icon(add, blendMode2iconMode(curblend)) + flat.blend_icon(add, blendMode2iconMode(curblend), layer_image.pixel_x + layer_image.pixel_w + 2 - flatX1, layer_image.pixel_y + layer_image.pixel_z + 2 - flatY1) if(appearance.alpha < 255) flat.blend_color(rgb(255, 255, 255, appearance.alpha), ICON_MULTIPLY) @@ -358,14 +592,14 @@ return flat else if(should_display) // There's no overlays. - var/datum/universal_icon/final_icon = uni_icon(curicon, curstate, SOUTH) + var/datum/universal_icon/final_icon = uni_icon(curicon, curstate, base_icon_dir) if (appearance.alpha < 255) final_icon.blend_color(rgb(255,255,255, appearance.alpha), ICON_MULTIPLY) if (appearance.color) if (islist(appearance.color)) - stack_trace("Unsupported color map appearance provided to get_flat_uni_icon, ignoring it.") + final_icon.map_colors_inferred(appearance.color) else final_icon.blend_color(appearance.color, ICON_MULTIPLY) diff --git a/code/modules/atmospherics/Atmospherics.md b/code/modules/atmospherics/Atmospherics.md index bc1e1e842c4d..99679e13325d 100644 --- a/code/modules/atmospherics/Atmospherics.md +++ b/code/modules/atmospherics/Atmospherics.md @@ -344,7 +344,7 @@ The MC entry for SSAir is very helpful for debugging, and it is good to understa _Figure 6.1: SSAir sitting doing little to nothing turf wise, only processing pipenets and atmos machines_ -If you aren't familiar with the default subsystem stats, you can see them explained here: [][http://codedocs.tgstation13.org/.github/guides/MC_tab.md] +If you aren't familiar with the default subsystem stats, you can see them explained here: [MC Tab Guide](/guides/MC_tab.md) The second line is the cost each subprocess contributed per full cycle, this is a rolling average. It'll give you a good feel for what is misbehaving. (The only exception to this is pipenet rebuilds, the last entry. Because of its nature as something that can happen at any time, it doesn't have a rolling average, instead it just displays the time it used last process) diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index fbefb417c9a0..827510313e22 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -385,8 +385,11 @@ var/atom/movable/moving_atom for(var/thing in src) moving_atom = thing - if (!moving_atom.anchored && !moving_atom.pulledby && moving_atom.last_high_pressure_movement_air_cycle < SSair.times_fired) - moving_atom.experience_pressure_difference(pressure_difference, pressure_direction) + if (moving_atom.last_high_pressure_movement_air_cycle < SSair.times_fired) + if (!moving_atom.anchored && !moving_atom.pulledby) + moving_atom.experience_pressure_difference(pressure_difference, pressure_direction) + else + SEND_SIGNAL(moving_atom, COMSIG_MOVABLE_RESISTED_SPACEWIND, pressure_difference, pressure_direction) /atom/movable ///How much delta pressure is needed for us to move diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 45371190a15c..7a76dc6ec4ea 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -555,8 +555,8 @@ ASSERT_GAS(/datum/gas/nitrogen, air) ASSERT_GAS(/datum/gas/oxygen, air) var/amount_decomposed = 0.4 * bz_formed * nitrous_oxide_decomposed_factor - cached_gases[/datum/gas/nitrogen] += amount_decomposed - cached_gases[/datum/gas/oxygen] += 0.5 * amount_decomposed + cached_gases[/datum/gas/nitrogen][MOLES] += amount_decomposed + cached_gases[/datum/gas/oxygen][MOLES] += 0.5 * amount_decomposed ASSERT_GAS(/datum/gas/bz, air) cached_gases[/datum/gas/bz][MOLES] += bz_formed * (1-nitrous_oxide_decomposed_factor) diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index c6ad259e87ec..f7ac8c29e58e 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -596,6 +596,9 @@ break if(!target_move) + // If we couldn't find a target to move to and we're ventcrawling, try to exit if this vent allows it + if(HAS_TRAIT(user, TRAIT_MOVE_VENTCRAWLING) && (vent_movement & VENTCRAWL_ENTRANCE_ALLOWED)) + user.handle_ventcrawl(src) return if(!(target_move.vent_movement & VENTCRAWL_ALLOWED)) diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index 74bbfca0bdff..23babb68c963 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -71,7 +71,7 @@ underlays.Cut() color = null - var/uncovered_turf = HAS_TRAIT(loc, TRAIT_UNCOVERED_TURF) + var/uncovered_turf = loc && HAS_TRAIT(loc, TRAIT_UNCOVERED_TURF) SET_PLANE_IMPLICIT(src, (underfloor_state == UNDERFLOOR_INTERACTABLE && !uncovered_turf) ? GAME_PLANE : FLOOR_PLANE) // Layer is handled in update_layer() @@ -112,7 +112,7 @@ /obj/machinery/atmospherics/components/get_pipe_image(iconfile, iconstate, direction, color, piping_layer, trinary) var/mutable_appearance/pipe_appearance = ..() - if (underfloor_state == UNDERFLOOR_VISIBLE || HAS_TRAIT(loc, TRAIT_UNCOVERED_TURF)) + if (underfloor_state == UNDERFLOOR_VISIBLE || (loc && HAS_TRAIT(loc, TRAIT_UNCOVERED_TURF))) pipe_appearance.layer = BELOW_CATWALK_LAYER + get_pipe_layer_offset() SET_PLANE_EXPLICIT(pipe_appearance, FLOOR_PLANE, src) return pipe_appearance diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 9eb2058c7cb6..46e1926604ba 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -134,9 +134,8 @@ /obj/machinery/atmospherics/components/unary/thermomachine/update_overlays() . = ..() - var/mutable_appearance/thermo_overlay = new(icon) - var/image/pipe = get_pipe_image(thermo_overlay, "pipe", dir, pipe_color, piping_layer) - pipe.appearance_flags |= RESET_COLOR|KEEP_APART + var/image/pipe = get_pipe_image('icons/obj/machines/atmospherics/thermomachine.dmi', "pipe", dir, pipe_color, piping_layer) + pipe.appearance_flags |= RESET_COLOR | KEEP_APART . += pipe /obj/machinery/atmospherics/components/unary/thermomachine/examine(mob/user) diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm index ebab8af4ea7d..362e2d1c9e72 100644 --- a/code/modules/atmospherics/machinery/other/miner.dm +++ b/code/modules/atmospherics/machinery/other/miner.dm @@ -28,6 +28,7 @@ var/broken_message = "ERROR" idle_power_usage = BASE_MACHINE_IDLE_CONSUMPTION * 1.5 active_power_usage = BASE_MACHINE_ACTIVE_CONSUMPTION * 2 + initialize_directions = NONE /obj/machinery/atmospherics/miner/Initialize(mapload) . = ..() diff --git a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm index 72c322621ac3..7926b5b4173c 100644 --- a/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm +++ b/code/modules/atmospherics/machinery/portable/portable_atmospherics.dm @@ -75,8 +75,10 @@ return ..() /obj/machinery/portable_atmospherics/Destroy() - disconnect() + disconnect(destroyed = TRUE) air_contents = null + if(holding) + unregister_holding() SSair.stop_processing_machine(src) return ..() @@ -194,12 +196,15 @@ /** * Allow the portable machine to be disconnected from the connector */ -/obj/machinery/portable_atmospherics/proc/disconnect() +/obj/machinery/portable_atmospherics/proc/disconnect(destroyed = FALSE) if(!connected_port) return FALSE - set_anchored(FALSE) connected_port.connected_device = null connected_port = null + if (destroyed) + return TRUE + + set_anchored(FALSE) pixel_x = 0 pixel_y = 0 @@ -310,7 +315,7 @@ /obj/machinery/portable_atmospherics/attacked_by(obj/item/item, mob/user) . = ..() - if(!.) + if(. <= 0) return investigate_log("was smacked with \a [item] by [key_name(user)].", INVESTIGATE_ATMOS) add_hiddenprint(user) diff --git a/code/modules/bitrunning/abilities.dm b/code/modules/bitrunning/abilities.dm index ea6a1aa0a7cf..531f10d5ed16 100644 --- a/code/modules/bitrunning/abilities.dm +++ b/code/modules/bitrunning/abilities.dm @@ -31,7 +31,7 @@ . = ..() name = "Open Domain Information" -/datum/action/avatar_domain_info/Trigger(trigger_flags) +/datum/action/avatar_domain_info/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/bitrunning/designs.dm b/code/modules/bitrunning/designs.dm deleted file mode 100644 index 96ae65d41e99..000000000000 --- a/code/modules/bitrunning/designs.dm +++ /dev/null @@ -1,74 +0,0 @@ -// Quantum server - -/obj/item/circuitboard/machine/quantum_server - name = "Quantum Server" - greyscale_colors = CIRCUIT_COLOR_SUPPLY - build_path = /obj/machinery/quantum_server - req_components = list( - /datum/stock_part/servo = 2, - /datum/stock_part/scanning_module = 1, - /datum/stock_part/capacitor = 1, - ) - -/** - * quantum server design - * are you absolutely sure?? - */ - -// Netpod - -/obj/item/circuitboard/machine/netpod - name = "Netpod" - greyscale_colors = CIRCUIT_COLOR_SUPPLY - build_path = /obj/machinery/netpod - req_components = list( - /datum/stock_part/servo = 1, - /datum/stock_part/matter_bin = 2, - ) - -/datum/design/board/netpod - name = "Netpod Board" - desc = "The circuit board for a netpod." - id = "netpod" - build_path = /obj/item/circuitboard/machine/netpod - category = list( - RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO - ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING - -// Quantum console - -/obj/item/circuitboard/computer/quantum_console - name = "Quantum Console" - greyscale_colors = CIRCUIT_COLOR_SUPPLY - build_path = /obj/machinery/computer/quantum_console - -/datum/design/board/quantum_console - name = "Quantum Console Board" - desc = "Allows for the construction of circuit boards used to build a Quantum Console." - id = "quantum_console" - build_path = /obj/item/circuitboard/computer/quantum_console - category = list( - RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO - ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING - -// Byteforge - -/obj/item/circuitboard/machine/byteforge - name = "Byteforge" - greyscale_colors = CIRCUIT_COLOR_SUPPLY - build_path = /obj/machinery/byteforge - req_components = list( - /datum/stock_part/micro_laser = 1, - ) - -/datum/design/board/byteforge - name = "Byteforge Board" - desc = "Allows for the construction of circuit boards used to build a Byteforge." - id = "byteforge" - build_path = /obj/item/circuitboard/machine/byteforge - category = list( - RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO - ) - departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/bitrunning/netpod/_netpod.dm b/code/modules/bitrunning/netpod/_netpod.dm index 2208c56a7414..e372f004255f 100644 --- a/code/modules/bitrunning/netpod/_netpod.dm +++ b/code/modules/bitrunning/netpod/_netpod.dm @@ -48,9 +48,37 @@ QDEL_LIST(cached_outfits) +/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + + if(isnull(held_item)) + context[SCREENTIP_CONTEXT_LMB] = "Select Outfit" + return CONTEXTUAL_SCREENTIP_SET + + if(held_item.tool_behaviour == TOOL_SCREWDRIVER && !occupant && !state_open) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] Panel" + return CONTEXTUAL_SCREENTIP_SET + + if(held_item.tool_behaviour == TOOL_CROWBAR) + if(isnull(occupant)) + if(panel_open) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + else + context[SCREENTIP_CONTEXT_LMB] = "[state_open ? "Close" : "Open"] Cover" + else + context[SCREENTIP_CONTEXT_LMB] = "Break out" + return CONTEXTUAL_SCREENTIP_SET + /obj/machinery/netpod/examine(mob/user) . = ..() + . += span_notice("Its maintainance panel can be [EXAMINE_HINT("screwed")] [panel_open ? "close" : "open"].") + if(isnull(occupant)) + if(panel_open) + . += span_notice("It can be [EXAMINE_HINT("pried")] apart.") + else + . += span_notice("Its hatch can be [EXAMINE_HINT("pried")] [state_open ? "closed" : "open"]") + if(isnull(server_ref?.resolve())) . += span_infoplain("It's not connected to anything.") . += span_infoplain("Netpods must be built within 4 tiles of a server.") @@ -74,18 +102,6 @@ . += span_notice("It can be pried open with a crowbar, but its safety mechanisms will alert the occupant.") -/obj/machinery/netpod/add_context(atom/source, list/context, obj/item/held_item, mob/user) - . = ..() - - if(isnull(held_item)) - context[SCREENTIP_CONTEXT_LMB] = "Select Outfit" - return CONTEXTUAL_SCREENTIP_SET - - if(istype(held_item, /obj/item/crowbar) && occupant) - context[SCREENTIP_CONTEXT_LMB] = "Pry Open" - return CONTEXTUAL_SCREENTIP_SET - - /obj/machinery/netpod/update_icon_state() if(!is_operational) icon_state = base_icon_state diff --git a/code/modules/bitrunning/netpod/utils.dm b/code/modules/bitrunning/netpod/utils.dm index fa271748e78a..264d4ab4e3bd 100644 --- a/code/modules/bitrunning/netpod/utils.dm +++ b/code/modules/bitrunning/netpod/utils.dm @@ -77,7 +77,16 @@ return balloon_alert(neo, "establishing connection...") - if(!do_after(neo, 2 SECONDS, src)) + + // Prevent hand interactions during loading to stop smuggling exploits into virtual domain + ADD_TRAIT(neo, TRAIT_HANDS_BLOCKED, TRAIT_GENERIC) + + var/connection_successful = do_after(neo, 2 SECONDS, src) + + // Re-enable hand interactions after loading attempt + REMOVE_TRAIT(neo, TRAIT_HANDS_BLOCKED, TRAIT_GENERIC) + + if(!connection_successful) open_machine() return diff --git a/code/modules/bitrunning/objects/byteforge.dm b/code/modules/bitrunning/objects/byteforge.dm index cc18d2011a29..29ca48d0af18 100644 --- a/code/modules/bitrunning/objects/byteforge.dm +++ b/code/modules/bitrunning/objects/byteforge.dm @@ -5,6 +5,7 @@ desc = "A machine used by the quantum server. Quantum code converges here, materializing decrypted assets from the virtual abyss." icon = 'icons/obj/machines/bitrunning.dmi' icon_state = "byteforge" + base_icon_state = "byteforge" obj_flags = BLOCKS_CONSTRUCTION | CAN_BE_HIT /// Idle particles var/mutable_appearance/byteforge_particles @@ -12,18 +13,49 @@ /obj/machinery/byteforge/Initialize(mapload) . = ..() - return INITIALIZE_HINT_LATELOAD + register_context() /obj/machinery/byteforge/post_machine_initialize() . = ..() setup_particles() +/obj/machinery/byteforge/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + return + + if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] Panel" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_CROWBAR && panel_open) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + return CONTEXTUAL_SCREENTIP_SET + +/obj/machinery/byteforge/examine(mob/user) + . = ..() + + . += span_notice("Make sure this is 4 tiles from the quantum server") + + . += span_notice("Its maintainance panel can be [EXAMINE_HINT("screwed")] [panel_open ? "close" : "open"].") + if(panel_open) + . += span_notice("It can be [EXAMINE_HINT("pried")] apart.") + /obj/machinery/byteforge/update_appearance(updates) . = ..() setup_particles() +/obj/machinery/byteforge/screwdriver_act(mob/living/user, obj/item/screwdriver) + . = ITEM_INTERACT_FAILURE + if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", base_icon_state, screwdriver)) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/byteforge/crowbar_act(mob/living/user, obj/item/crowbar) + . = ITEM_INTERACT_FAILURE + if(default_deconstruction_crowbar(crowbar)) + return ITEM_INTERACT_SUCCESS + /// Does some sparks after it's done /obj/machinery/byteforge/proc/flash(atom/movable/thing) playsound(src, 'sound/effects/magic/blink.ogg', 50, TRUE) diff --git a/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm b/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm index 9f595d5774f3..3cf85bb2c665 100644 --- a/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm +++ b/code/modules/bitrunning/objects/gimmick_disks/dungeon_disk.dm @@ -109,15 +109,15 @@ granted_items = list( /obj/item/clothing/under/color/black, - /obj/item/clothing/shoes/sneakers/black, + /obj/item/clothing/shoes/sneakers/black/rogue, /obj/item/clothing/mask/facescarf/rogue, - /obj/item/clothing/glasses/eyepatch, + /obj/item/clothing/glasses/eyepatch/rogue, /obj/item/bedsheet/black/rogue_cape, /obj/item/storage/belt/fannypack/black/rogue, /obj/item/knife/combat/survival, ) -/obj/item/clothing/shoes/sneakers/black +/obj/item/clothing/shoes/sneakers/black/rogue name = "sneaker of SNEAKING" /obj/item/clothing/mask/facescarf/rogue @@ -125,7 +125,7 @@ icon_state = "/obj/item/clothing/mask/facescarf/rogue" greyscale_colors = "#292929" -/obj/item/clothing/glasses/eyepatch +/obj/item/clothing/glasses/eyepatch/rogue name = "eyepatch of SEALING" /obj/item/bedsheet/black/rogue_cape diff --git a/code/modules/bitrunning/objects/quantum_console.dm b/code/modules/bitrunning/objects/quantum_console.dm index 71b952c46e19..d79ae60c3a70 100644 --- a/code/modules/bitrunning/objects/quantum_console.dm +++ b/code/modules/bitrunning/objects/quantum_console.dm @@ -16,6 +16,11 @@ . = ..() find_server() +/obj/machinery/computer/quantum_console/examine(mob/user) + . = ..() + if(!server_ref) + . += span_warning("Please install an quantum server in any tile next to this console.") + /obj/machinery/computer/quantum_console/ui_interact(mob/user, datum/tgui/ui) . = ..() diff --git a/code/modules/bitrunning/server/_parent.dm b/code/modules/bitrunning/server/_parent.dm index 09ea24ae2dae..71e02f45a1c4 100644 --- a/code/modules/bitrunning/server/_parent.dm +++ b/code/modules/bitrunning/server/_parent.dm @@ -51,6 +51,9 @@ /// Cooldown for how often you're allowed to harass deadchat for PVP domains COOLDOWN_DECLARE(polling_cooldown) +/obj/machinery/quantum_server/Initialize(mapload) + . = ..() + register_context() /obj/machinery/quantum_server/post_machine_initialize() . = ..() @@ -58,7 +61,6 @@ RegisterSignals(src, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_broken)) RegisterSignal(src, COMSIG_QDELETING, PROC_REF(on_delete)) - /obj/machinery/quantum_server/Destroy(force) mutation_candidate_refs.Cut() avatar_connection_refs.Cut() @@ -67,11 +69,27 @@ QDEL_NULL(generated_domain) return ..() +/obj/machinery/quantum_server/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + return + + if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] Panel" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_CROWBAR && panel_open) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + return CONTEXTUAL_SCREENTIP_SET + /obj/machinery/quantum_server/examine(mob/user) . = ..() . += span_infoplain("Can be resource intensive to run. Ensure adequate power supply.") + . += span_notice("Its maintainance panel can be [EXAMINE_HINT("screwed")] [panel_open ? "close" : "open"].") + if(panel_open) + . += span_notice("It can be [EXAMINE_HINT("pried")] apart.") + var/upgraded = FALSE if(capacitor_coefficient < 1) . += span_infoplain("- Its coolant capacity reduces cooldown time by [(1 - capacitor_coefficient) * 100]%.") @@ -138,29 +156,23 @@ /obj/machinery/quantum_server/crowbar_act(mob/living/user, obj/item/crowbar) - . = ..() - + . = NONE if(!is_ready) balloon_alert(user, "it's scalding hot!") - return TRUE + return ITEM_INTERACT_FAILURE if(length(avatar_connection_refs)) balloon_alert(user, "all clients must disconnect!") - return TRUE + return ITEM_INTERACT_FAILURE if(default_deconstruction_crowbar(crowbar)) - return TRUE - return FALSE - + return ITEM_INTERACT_SUCCESS /obj/machinery/quantum_server/screwdriver_act(mob/living/user, obj/item/screwdriver) - . = ..() - + . = NONE if(!is_ready) balloon_alert(user, "it's scalding hot!") - return TRUE - if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", icon_state, screwdriver)) - return TRUE - return FALSE - + return ITEM_INTERACT_FAILURE + if(default_deconstruction_screwdriver(user, "[base_icon_state]_panel", base_icon_state, screwdriver)) + return ITEM_INTERACT_SUCCESS /obj/machinery/quantum_server/RefreshParts() var/capacitor_rating = 1.15 diff --git a/code/modules/cards/cardhand.dm b/code/modules/cards/cardhand.dm index fb8c025df5ca..fa0339cde9c6 100644 --- a/code/modules/cards/cardhand.dm +++ b/code/modules/cards/cardhand.dm @@ -78,31 +78,33 @@ /obj/item/toy/cards/cardhand/proc/check_menu(mob/living/user) return isliving(user) && !user.incapacitated -/obj/item/toy/cards/cardhand/attackby(obj/item/weapon, mob/living/user, list/params, list/attack_modifier, flip_card = FALSE) +/obj/item/toy/cards/cardhand/item_interaction(mob/living/user, obj/item/tool, list/modifiers) var/obj/item/toy/singlecard/card + if(istype(tool, /obj/item/toy/singlecard)) + card = tool - if(istype(weapon, /obj/item/toy/singlecard)) - card = weapon - - if(istype(weapon, /obj/item/toy/cards/deck)) - var/obj/item/toy/cards/deck/dealer_deck = weapon + if(istype(tool, /obj/item/toy/cards/deck)) + var/obj/item/toy/cards/deck/dealer_deck = tool if(!HAS_TRAIT(dealer_deck, TRAIT_WIELDED)) // recycle cardhand into deck (if unwielded) - dealer_deck.insert(src) - user.balloon_alert_to_viewers("puts card in deck") - return + if(dealer_deck.insert(src)) + user.balloon_alert_to_viewers("puts card in deck") + return ITEM_INTERACT_SUCCESS + + to_chat(user, span_warning("\The [dealer_deck] is stacked too high!")) + return ITEM_INTERACT_BLOCKING + card = dealer_deck.draw(user) - if(card) - if(flip_card) - card.Flip() - insert(card) - return + if(!card) + return NONE - return ..() + if(insert(card)) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) + card.Flip() + return ITEM_INTERACT_SUCCESS -/obj/item/toy/cards/cardhand/attackby_secondary(obj/item/weapon, mob/user, list/modifiers, list/attack_modifiers) - attackby(weapon, user, modifiers, flip_card = TRUE) - return SECONDARY_ATTACK_CONTINUE_CHAIN + to_chat(user, span_warning("You can't hold any more cards in your hand!")) + return ITEM_INTERACT_BLOCKING #define CARDS_MAX_DISPLAY_LIMIT 5 // the amount of cards that are displayed in a hand #define CARDS_PIXEL_X_OFFSET -5 // start out displaying the 1st card -5 pixels left diff --git a/code/modules/cards/cards.dm b/code/modules/cards/cards.dm index e151af022642..3a18b36f86db 100644 --- a/code/modules/cards/cards.dm +++ b/code/modules/cards/cards.dm @@ -6,6 +6,8 @@ max_integrity = 50 /// Do all the cards drop to the floor when thrown at a person var/can_play_52_card_pickup = TRUE + /// How many cards can we hold at the same time + var/card_limit = 21 /// List of card atoms for a hand or deck var/list/obj/item/toy/singlecard/card_atoms @@ -64,29 +66,29 @@ * All cards that are inserted have their angle and pixel offsets reset to zero however their * flip state does not change unless it's being inserted into a deck which is always facedown * (see the deck/insert proc) + * Returns the list of inserted cards * * Arguments: * * card_item - Either a singlecard or cardhand that gets inserted into the src */ /obj/item/toy/cards/proc/insert(obj/item/toy/card_item) fetch_card_atoms() + // Can't add any cards, don't do anything + if (count_cards() >= card_limit) + return null - var/cards_to_add = list() - var/obj/item/toy/cards/cardhand/recycled_cardhand + var/list/cards_to_add = list() if(istype(card_item, /obj/item/toy/singlecard)) cards_to_add += card_item if(istype(card_item, /obj/item/toy/cards/cardhand)) - recycled_cardhand = card_item + var/obj/item/toy/cards/cardhand/recycled_cardhand = card_item + cards_to_add += recycled_cardhand.fetch_card_atoms() - var/list/recycled_cards = recycled_cardhand.fetch_card_atoms() - - for(var/obj/item/toy/singlecard/card in recycled_cards) - cards_to_add += card - recycled_cards -= card - card.moveToNullspace() - qdel(recycled_cardhand) + if(length(cards_to_add) + count_cards() > card_limit) + // Remove all cards past however many we can fit + cards_to_add.Cut(card_limit - count_cards() + 1, length(cards_to_add) + 1) for(var/obj/item/toy/singlecard/card in cards_to_add) card.forceMove(src) @@ -98,8 +100,12 @@ card.transform = M card.update_appearance() card_atoms += card - cards_to_add -= card + + if(istype(card_item, /obj/item/toy/cards/cardhand)) + qdel(card_item) + update_appearance() + return cards_to_add /** * Draws a card from the deck or hand of cards. diff --git a/code/modules/cards/deck/deck.dm b/code/modules/cards/deck/deck.dm index 03c92e4ce6f1..61d25ca92885 100644 --- a/code/modules/cards/deck/deck.dm +++ b/code/modules/cards/deck/deck.dm @@ -19,7 +19,7 @@ /// If the deck is the standard 52 playing card deck (used for poker and blackjack) var/is_standard_deck = TRUE /// The amount of cards to spawn in the deck (optional) - var/decksize = INFINITY + var/decksize = 54 /// The description of the cardgame that is played with this deck (used for memories) var/cardgame_desc = "card game" /// The holodeck computer used to spawn a holographic deck (see /obj/item/toy/cards/deck/syndicate/holographic) @@ -31,6 +31,8 @@ /obj/item/toy/cards/deck/Initialize(mapload) . = ..() + // Can't hold more cards than we spawn with + card_limit = decksize AddElement(/datum/element/drag_pickup) AddComponent(/datum/component/two_handed, attacksound='sound/items/cards/cardflip.ogg') register_context() @@ -167,23 +169,25 @@ return ..() /obj/item/toy/cards/deck/insert(obj/item/toy/card_item) + var/list/cards = ..() + if (!length(cards)) + return null // any card inserted into the deck is always facedown - if(istype(card_item, /obj/item/toy/singlecard)) - var/obj/item/toy/singlecard/card = card_item + for(var/obj/item/toy/singlecard/card in cards) card.Flip(CARD_FACEDOWN) - if(istype(card_item, /obj/item/toy/cards/cardhand)) - var/obj/item/toy/cards/cardhand/cardhand = card_item - for(var/obj/item/toy/singlecard/card in cardhand.fetch_card_atoms()) - card.Flip(CARD_FACEDOWN) - . = ..() + return cards -/obj/item/toy/cards/deck/attackby(obj/item/item, mob/living/user, list/modifiers, list/attack_modifiers) - if(istype(item, /obj/item/toy/singlecard) || istype(item, /obj/item/toy/cards/cardhand)) - insert(item) - var/card_grammar = istype(item, /obj/item/toy/singlecard) ? "card" : "cards" - user.balloon_alert_to_viewers("puts [card_grammar] in deck") - return - return ..() +/obj/item/toy/cards/deck/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/toy/singlecard) && !istype(tool, /obj/item/toy/cards/cardhand)) + return NONE + + if (!insert(tool)) + to_chat(user, span_warning("\The [src] is stacked too high!")) + return ITEM_INTERACT_BLOCKING + + var/card_grammar = istype(tool, /obj/item/toy/singlecard) ? "card" : "cards" + user.balloon_alert_to_viewers("puts [card_grammar] in deck") + return ITEM_INTERACT_SUCCESS /// This is how we play 52 card pickup /obj/item/toy/cards/deck/throw_impact(mob/living/target, datum/thrownthing/throwingdatum) diff --git a/code/modules/cards/singlecard.dm b/code/modules/cards/singlecard.dm index d56e8e265213..fcf35872e49f 100644 --- a/code/modules/cards/singlecard.dm +++ b/code/modules/cards/singlecard.dm @@ -147,25 +147,29 @@ name = flipped ? cardname : "card" return ..() -/obj/item/toy/singlecard/attackby(obj/item/item, mob/living/user, list/params, list/attack_modifier, flip_card=FALSE) - var/obj/item/toy/singlecard/card +/obj/item/toy/singlecard/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + var/obj/item/toy/singlecard/card = null - if(istype(item, /obj/item/toy/cards/deck)) - var/obj/item/toy/cards/deck/dealer_deck = item + if(istype(tool, /obj/item/toy/cards/deck)) + var/obj/item/toy/cards/deck/dealer_deck = tool if(!HAS_TRAIT(dealer_deck, TRAIT_WIELDED)) // recycle card into deck (if unwielded) - dealer_deck.insert(src) - user.balloon_alert_to_viewers("puts card in deck") - return + if(dealer_deck.insert(src)) + user.balloon_alert_to_viewers("puts card in deck") + return ITEM_INTERACT_SUCCESS + + to_chat(user, span_warning("\The [dealer_deck] is stacked too high!")) + return ITEM_INTERACT_BLOCKING + card = dealer_deck.draw(user) - if(istype(item, /obj/item/toy/singlecard)) - card = item + if(istype(tool, /obj/item/toy/singlecard)) + card = tool if(card) // card + card = combine into cardhand - if(flip_card) + if(LAZYACCESS(modifiers, RIGHT_CLICK)) card.Flip() - if(istype(item, /obj/item/toy/cards/deck)) + if(istype(tool, /obj/item/toy/cards/deck)) // only decks cause a balloon alert user.balloon_alert_to_viewers("deals a card") @@ -179,63 +183,48 @@ user.temporarilyRemoveItemFromInventory(src, TRUE) new_cardhand.pickup(user) user.put_in_active_hand(new_cardhand) - return + return ITEM_INTERACT_SUCCESS - if(istype(item, /obj/item/toy/cards/cardhand)) // insert into cardhand - var/obj/item/toy/cards/cardhand/target_cardhand = item - target_cardhand.insert(src) - return + if(istype(tool, /obj/item/toy/cards/cardhand)) // insert into cardhand + return tool.item_interaction(user, src, modifiers) - var/can_item_write var/marked_cheating_color - if(istype(item, /obj/item/pen)) - var/obj/item/pen/pen = item - can_item_write = TRUE + if(istype(tool, /obj/item/pen)) + var/obj/item/pen/pen = tool marked_cheating_color = (pen.colour == "white" && "invisible") || pen.colour - if(istype(item, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/crayon = item - can_item_write = TRUE + if(istype(tool, /obj/item/toy/crayon)) + var/obj/item/toy/crayon/crayon = tool marked_cheating_color = (crayon.crayon_color == "mime" && "invisible") || crayon.crayon_color - if(can_item_write && !blank) // You cheated not only the game, but yourself + if(marked_cheating_color && !blank && IS_WRITING_UTENSIL(tool)) // You cheated not only the game, but yourself marked_color = marked_cheating_color - to_chat(user, span_notice("You put a [marked_color] mark in the corner of [src] with the [item]. Cheat to win!")) - return - - if(can_item_write) - if(!user.is_literate()) - to_chat(user, span_notice("You scribble illegibly on [src]!")) - return + to_chat(user, span_notice("You put a [marked_color] mark in the corner of [src] with the [tool]. Cheat to win!")) + return ITEM_INTERACT_SUCCESS - var/cardtext = stripped_input(user, "What do you wish to write on the card?", "Card Writing", "", 50) - if(!cardtext || !user.can_perform_action(src)) - return + if(!user.can_write(tool)) + return NONE - cardname = cardtext - blank = FALSE - update_appearance() - return - return ..() + var/cardtext = stripped_input(user, "What do you wish to write on the card?", "Card Writing", "", 50) + if(!cardtext || !user.can_perform_action(src)) + return ITEM_INTERACT_BLOCKING -/obj/item/toy/singlecard/attackby_secondary(obj/item/item, mob/living/user, list/modifiers, list/attack_modifiers) - attackby(item, user, modifiers, flip_card=TRUE) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + cardname = cardtext + blank = FALSE + update_appearance() + return ITEM_INTERACT_SUCCESS /obj/item/toy/singlecard/attack_hand_secondary(mob/living/carbon/human/user, modifiers) attack_self(user) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN -/obj/item/toy/singlecard/attack_self_secondary(mob/living/carbon/human/user, modifiers) - attack_self(user) - /obj/item/toy/singlecard/attack_self(mob/living/carbon/human/user) if(!ishuman(user) || !user.can_perform_action(src, NEED_DEXTERITY|FORBID_TELEKINESIS_REACH)) return Flip() - if(isturf(src.loc)) // only display tihs message when flipping in a visible spot like on a table + if(isturf(src.loc)) // only display this message when flipping in a visible spot like on a table user.balloon_alert_to_viewers("flips a card") /obj/item/toy/singlecard/click_alt(mob/living/carbon/human/user) diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm index b209b5e239da..a19a544e22d7 100644 --- a/code/modules/cargo/goodies.dm +++ b/code/modules/cargo/goodies.dm @@ -105,6 +105,20 @@ access_view = ACCESS_WEAPONS contains = list(/obj/item/gun/energy/laser) +/datum/supply_pack/goody/carbine_single + name = "Laser Carbine Single_Pack" + desc = "Contains one laser carbines, capable of rapidly firing weak lasers." + cost = PAYCHECK_COMMAND * 8 + access_view = ACCESS_WEAPONS + contains = list(/obj/item/gun/energy/laser/carbine) + +/datum/supply_pack/goody/smg_single + name = "Disabler SMG Single_Pack" + desc = "Contains one disabler SMGs, capable of rapidly firing weak disabler beams." + cost = PAYCHECK_COMMAND * 6 + access_view = ACCESS_WEAPONS + contains = list(/obj/item/gun/energy/disabler/smg) + /datum/supply_pack/goody/hell_single name = "Hellgun Kit Single-Pack" desc = "Contains one hellgun degradation kit, an old pattern of laser gun infamous for its ability to horribly disfigure targets with burns. Technically violates the Space Geneva Convention when used on humanoids." diff --git a/code/modules/cargo/markets/market_items/misc.dm b/code/modules/cargo/markets/market_items/misc.dm index 057d94264ae4..69bfef56fe01 100644 --- a/code/modules/cargo/markets/market_items/misc.dm +++ b/code/modules/cargo/markets/market_items/misc.dm @@ -185,7 +185,7 @@ /datum/market_item/misc/girlypop/spawn_item(loc, datum/market_purchase/purchase) . = ..() - var/obj/structure/closet/crate/pink/C = new(loc) + var/obj/structure/closet/crate/glitter/C = new(loc) for (var/type in list( /obj/item/poster/contraband/dream, /obj/item/poster/contraband/beekind, diff --git a/code/modules/cargo/markets/market_items/weapons.dm b/code/modules/cargo/markets/market_items/weapons.dm index ea78b5d1a136..76df017d5f7a 100644 --- a/code/modules/cargo/markets/market_items/weapons.dm +++ b/code/modules/cargo/markets/market_items/weapons.dm @@ -143,3 +143,13 @@ price_max = CARGO_CRATE_VALUE * 5 stock_max = 1 availability_prob = 35 + +/datum/market_item/weapon/surplus_esword + name = "Type I 'Iaito' Energy Sword" + desc = "A mass-produced energy sword. It is functionally worse than a milspec energy sword commonly found amongst paramilitary organizations. \ + But hey, better than nothing. Does have some power supply problems, but nothing that a bit of percussive maintenance can't fix." + item = /obj/item/melee/energy/sword/surplus + price_min = CARGO_CRATE_VALUE * 2 + price_max = CARGO_CRATE_VALUE * 5 + stock_max = 2 + availability_prob = 80 diff --git a/code/modules/cargo/markets/market_uplink.dm b/code/modules/cargo/markets/market_uplink.dm index 3c60bc29a7b6..9a5509b5e8b6 100644 --- a/code/modules/cargo/markets/market_uplink.dm +++ b/code/modules/cargo/markets/market_uplink.dm @@ -165,7 +165,7 @@ /datum/crafting_recipe/blackmarket_uplink name = "Black Market Uplink" result = /obj/item/market_uplink/blackmarket - time = 30 + time = 3 SECONDS tool_behaviors = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER, TOOL_MULTITOOL) reqs = list( /obj/item/stock_parts/micro_laser = 1, diff --git a/code/modules/cargo/orderconsole.dm b/code/modules/cargo/orderconsole.dm index be04d3dd3055..d5984da9ec98 100644 --- a/code/modules/cargo/orderconsole.dm +++ b/code/modules/cargo/orderconsole.dm @@ -378,7 +378,7 @@ requisition_paper.update_appearance() ui.user.investigate_log("called the supply shuttle.", INVESTIGATE_CARGO) - say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minutes.") + say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minute\s.") SSshuttle.moveShuttle(cargo_shuttle, docking_home, TRUE) . = TRUE diff --git a/code/modules/cargo/packs/general.dm b/code/modules/cargo/packs/general.dm index 5d183a5bbb98..ca70a1674282 100644 --- a/code/modules/cargo/packs/general.dm +++ b/code/modules/cargo/packs/general.dm @@ -257,3 +257,17 @@ /obj/item/hatchet/cutterblade = 1, ) crate_name = "paper cutters crate" + +/datum/supply_pack/misc/water_cooler + name = "Liquid Cooler - Water" + desc = "A liquid cooler, stocked with the freshest water in all the Periphery. Perfect for wasting time at the office!" + cost = CARGO_CRATE_VALUE * 2 + contains = list(/obj/structure/reagent_dispensers/water_cooler/jugless = 1, /obj/item/reagent_containers/cooler_jug/water = 1) + crate_name = "water cooler crate" + +/datum/supply_pack/misc/punch_cooler + name = "Liquid Cooler - Fruit Punch" + desc = "A liquid cooler, stocked with exotic fruit punch that can heal injuries! Be sure to remain near the liquid cooler while drinking, for your own health and safety. Seriously, do NOT drink this stuff away from the cooler." + cost = CARGO_CRATE_VALUE * 6 + contains = list(/obj/structure/reagent_dispensers/water_cooler/jugless = 1, /obj/item/reagent_containers/cooler_jug/punch = 1) + crate_name = "punch cooler crate" diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm index f11680dc0e8e..41f397439358 100644 --- a/code/modules/cargo/packs/imports.dm +++ b/code/modules/cargo/packs/imports.dm @@ -65,6 +65,14 @@ contains = list(/obj/item/stack/sheet/mineral/bamboo/fifty) crate_name = "bamboo cuttings crate" +/datum/supply_pack/imports/wind_turbine + name = "Wind Turbine Crate" + desc = "Includes a portable wind turbine for charging small devices and appliances. Considered obsolete in the frontier, \ + but perfect for officers who think walking laps around the station is 'innovative engineering'." + cost = CARGO_CRATE_VALUE * 2 + contains = list(/obj/item/portable_wind_turbine/loaded) + crate_name = "wind turbine crate" + /datum/supply_pack/imports/bananium name = "A Single Sheet of Bananium" desc = "Don't let the clown know that he can order this. It costs a fortune even for this much." diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index 53b463850654..2cae5797fa2d 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -212,3 +212,17 @@ crate_name = "body freezer" crate_type = /obj/structure/closet/crate/secure/freezer +/datum/supply_pack/medical/organ_growing + name = "Organ Growing Kit" + desc = "All the tools you need to grow organs at home! Besides letting you grow standard organs from tissue samples, \ + you might find mutant cells which can be further proliferated to grow strange properties." + cost = CARGO_CRATE_VALUE * 5 + contains = list( + /obj/machinery/vatgrower/small/unanchored, + /obj/item/biopsy_tool/organ, + /obj/item/storage/box/petridish, + /obj/structure/microscope/unanchored, + /obj/item/reagent_containers/cup/mortar, + /obj/item/pestle, + ) + crate_name = "organ growing kit" diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index fe85c3c07a81..51a01c4b8a16 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -169,7 +169,7 @@ name = "Cytology supplies crate" desc = "Did out-of-control specimens pulverize xenobiology? Here's some more \ supplies for further testing. Contains a microscope, biopsy tool, two petri dishes, \ - a box of swabs, and a plumbing tool." + and a box of swabs." cost = CARGO_CRATE_VALUE * 3 access_view = ACCESS_XENOBIOLOGY contains = list(/obj/structure/microscope, diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index b97c7cd68bf3..409c746aad57 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -65,14 +65,6 @@ contains = list(/obj/item/clothing/head/helmet/sec = 3) crate_name = "helmet crate" -/datum/supply_pack/security/laser - name = "Lasers Crate" - desc = "Contains three lethal, high-energy laser guns." - cost = CARGO_CRATE_VALUE * 4 - access_view = ACCESS_ARMORY - contains = list(/obj/item/gun/energy/laser = 3) - crate_name = "laser crate" - /datum/supply_pack/security/securitybarriers name = "Security Barrier Grenades" desc = "Stem the tide with four Security Barrier grenades." @@ -241,13 +233,21 @@ /datum/supply_pack/security/armory/energy name = "Energy Guns Crate" - desc = "Contains two Energy Guns, capable of firing both nonlethal and lethal \ + desc = "Contains three Energy Guns, capable of firing both nonlethal and lethal \ blasts of light." cost = CARGO_CRATE_VALUE * 18 - contains = list(/obj/item/gun/energy/e_gun = 2) + contains = list(/obj/item/gun/energy/e_gun = 3) crate_name = "energy gun crate" crate_type = /obj/structure/closet/crate/secure/plasma +/datum/supply_pack/security/armory/laser + name = "Lasers Crate" + desc = "Contains three lethal, high-energy laser guns." + cost = CARGO_CRATE_VALUE * 4 + contains = list(/obj/item/gun/energy/laser = 3) + crate_name = "laser crate" + crate_type = /obj/structure/closet/crate/secure/plasma + /datum/supply_pack/security/armory/laser_carbine name = "Laser Carbine Crate" desc = "Contains three laser carbines, capable of rapidly firing weak lasers." @@ -268,11 +268,11 @@ name = "NT BR-38 Crate" desc = "An experimental energy-based ballistic battle rifle. Only available to \ Nanotrasen stations for security purposes. DO NOT RESELL TO OUTSIDE COMPANIES. \ - Contains three NT BR-38 rifles and three magazines containing .38 Standard." + Contains three NT BR-38 rifles and 6 magazines containing .38 Standard." cost = CARGO_CRATE_VALUE * 100 contains = list( - /obj/item/gun/ballistic/automatic/battle_rifle = 2, - /obj/item/ammo_box/magazine/m38 = 4, + /obj/item/gun/ballistic/automatic/battle_rifle = 3, + /obj/item/ammo_box/magazine/m38 = 6, ) crate_name = "battle rifle crate" diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 849acd5ba6ec..f2b213c3b6de 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -596,7 +596,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( GLOB.clients -= src GLOB.directory -= ckey - persistent_client.set_client(null) + if(persistent_client) + persistent_client.set_client(null) + else + stack_trace("A client was Del()'d without a persistent_client! This should not be happening.") log_access("Logout: [key_name(src)]") GLOB.ahelp_tickets.ClientLogout(src) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 93e0858a3f48..3ecfb4efb5f0 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -101,8 +101,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) middleware += new middleware_type(src) if(IS_CLIENT_OR_MOCK(parent)) - load_and_save = !is_guest_key(parent.key) - load_path(parent.ckey) + if(is_guest_key(parent.key)) + if(parent.is_localhost()) + path = DEV_PREFS_PATH // guest + locallost = dev instance, load dev preferences if possible + else + load_and_save = FALSE // guest + not localhost = guest on live, don't save anything + else + load_path(parent.ckey) // not guest = load their actual savefile if(load_and_save && !fexists(path)) try_savefile_type_migration() diff --git a/code/modules/client/preferences/species_features/basic.dm b/code/modules/client/preferences/species_features/basic.dm index 876d3a3c45d2..b33f2818bdaf 100644 --- a/code/modules/client/preferences/species_features/basic.dm +++ b/code/modules/client/preferences/species_features/basic.dm @@ -10,7 +10,7 @@ var/datum/universal_icon/head_accessory_icon = uni_icon(sprite_accessory.icon, sprite_accessory.icon_state) if(y_offset) - head_accessory_icon.shift(NORTH, y_offset, ICON_SIZE_X, ICON_SIZE_Y) + head_accessory_icon.shift(NORTH, y_offset) head_accessory_icon.blend_color(COLOR_DARK_BROWN, ICON_MULTIPLY) final_icon.blend_icon(head_accessory_icon, ICON_OVERLAY) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 562ceae9c599..97801af313ad 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -275,6 +275,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car /datum/preferences/proc/save_preferences() if(!savefile) CRASH("Attempted to save the preferences of [parent] without a savefile. This should have been handled by load_preferences()") + if(path == DEV_PREFS_PATH) + // Don't save over dev preferences + return TRUE + savefile.set_entry("version", SAVEFILE_VERSION_MAX) //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date for (var/preference_type in GLOB.preference_entries) diff --git a/code/modules/clothing/chameleon/_chameleon_outfit.dm b/code/modules/clothing/chameleon/_chameleon_outfit.dm index df5f3056ac5c..3d53bcd79f48 100644 --- a/code/modules/clothing/chameleon/_chameleon_outfit.dm +++ b/code/modules/clothing/chameleon/_chameleon_outfit.dm @@ -31,7 +31,7 @@ return standard_outfit_options -/datum/action/chameleon_outfit/Trigger(trigger_flags) +/datum/action/chameleon_outfit/Trigger(mob/clicker, trigger_flags) . = ..() if(!. || applying) return diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6857140ab50d..4fb5a44a6bc0 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -18,6 +18,10 @@ var/visor_toggle_down_sound = null ///Sound this item makes when its visor is flipped up var/visor_toggle_up_sound = null + ///chat message when the visor is toggled down. + var/toggle_message + ///chat message when the visor is toggled up. + var/alt_toggle_message var/clothing_flags = NONE ///List of items that can be equipped in the suit storage slot while we're worn. @@ -546,7 +550,13 @@ BLIND // can't see anything visor_toggling() - to_chat(user, span_notice("You push [src] [up ? "out of the way" : "back into place"].")) + var/message + if(up) + message = src.alt_toggle_message || "You push [src] out of the way." + else + message = src.toggle_message || "You push [src] back into place." + + to_chat(user, span_notice("[message]")) //play sounds when toggling the visor up or down (if there is any) if(visor_toggle_up_sound && up) @@ -650,7 +660,7 @@ BLIND // can't see anything var/emissive_alpha = get_blood_emissive_alpha(is_worn = TRUE) if (emissive_alpha) - var/mutable_appearance/emissive_overlay = emissive_appearance(blood_overlay.icon, blood_overlay.icon_state, src, alpha = emissive_alpha) + var/mutable_appearance/emissive_overlay = emissive_appearance(blood_overlay.icon, blood_overlay.icon_state, src, alpha = emissive_alpha, effect_type = EMISSIVE_NO_BLOOM) blood_overlay.overlays += emissive_overlay return blood_overlay diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index c1898c0ab9db..e14fb8a13ddc 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -16,8 +16,8 @@ icon_state = "earmuffs" inhand_icon_state = "earmuffs" clothing_traits = list(TRAIT_DEAF) - strip_delay = 15 - equip_delay_other = 25 + strip_delay = 1.5 SECONDS + equip_delay_other = 2.5 SECONDS resistance_flags = FLAMMABLE custom_price = PAYCHECK_COMMAND * 1.5 flags_cover = EARS_COVERED @@ -25,7 +25,7 @@ /obj/item/clothing/ears/earmuffs/Initialize(mapload) . = ..() AddElement(/datum/element/earhealing) - AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + AddComponent(/datum/component/wearertargeting/earprotection) AddComponent(/datum/component/adjust_fishing_difficulty, -2) /obj/item/clothing/ears/earmuffs/debug diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index c99c7e657722..9147a0e1e15b 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -6,8 +6,8 @@ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' w_class = WEIGHT_CLASS_SMALL slot_flags = ITEM_SLOT_EYES - strip_delay = 20 - equip_delay_other = 25 + strip_delay = 2 SECONDS + equip_delay_other = 2.5 SECONDS resistance_flags = NONE custom_materials = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT*2.5) gender = PLURAL @@ -95,7 +95,6 @@ color_cutoffs = list(10, 35, 10) glass_colour_type = /datum/client_colour/glass_colour/lightgreen actions_types = list(/datum/action/item_action/toggle_nv) - forced_glass_color = TRUE /obj/item/clothing/glasses/meson/night/update_icon_state() . = ..() @@ -143,7 +142,6 @@ color_cutoffs = list(30, 5, 15) glass_colour_type = /datum/client_colour/glass_colour/lightpurple actions_types = list(/datum/action/item_action/toggle_nv) - forced_glass_color = TRUE /obj/item/clothing/glasses/science/night/update_icon_state() . = ..() @@ -160,16 +158,11 @@ color_cutoffs = list(10, 25, 10) glass_colour_type = /datum/client_colour/glass_colour/lightgreen actions_types = list(/datum/action/item_action/toggle_nv) - forced_glass_color = TRUE /obj/item/clothing/glasses/night/update_icon_state() . = ..() icon_state = length(color_cutoffs) ? initial(icon_state) : "night_off" -/obj/item/clothing/glasses/night/colorless - desc = parent_type::desc + " Now with 50% less green!" - forced_glass_color = FALSE - /obj/item/clothing/glasses/eyepatch name = "eyepatch" desc = "Yarr." diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index b0dcb72e6fcf..79b5c263f52d 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -76,7 +76,6 @@ color_cutoffs = list(20, 20, 45) glass_colour_type = /datum/client_colour/glass_colour/lightgreen actions_types = list(/datum/action/item_action/toggle_nv) - forced_glass_color = TRUE /obj/item/clothing/glasses/hud/health/night/update_icon_state() . = ..() @@ -92,7 +91,6 @@ desc = "A clandestine medical science heads-up display that allows operatives to find \ both dying captains and the perfect poison to finish them off, all in complete darkness." clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_MEDICAL_HUD) - forced_glass_color = FALSE /obj/item/clothing/glasses/hud/health/sunglasses name = "medical HUDSunglasses" @@ -130,7 +128,6 @@ color_cutoffs = list(25, 15, 5) glass_colour_type = /datum/client_colour/glass_colour/lightyellow actions_types = list(/datum/action/item_action/toggle_nv) - forced_glass_color = TRUE /obj/item/clothing/glasses/hud/diagnostic/night/update_icon_state() . = ..() @@ -207,7 +204,6 @@ color_cutoffs = list(40, 15, 10) glass_colour_type = /datum/client_colour/glass_colour/lightred actions_types = list(/datum/action/item_action/toggle_nv) - forced_glass_color = TRUE /obj/item/clothing/glasses/hud/security/night/update_icon_state() . = ..() diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index a0d62978529c..f1c7785e323e 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -16,8 +16,8 @@ pickup_sound = 'sound/items/handling/glove_pick_up.ogg' attack_verb_continuous = list("challenges") attack_verb_simple = list("challenge") - strip_delay = 20 - equip_delay_other = 40 + strip_delay = 2 SECONDS + equip_delay_other = 4 SECONDS article = "a pair of" // Path variable. If defined, will produced the type through interaction with wirecutters. diff --git a/code/modules/clothing/gloves/bone.dm b/code/modules/clothing/gloves/bone.dm index 24dfb5de5a9a..a29d4cfd223b 100644 --- a/code/modules/clothing/gloves/bone.dm +++ b/code/modules/clothing/gloves/bone.dm @@ -3,8 +3,8 @@ desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." icon_state = "bracers" inhand_icon_state = null - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS body_parts_covered = ARMS cold_protection = ARMS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT diff --git a/code/modules/clothing/gloves/boxing.dm b/code/modules/clothing/gloves/boxing.dm index 6ea7ed438f27..cfad83432e74 100644 --- a/code/modules/clothing/gloves/boxing.dm +++ b/code/modules/clothing/gloves/boxing.dm @@ -3,7 +3,7 @@ desc = "Because you really needed another excuse to punch your crewmates." icon_state = "boxing" greyscale_colors = "#f32110" - equip_delay_other = 60 + equip_delay_other = 6 SECONDS species_exception = list(/datum/species/golem) // now you too can be a golem boxing champion clothing_traits = list(TRAIT_CHUNKYFINGERS) equip_sound = 'sound/items/equip/glove_equip.ogg' @@ -46,7 +46,7 @@ icon_state = "boxinggold" custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT*1) //LITERALLY GOLD material_flags = MATERIAL_EFFECTS | MATERIAL_AFFECT_STATISTICS - equip_delay_other = 120 + equip_delay_other = 12 SECONDS resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE /obj/item/clothing/gloves/boxing/golden/Initialize(mapload) diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 9868392ecb08..b9f82135c477 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -33,8 +33,8 @@ desc = "Plain black gloves without fingertips for the hard-working." icon_state = "fingerless" greyscale_colors = "#2f2e31" - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT custom_price = PAYCHECK_CREW * 1.5 diff --git a/code/modules/clothing/gloves/combat.dm b/code/modules/clothing/gloves/combat.dm index e7e12c8ee4b1..5ae715e1320f 100644 --- a/code/modules/clothing/gloves/combat.dm +++ b/code/modules/clothing/gloves/combat.dm @@ -4,7 +4,7 @@ icon_state = "black" greyscale_colors = "#2f2e31" siemens_coefficient = 0 - strip_delay = 80 + strip_delay = 8 SECONDS cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS diff --git a/code/modules/clothing/gloves/special.dm b/code/modules/clothing/gloves/special.dm index 8aa8c6ee5c25..6d0fe95bcf5a 100644 --- a/code/modules/clothing/gloves/special.dm +++ b/code/modules/clothing/gloves/special.dm @@ -91,7 +91,7 @@ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - strip_delay = 60 + strip_delay = 6 SECONDS armor_type = /datum/armor/captain_gloves resistance_flags = NONE clothing_traits = list(TRAIT_FAST_CUFFING) diff --git a/code/modules/clothing/head/cone.dm b/code/modules/clothing/head/cone.dm index 05d967184a1d..a77d40b541f1 100644 --- a/code/modules/clothing/head/cone.dm +++ b/code/modules/clothing/head/cone.dm @@ -24,6 +24,6 @@ /obj/item/clothing/head/cone/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index dd9380d415fe..b54ce6bf7934 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -118,6 +118,8 @@ name = "welding hard hat" desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight AND welding shield! The bulb seems a little smaller though." light_range = 3 //Needs a little bit of tradeoff + toggle_message = "You pull the visor down" + alt_toggle_message = "You push the visor up" dog_fashion = null actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_welding_screen) flash_protect = FLASH_PROTECTION_WELDER @@ -220,7 +222,7 @@ /obj/item/clothing/head/utility/hardhat/welding/atmos/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /obj/item/clothing/head/utility/hardhat/pumpkinhead name = "carved pumpkin" diff --git a/code/modules/clothing/head/hat.dm b/code/modules/clothing/head/hat.dm index 6a6153897f3a..86476cceb215 100644 --- a/code/modules/clothing/head/hat.dm +++ b/code/modules/clothing/head/hat.dm @@ -9,7 +9,7 @@ inhand_icon_state = "that" flags_inv = 0 armor_type = /datum/armor/hats_centhat - strip_delay = 80 + strip_delay = 8 SECONDS /datum/armor/hats_centhat melee = 30 @@ -27,6 +27,8 @@ inhand_icon_state = null custom_price = PAYCHECK_COMMAND * 1.5 worn_y_offset = 4 + armor_type = /datum/armor/head_helmet + hair_mask = /datum/hair_mask/standard_hat_middle /obj/item/clothing/head/costume/spacepolice name = "space police cap" @@ -304,7 +306,7 @@ inhand_icon_state = "that" flags_inv = 0 armor_type = /datum/armor/hats_centcom_cap - strip_delay = (8 SECONDS) + strip_delay = 8 SECONDS /datum/armor/hats_centcom_cap melee = 30 diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 18510f48a4bb..6b4b38298bae 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -11,7 +11,7 @@ min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - strip_delay = 60 + strip_delay = 6 SECONDS clothing_flags = SNUG_FIT | STACKABLE_HELMET_EXEMPT flags_cover = HEADCOVERSEYES|EARS_COVERED flags_inv = HIDEHAIR @@ -99,20 +99,26 @@ name = "press helmet" desc = "A blue helmet used to distinguish non-combatant \"PRESS\" members, like if anyone cares." icon_state = "helmet_press" + base_icon_state = "helmet_press" sound_vary = TRUE equip_sound = 'sound/items/handling/helmet/helmet_equip1.ogg' pickup_sound = 'sound/items/handling/helmet/helmet_pickup1.ogg' drop_sound = 'sound/items/handling/helmet/helmet_drop1.ogg' +/obj/item/clothing/head/helmet/press/Initialize(mapload) + . = ..() + AddComponent(/datum/component/seclite_attachable, light_icon_state = "flight") + /obj/item/clothing/head/helmet/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /obj/item/clothing/head/helmet/alt name = "bulletproof helmet" desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." icon_state = "helmetalt" + base_icon_state = "helmetalt" inhand_icon_state = "helmet" armor_type = /datum/armor/helmet_alt dog_fashion = null @@ -213,28 +219,31 @@ /obj/item/clothing/head/helmet/toggleable visor_vars_to_toggle = NONE dog_fashion = null - ///chat message when the visor is toggled down. - var/toggle_message - ///chat message when the visor is toggled up. - var/alt_toggle_message /obj/item/clothing/head/helmet/toggleable/attack_self(mob/user) adjust_visor(user) /obj/item/clothing/head/helmet/toggleable/update_icon_state() . = ..() - icon_state = "[initial(icon_state)][up ? "up" : ""]" + base_icon_state = "[initial(base_icon_state)]" + var/datum/component/seclite_attachable/light = GetComponent(/datum/component/seclite_attachable) + if(up) + base_icon_state += "up" + light?.on_update_icon_state(src) + if(!light) + icon_state = base_icon_state /obj/item/clothing/head/helmet/toggleable/riot name = "riot helmet" desc = "It's a helmet specifically designed to protect against close range attacks." icon_state = "riot" + base_icon_state = "riot" inhand_icon_state = "riot_helmet" - toggle_message = "You pull the visor down on" - alt_toggle_message = "You push the visor up on" + toggle_message = "You pull the visor down" + alt_toggle_message = "You push the visor up" armor_type = /datum/armor/toggleable_riot flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE|HIDESNOUT - strip_delay = 80 + strip_delay = 8 SECONDS actions_types = list(/datum/action/item_action/toggle) visor_flags_inv = HIDEFACE|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF @@ -247,6 +256,10 @@ visor_toggle_up_sound = SFX_VISOR_UP visor_toggle_down_sound = SFX_VISOR_DOWN +/obj/item/clothing/head/helmet/toggleable/riot/Initialize(mapload) + . = ..() + AddComponent(/datum/component/seclite_attachable, light_icon_state = "flight") + /obj/item/clothing/head/helmet/toggleable/riot/Initialize(mapload) . = ..() AddComponent(/datum/component/adjust_fishing_difficulty, 2) @@ -279,6 +292,7 @@ name = "helmet of justice" desc = "WEEEEOOO. WEEEEEOOO. WEEEEOOOO." icon_state = "justice" + base_icon_state = "justice" inhand_icon_state = "justice_helmet" toggle_message = "You turn off the lights on" alt_toggle_message = "You turn on the lights on" @@ -319,6 +333,7 @@ name = "alarm helmet" desc = "WEEEEOOO. WEEEEEOOO. STOP THAT MONKEY. WEEEOOOO." icon_state = "justice2" + base_icon_state = "justice2" /obj/item/clothing/head/helmet/swat name = "\improper SWAT helmet" @@ -331,7 +346,7 @@ heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT clothing_flags = STOPSPRESSUREDAMAGE | STACKABLE_HELMET_EXEMPT - strip_delay = 80 + strip_delay = 8 SECONDS resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = null clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) @@ -359,6 +374,7 @@ name = "\improper SWAT helmet" desc = "An extremely robust helmet with the Nanotrasen logo emblazoned on the top." icon_state = "swat" + base_icon_state = "swat" inhand_icon_state = "swat_helmet" clothing_flags = STACKABLE_HELMET_EXEMPT cold_protection = HEAD @@ -367,6 +383,9 @@ max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF +/obj/item/clothing/head/helmet/swat/nanotrasen/Initialize(mapload) + . = ..() + AddComponent(/datum/component/seclite_attachable, light_icon_state = "flight") /obj/item/clothing/head/helmet/thunderdome name = "\improper Thunderdome helmet" @@ -379,7 +398,7 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - strip_delay = 80 + strip_delay = 8 SECONDS dog_fashion = null /datum/armor/helmet_thunderdome @@ -410,7 +429,7 @@ resistance_flags = FIRE_PROOF icon_state = "roman" inhand_icon_state = "roman_helmet" - strip_delay = 100 + strip_delay = 10 SECONDS dog_fashion = null /datum/armor/helmet_roman @@ -483,7 +502,7 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE - strip_delay = 80 + strip_delay = 8 SECONDS dog_fashion = null clothing_traits = list(TRAIT_HEAD_INJURY_BLOCKED) @@ -523,7 +542,7 @@ inhand_icon_state = "durathread_helmet" resistance_flags = FLAMMABLE armor_type = /datum/armor/helmet_durathread - strip_delay = 60 + strip_delay = 6 SECONDS /datum/armor/helmet_durathread melee = 20 @@ -610,7 +629,7 @@ flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF flash_protect = FLASH_PROTECTION_FLASH - strip_delay = 80 + strip_delay = 8 SECONDS dog_fashion = null armor_type = /datum/armor/helmet_military sound_vary = TRUE @@ -710,7 +729,7 @@ antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, \ inventory_flags = ITEM_SLOT_OCLOTHING, \ charges = 1, \ - drain_antimagic = CALLBACK(src, PROC_REF(drain_antimagic)), \ + block_magic = CALLBACK(src, PROC_REF(drain_antimagic)), \ expiration = CALLBACK(src, PROC_REF(decay)) \ ) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 37a0ac84f8fb..d593119dafe9 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -10,8 +10,8 @@ inhand_icon_state = "chefhat" icon_state = "chef" desc = "The commander in chef's head wear." - strip_delay = 10 - equip_delay_other = 10 + strip_delay = 1 SECONDS + equip_delay_other = 1 SECONDS dog_fashion = /datum/dog_fashion/head/chef /// The chance that the movements of a mouse inside of this hat get relayed to the human wearing the hat var/mouse_control_probability = 20 @@ -101,7 +101,7 @@ inhand_icon_state = "that" flags_inv = 0 armor_type = /datum/armor/hats_caphat - strip_delay = 60 + strip_delay = 6 SECONDS dog_fashion = /datum/dog_fashion/head/captain //Captain: This is no longer space-worthy @@ -467,7 +467,7 @@ desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts." icon_state = "policehelm" armor_type = /datum/armor/hats_warden - strip_delay = 60 + strip_delay = 6 SECONDS dog_fashion = /datum/dog_fashion/head/warden /datum/armor/hats_warden @@ -568,7 +568,7 @@ greyscale_config_worn = /datum/greyscale_config/beret_badge/worn greyscale_colors = "#a52f29#F2F2F2" armor_type = /datum/armor/cosmetic_sec - strip_delay = 60 + strip_delay = 6 SECONDS dog_fashion = null flags_1 = NONE @@ -587,7 +587,7 @@ desc = "A special beret with the Warden's insignia emblazoned on it. For wardens with class." icon_state = "/obj/item/clothing/head/beret/sec/navywarden" greyscale_colors = "#638799#ebebeb" - strip_delay = 60 + strip_delay = 6 SECONDS /obj/item/clothing/head/beret/sec/navyofficer desc = "A special beret with the security insignia emblazoned on it. For officers with class." diff --git a/code/modules/clothing/head/mind_monkey_helmet.dm b/code/modules/clothing/head/mind_monkey_helmet.dm index 4aafaa4dfc1d..0020c43f2c96 100644 --- a/code/modules/clothing/head/mind_monkey_helmet.dm +++ b/code/modules/clothing/head/mind_monkey_helmet.dm @@ -6,7 +6,7 @@ desc = "A fragile, circuitry embedded helmet for boosting the intelligence of a monkey to a higher level. You see several warning labels..." icon_state = "monkeymind" inhand_icon_state = null - strip_delay = 100 + strip_delay = 10 SECONDS var/mob/living/carbon/human/magnification = null ///if the helmet is on a valid target (just works like a normal helmet if not (cargo please stop)) var/polling = FALSE///if the helmet is currently polling for targets (special code for removal) var/light_colors = 1 ///which icon state color this is (red, blue, yellow) diff --git a/code/modules/clothing/head/perceptomatrix.dm b/code/modules/clothing/head/perceptomatrix.dm index 9e31361e0c93..45f55a46ff09 100644 --- a/code/modules/clothing/head/perceptomatrix.dm +++ b/code/modules/clothing/head/perceptomatrix.dm @@ -102,7 +102,7 @@ // When someone makes TRAIT_DEAF an element, or status effect, or whatever, give this item a way to bypass said deafness. // just blocking future instances of deafness isn't what the item is meant to do but there's no proper way to do it otherwise at the moment. - active_components += AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_HEAD), reduce_amount = 2) // should be same as highest value + active_components += AddComponent(/datum/component/wearertargeting/earprotection, reduce_amount = 2) // should be same as highest value active_components += AddComponent( /datum/component/anti_magic, \ antimagic_flags = MAGIC_RESISTANCE_MIND, \ diff --git a/code/modules/clothing/head/pirate.dm b/code/modules/clothing/head/pirate.dm index 0f1ede82e5ad..94f14841d3a3 100644 --- a/code/modules/clothing/head/pirate.dm +++ b/code/modules/clothing/head/pirate.dm @@ -25,8 +25,8 @@ /obj/item/clothing/head/costume/pirate/armored armor_type = /datum/armor/pirate_armored - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS /datum/armor/pirate_armored melee = 30 @@ -51,8 +51,8 @@ /obj/item/clothing/head/costume/pirate/bandana/armored armor_type = /datum/armor/bandana_armored - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS /datum/armor/bandana_armored melee = 30 diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 2b7913b42c23..a074358e3790 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -125,7 +125,7 @@ icon_state = "secsoft" soft_type = "sec" armor_type = /datum/armor/cosmetic_sec - strip_delay = 60 + strip_delay = 6 SECONDS dog_fashion = null /obj/item/clothing/head/soft/veteran @@ -134,7 +134,7 @@ icon_state = "veteransoft" soft_type = "veteran" armor_type = /datum/armor/cosmetic_sec - strip_delay = 60 + strip_delay = 6 SECONDS dog_fashion = null /obj/item/clothing/head/soft/paramedic diff --git a/code/modules/clothing/head/tinfoilhat.dm b/code/modules/clothing/head/tinfoilhat.dm index febc379ac0ad..18cd6fd931a1 100644 --- a/code/modules/clothing/head/tinfoilhat.dm +++ b/code/modules/clothing/head/tinfoilhat.dm @@ -4,7 +4,7 @@ icon_state = "foilhat" inhand_icon_state = null armor_type = /datum/armor/costume_foilhat - equip_delay_other = 140 + equip_delay_other = 14 SECONDS clothing_flags = ANTI_TINFOIL_MANEUVER var/datum/brain_trauma/mild/phobia/conspiracies/paranoia var/warped = FALSE @@ -25,7 +25,7 @@ antimagic_flags = MAGIC_RESISTANCE_MIND, \ inventory_flags = ITEM_SLOT_HEAD, \ charges = 6, \ - drain_antimagic = CALLBACK(src, PROC_REF(drain_antimagic)), \ + block_magic = CALLBACK(src, PROC_REF(drain_antimagic)), \ expiration = CALLBACK(src, PROC_REF(warp_up)) \ ) diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index 9cafd6c1c3ac..bed6d8afab77 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -5,8 +5,8 @@ righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' body_parts_covered = HEAD slot_flags = ITEM_SLOT_MASK - strip_delay = 40 - equip_delay_other = 40 + strip_delay = 4 SECONDS + equip_delay_other = 4 SECONDS visor_vars_to_toggle = NONE unique_reskin_changes_base_icon_state = TRUE diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 62ec778d49cc..752c53440e96 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -13,6 +13,8 @@ visor_flags_cover = MASKCOVERSMOUTH resistance_flags = NONE interaction_flags_click = NEED_DEXTERITY|ALLOW_RESTING + /// Can this mask be adjusted? + var/adjustable = TRUE /datum/armor/mask_breath bio = 50 @@ -22,15 +24,19 @@ return OXYLOSS /obj/item/clothing/mask/breath/attack_self(mob/user) - adjust_visor(user) + if(adjustable) + adjust_visor(user) /obj/item/clothing/mask/breath/click_alt(mob/user) + if(!adjustable) + return adjust_visor(user) return CLICK_ACTION_SUCCESS /obj/item/clothing/mask/breath/examine(mob/user) . = ..() - . += span_notice("Alt-click [src] to adjust it.") + if(adjustable) + . += span_notice("Alt-click [src] to adjust it.") /obj/item/clothing/mask/breath/medical desc = "A close-fitting sterile mask that can be connected to an air supply." @@ -38,7 +44,7 @@ icon_state = "medical" inhand_icon_state = "m_mask" armor_type = /datum/armor/breath_medical - equip_delay_other = 10 + equip_delay_other = 1 SECONDS /datum/armor/breath_medical bio = 90 @@ -52,8 +58,10 @@ righthand_file = 'icons/mob/inhands/clothing/masks_righthand.dmi' body_parts_covered = NONE flags_cover = NONE + actions_types = null armor_type = /datum/armor/breath_muzzle - equip_delay_other = 25 // my sprite has 4 straps, a-la a head harness. takes a while to equip, longer than a muzzle + equip_delay_other = 2.5 SECONDS // my sprite has 4 straps, a-la a head harness. takes a while to equip, longer than a muzzle + adjustable = FALSE /obj/item/clothing/mask/breath/muzzle/Initialize(mapload) . = ..() diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index ba74969e7c52..6fea4c26394d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -215,6 +215,8 @@ GLOBAL_LIST_INIT(clown_mask_options, list( flash_protect = FLASH_PROTECTION_WELDER custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2, /datum/material/glass=SHEET_MATERIAL_AMOUNT) tint = 2 + toggle_message = "You pull the visor down" + alt_toggle_message = "You push the visor up" armor_type = /datum/armor/gas_welding actions_types = list(/datum/action/item_action/toggle) flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT @@ -273,7 +275,7 @@ GLOBAL_LIST_INIT(clown_mask_options, list( icon_state = "syndicate" inhand_icon_state = "syndicate_gasmask" resistance_flags = FIRE_PROOF | ACID_PROOF - strip_delay = 60 + strip_delay = 6 SECONDS w_class = WEIGHT_CLASS_SMALL fishing_modifier = 0 pepper_tint = FALSE diff --git a/code/modules/clothing/masks/muzzle.dm b/code/modules/clothing/masks/muzzle.dm index b6dd6faf7ba8..9508036902ad 100644 --- a/code/modules/clothing/masks/muzzle.dm +++ b/code/modules/clothing/masks/muzzle.dm @@ -7,7 +7,7 @@ righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' flags_cover = MASKCOVERSMOUTH w_class = WEIGHT_CLASS_SMALL - equip_delay_other = 20 + equip_delay_other = 2 SECONDS /obj/item/clothing/mask/muzzle/Initialize(mapload) . = ..() @@ -28,8 +28,8 @@ inhand_icon_state = null w_class = WEIGHT_CLASS_TINY clothing_flags = INEDIBLE_CLOTHING - equip_delay_other = 40 - strip_delay = 40 + equip_delay_other = 4 SECONDS + strip_delay = 4 SECONDS icon = 'icons/map_icons/clothing/mask.dmi' icon_state = "/obj/item/clothing/mask/muzzle/tape" post_init_icon_state = "tape_piece" @@ -76,15 +76,15 @@ desc = "A piece of tape that can be put over someone's mouth. This one has extra strength." icon_state = "/obj/item/clothing/mask/muzzle/tape/super" greyscale_colors = "#4D4D4D" - strip_delay = 80 + strip_delay = 8 SECONDS /obj/item/clothing/mask/muzzle/tape/surgical name = "surgical tape piece" desc = "A piece of tape that can be put over someone's mouth. As long as you apply this to your patient, you won't hear their screams of pain!" icon_state = "/obj/item/clothing/mask/muzzle/tape/surgical" greyscale_colors = "#70BAE7" - equip_delay_other = 30 - strip_delay = 30 + equip_delay_other = 3 SECONDS + strip_delay = 3 SECONDS /obj/item/clothing/mask/muzzle/tape/pointy name = "pointy tape piece" @@ -104,5 +104,5 @@ desc = "A piece of tape that can be put over someone's mouth. This thing could rip your face into a thousand pieces if ripped off." icon_state = "/obj/item/clothing/mask/muzzle/tape/pointy/super" greyscale_colors = "#8C0A00#300008" - strip_delay = 60 + strip_delay = 6 SECONDS stripping_damage = 20 diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 236238a22725..3a5982712bd2 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -4,8 +4,8 @@ body_parts_covered = NECK slot_flags = ITEM_SLOT_NECK interaction_flags_click = NEED_DEXTERITY - strip_delay = 40 - equip_delay_other = 40 + strip_delay = 4 SECONDS + equip_delay_other = 4 SECONDS /obj/item/clothing/neck/worn_overlays(mutable_appearance/standing, isinhands = FALSE) . = ..() @@ -131,7 +131,7 @@ icon_state = "tie_greyscale_untied" strip_delay = 1 SECONDS equip_delay_other = 1 SECONDS - equip_delay_self = 0 + equip_delay_self = 0 SECONDS /obj/item/clothing/neck/tie/add_context(atom/source, list/context, obj/item/held_item, mob/user) . = ..() diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index 0d964b4e5549..f6774e9b2aa9 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -248,7 +248,7 @@ /obj/item/storage/box/lights/mixed = 1, ) belt = /obj/item/storage/belt/janitor/full - glasses = /obj/item/clothing/glasses/night/colorless + glasses = /obj/item/clothing/glasses/night l_pocket = /obj/item/grenade/chem_grenade/cleaner r_pocket = /obj/item/grenade/chem_grenade/cleaner l_hand = /obj/item/storage/bag/trash/bluespace diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index d0c9b1fcd447..e221a857fd00 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -6,7 +6,7 @@ supports_variations_flags = CLOTHING_DIGITIGRADE_MASK body_parts_covered = FEET|LEGS armor_type = /datum/armor/shoes_combat - strip_delay = 40 + strip_delay = 4 SECONDS resistance_flags = NONE lace_time = 12 SECONDS @@ -47,8 +47,8 @@ icon_state = "jackboots" inhand_icon_state = "jackboots" supports_variations_flags = CLOTHING_DIGITIGRADE_MASK - strip_delay = 30 - equip_delay_other = 50 + strip_delay = 3 SECONDS + equip_delay_other = 5 SECONDS resistance_flags = NONE armor_type = /datum/armor/shoes_jackboots fastening_type = SHOES_SLIPON @@ -136,8 +136,8 @@ inhand_icon_state = "jackboots" armor_type = /datum/armor/shoes_workboots supports_variations_flags = CLOTHING_DIGITIGRADE_MASK - strip_delay = 20 - equip_delay_other = 40 + strip_delay = 2 SECONDS + equip_delay_other = 4 SECONDS lace_time = 8 SECONDS /datum/armor/shoes_workboots @@ -196,7 +196,7 @@ /obj/item/clothing/shoes/pirate/armored armor_type = /datum/armor/shoes_pirate - strip_delay = 40 + strip_delay = 4 SECONDS resistance_flags = NONE lace_time = 12 SECONDS body_parts_covered = FEET|LEGS diff --git a/code/modules/clothing/shoes/costume.dm b/code/modules/clothing/shoes/costume.dm index c836af89a9d6..58b8e07f6a2e 100644 --- a/code/modules/clothing/shoes/costume.dm +++ b/code/modules/clothing/shoes/costume.dm @@ -3,8 +3,8 @@ desc = "Sandals with buckled leather straps on it." icon_state = "roman" inhand_icon_state = "wizshoe" - strip_delay = 100 - equip_delay_other = 100 + strip_delay = 10 SECONDS + equip_delay_other = 10 SECONDS armor_type = /datum/armor/shoes_roman fastening_type = SHOES_STRAPS @@ -27,13 +27,13 @@ name = "yellow performer's boots" desc = "These boots were made for dancing." icon_state = "ysing" - equip_delay_other = 50 + equip_delay_other = 5 SECONDS /obj/item/clothing/shoes/singerb name = "blue performer's boots" desc = "These boots were made for dancing." icon_state = "bsing" - equip_delay_other = 50 + equip_delay_other = 5 SECONDS /obj/item/clothing/shoes/bronze name = "bronze boots" diff --git a/code/modules/clothing/shoes/galoshes.dm b/code/modules/clothing/shoes/galoshes.dm index 5e785f20a682..7b866d3ef413 100644 --- a/code/modules/clothing/shoes/galoshes.dm +++ b/code/modules/clothing/shoes/galoshes.dm @@ -5,8 +5,8 @@ inhand_icon_state = "galoshes" clothing_traits = list(TRAIT_NO_SLIP_WATER) slowdown = SHOES_SLOWDOWN+1 - strip_delay = 30 - equip_delay_other = 50 + strip_delay = 3 SECONDS + equip_delay_other = 5 SECONDS resistance_flags = NONE armor_type = /datum/armor/shoes_galoshes can_be_bloody = FALSE diff --git a/code/modules/clothing/shoes/jumpboots.dm b/code/modules/clothing/shoes/jumpboots.dm index 1816a68cefd3..d91a792533ed 100644 --- a/code/modules/clothing/shoes/jumpboots.dm +++ b/code/modules/clothing/shoes/jumpboots.dm @@ -6,7 +6,7 @@ resistance_flags = FIRE_PROOF actions_types = list(/datum/action/item_action/bhop) armor_type = /datum/armor/shoes_bhop - strip_delay = 30 + strip_delay = 3 SECONDS var/jumpdistance = 5 //-1 from to see the actual distance, e.g 4 goes over 3 tiles var/jumpspeed = 3 var/recharging_rate = 60 //default 6 seconds between each dash diff --git a/code/modules/clothing/shoes/laceup.dm b/code/modules/clothing/shoes/laceup.dm index 808bf22f5080..0ef4f4555bc4 100644 --- a/code/modules/clothing/shoes/laceup.dm +++ b/code/modules/clothing/shoes/laceup.dm @@ -2,7 +2,7 @@ name = "laceup shoes" desc = "The height of fashion, and they're pre-polished!" icon_state = "laceups" - equip_delay_other = 50 + equip_delay_other = 5 SECONDS /obj/item/clothing/shoes/laceup/Initialize(mapload) . = ..() diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 2210eff12a62..b6227c6266f3 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -9,8 +9,8 @@ inhand_icon_state = "magboots" armor_type = /datum/armor/shoes_magboots actions_types = list(/datum/action/item_action/toggle) - strip_delay = 70 - equip_delay_other = 70 + strip_delay = 7 SECONDS + equip_delay_other = 7 SECONDS resistance_flags = FIRE_PROOF clothing_flags = parent_type::clothing_flags | STOPSPRESSUREDAMAGE slowdown = SHOES_SLOWDOWN diff --git a/code/modules/clothing/shoes/sandals.dm b/code/modules/clothing/shoes/sandals.dm index c31ad6f3d5e6..a529839b91a5 100644 --- a/code/modules/clothing/shoes/sandals.dm +++ b/code/modules/clothing/shoes/sandals.dm @@ -5,8 +5,8 @@ inhand_icon_state = "wizshoe" custom_materials = list(/datum/material/wood = SHEET_MATERIAL_AMOUNT * 0.5) resistance_flags = FLAMMABLE - strip_delay = 5 - equip_delay_other = 50 + strip_delay = 0.5 SECONDS + equip_delay_other = 5 SECONDS armor_type = /datum/armor/shoes_sandal fastening_type = SHOES_SLIPON species_exception = list(/datum/species/golem) diff --git a/code/modules/clothing/shoes/sneakers.dm b/code/modules/clothing/shoes/sneakers.dm index a431544298a2..5a1826d55e70 100644 --- a/code/modules/clothing/shoes/sneakers.dm +++ b/code/modules/clothing/shoes/sneakers.dm @@ -196,8 +196,8 @@ greyscale_config = /datum/greyscale_config/sneakers_marisa greyscale_config_worn = /datum/greyscale_config/sneakers_marisa/worn greyscale_colors = "#2d2d33#ffffff" - strip_delay = 5 - equip_delay_other = 50 + strip_delay = 0.5 SECONDS + equip_delay_other = 5 SECONDS fastening_type = SHOES_SLIPON resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index af27cc3f995f..66e98ba27a96 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -19,8 +19,8 @@ heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT flash_protect = FLASH_PROTECTION_WELDER - strip_delay = 50 - equip_delay_other = 50 + strip_delay = 5 SECONDS + equip_delay_other = 5 SECONDS flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF resistance_flags = NONE dog_fashion = null @@ -73,8 +73,8 @@ min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT_OFF heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT - strip_delay = 80 - equip_delay_other = 80 + strip_delay = 8 SECONDS + equip_delay_other = 8 SECONDS resistance_flags = NONE actions_types = list(/datum/action/item_action/toggle_spacesuit) interaction_flags_click = NEED_DEXTERITY|ALLOW_RESTING diff --git a/code/modules/clothing/spacesuits/bountyhunter.dm b/code/modules/clothing/spacesuits/bountyhunter.dm index cb8498dac14c..1284f89dabae 100644 --- a/code/modules/clothing/spacesuits/bountyhunter.dm +++ b/code/modules/clothing/spacesuits/bountyhunter.dm @@ -5,7 +5,7 @@ inhand_icon_state = "swat_suit" allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/knife/combat) armor_type = /datum/armor/space_hunter - strip_delay = 130 + strip_delay = 13 SECONDS resistance_flags = FIRE_PROOF | ACID_PROOF cell = /obj/item/stock_parts/power_store/cell/hyper diff --git a/code/modules/clothing/spacesuits/freedom.dm b/code/modules/clothing/spacesuits/freedom.dm index dfc54db118a3..c43ff6c90d70 100644 --- a/code/modules/clothing/spacesuits/freedom.dm +++ b/code/modules/clothing/spacesuits/freedom.dm @@ -6,7 +6,7 @@ icon_state = "griffinhat" inhand_icon_state = null armor_type = /datum/armor/space_freedom - strip_delay = 130 + strip_delay = 13 SECONDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF fishing_modifier = 0 @@ -29,7 +29,7 @@ inhand_icon_state = null allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals) armor_type = /datum/armor/space_freedom - strip_delay = 130 + strip_delay = 13 SECONDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF slowdown = 0 diff --git a/code/modules/clothing/spacesuits/pirate.dm b/code/modules/clothing/spacesuits/pirate.dm index b7f4640c63bb..1a0dcca025db 100644 --- a/code/modules/clothing/spacesuits/pirate.dm +++ b/code/modules/clothing/spacesuits/pirate.dm @@ -4,8 +4,8 @@ icon_state = "spacepirate" inhand_icon_state = "space_pirate_helmet" armor_type = /datum/armor/space_pirate - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS fishing_modifier = -2 visor_dirt = null @@ -30,8 +30,8 @@ allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals, /obj/item/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/reagent_containers/cup/glass/bottle/rum) slowdown = 0 armor_type = /datum/armor/space_pirate - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS fishing_modifier = -3 /obj/item/clothing/head/helmet/space/pirate/tophat diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index eafcc66b5ee2..0a6affdafd11 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -78,7 +78,7 @@ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | STACKABLE_HELMET_EXEMPT | PLASMAMAN_PREVENT_IGNITION | HEADINTERNALS icon_state = "plasmaman-helm" inhand_icon_state = "plasmaman-helm" - strip_delay = 80 + strip_delay = 8 SECONDS flash_protect = FLASH_PROTECTION_WELDER tint = 2 armor_type = /datum/armor/space_plasmaman diff --git a/code/modules/clothing/spacesuits/softsuit.dm b/code/modules/clothing/spacesuits/softsuit.dm index 445af2ea1b66..72841de62df0 100644 --- a/code/modules/clothing/spacesuits/softsuit.dm +++ b/code/modules/clothing/spacesuits/softsuit.dm @@ -73,7 +73,7 @@ icon_state = "syndicate-helm-orange" inhand_icon_state = "syndicate-helm-orange" //resprite? armor_type = /datum/armor/space_fragile - strip_delay = 65 + strip_delay = 6.5 SECONDS /obj/item/clothing/suit/space/fragile name = "emergency space suit" @@ -83,7 +83,7 @@ inhand_icon_state = "syndicate-orange" slowdown = 2 armor_type = /datum/armor/space_fragile - strip_delay = 65 + strip_delay = 6.5 SECONDS /datum/armor/space_fragile melee = 5 diff --git a/code/modules/clothing/spacesuits/specialops.dm b/code/modules/clothing/spacesuits/specialops.dm index 066a80cddd58..d0f06f89a67e 100644 --- a/code/modules/clothing/spacesuits/specialops.dm +++ b/code/modules/clothing/spacesuits/specialops.dm @@ -11,7 +11,7 @@ clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT flags_inv = 0 armor_type = /datum/armor/space_beret - strip_delay = 130 + strip_delay = 13 SECONDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF fishing_modifier = 0 @@ -42,7 +42,7 @@ w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/gun, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals) armor_type = /datum/armor/space_officer - strip_delay = 130 + strip_delay = 13 SECONDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF fishing_modifier = 0 diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 1d69e0dc6f42..6df25ca10bb1 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -33,7 +33,7 @@ return var/obj/item/clothing/accessory/displayed = undershirt.attached_accessories[1] - if(displayed.above_suit) + if(displayed.above_suit && undershirt.accessory_overlay) . += undershirt.accessory_overlay /obj/item/clothing/suit/separate_worn_overlays(mutable_appearance/standing, mutable_appearance/draw_target, isinhands = FALSE, icon_file) diff --git a/code/modules/clothing/suits/ablativecoat.dm b/code/modules/clothing/suits/ablativecoat.dm index 32233f23400c..3d4b793c6631 100644 --- a/code/modules/clothing/suits/ablativecoat.dm +++ b/code/modules/clothing/suits/ablativecoat.dm @@ -6,7 +6,7 @@ icon_state = "ablativehood" flags_inv = HIDEHAIR|HIDEEARS armor_type = /datum/armor/hooded_ablative - strip_delay = 30 + strip_delay = 3 SECONDS var/hit_reflect_chance = 50 /datum/armor/hooded_ablative @@ -33,8 +33,8 @@ body_parts_covered = CHEST|GROIN|LEGS|ARMS armor_type = /datum/armor/hooded_ablative hoodtype = /obj/item/clothing/head/hooded/ablative - strip_delay = 30 - equip_delay_other = 40 + strip_delay = 3 SECONDS + equip_delay_other = 4 SECONDS var/hit_reflect_chance = 50 /obj/item/clothing/suit/hooded/ablative/Initialize(mapload) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index fcce4675d077..939912dd95e7 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -8,8 +8,8 @@ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - strip_delay = 60 - equip_delay_other = 40 + strip_delay = 6 SECONDS + equip_delay_other = 4 SECONDS max_integrity = 250 resistance_flags = NONE armor_type = /datum/armor/suit_armor @@ -67,7 +67,7 @@ /obj/item/clothing/suit/armor/vest/press/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /obj/item/clothing/suit/armor/vest/marine name = "tactical armor vest" @@ -158,7 +158,7 @@ armor_type = /datum/armor/armor_hos cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS - strip_delay = 80 + strip_delay = 8 SECONDS /datum/armor/armor_hos melee = 30 @@ -176,7 +176,7 @@ icon_state = "hostrench" inhand_icon_state = "hostrench" flags_inv = 0 - strip_delay = 80 + strip_delay = 8 SECONDS /obj/item/clothing/suit/armor/hos/trenchcoat/winter name = "head of security's winter trenchcoat" @@ -203,7 +203,7 @@ body_parts_covered = CHEST|GROIN|ARMS cold_protection = CHEST|GROIN|ARMS|HANDS heat_protection = CHEST|GROIN|ARMS|HANDS - strip_delay = 70 + strip_delay = 7 SECONDS resistance_flags = FLAMMABLE dog_fashion = null @@ -227,7 +227,7 @@ /obj/item/clothing/suit/armor/vest/secjacket/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /datum/armor/armor_secjacket //Gotta compensate those extra covered limbs melee = 25 @@ -294,8 +294,8 @@ cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor_type = /datum/armor/armor_riot - strip_delay = 80 - equip_delay_other = 60 + strip_delay = 8 SECONDS + equip_delay_other = 6 SECONDS clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED) /obj/item/clothing/suit/armor/riot/Initialize(mapload) @@ -323,8 +323,8 @@ blood_overlay_type = "armor" armor_type = /datum/armor/balloon_vest siemens_coefficient = 0 - strip_delay = 70 - equip_delay_other = 50 + strip_delay = 7 SECONDS + equip_delay_other = 5 SECONDS /datum/armor/balloon_vest melee = 10 @@ -356,8 +356,8 @@ inhand_icon_state = "armor" blood_overlay_type = "armor" armor_type = /datum/armor/armor_bulletproof - strip_delay = 70 - equip_delay_other = 50 + strip_delay = 7 SECONDS + equip_delay_other = 5 SECONDS /datum/armor/armor_bulletproof melee = 15 @@ -414,7 +414,7 @@ icon_state = "heavy" inhand_icon_state = "swat_suit" armor_type = /datum/armor/armor_swat - strip_delay = 120 + strip_delay = 12 SECONDS resistance_flags = FIRE_PROOF | ACID_PROOF clothing_flags = THICKMATERIAL cold_protection = CHEST | GROIN | LEGS | FEET | ARMS | HANDS @@ -569,8 +569,8 @@ desc = "A vest made of durathread with strips of leather acting as trauma plates." icon_state = "durathread" inhand_icon_state = null - strip_delay = 60 - equip_delay_other = 40 + strip_delay = 6 SECONDS + equip_delay_other = 4 SECONDS max_integrity = 200 resistance_flags = FLAMMABLE armor_type = /datum/armor/vest_durathread @@ -765,8 +765,8 @@ inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor_type = /datum/armor/watermelon - strip_delay = 60 - equip_delay_other = 40 + strip_delay = 6 SECONDS + equip_delay_other = 4 SECONDS clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED) max_integrity = 15 @@ -799,8 +799,8 @@ inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor_type = /datum/armor/watermelon - strip_delay = 60 - equip_delay_other = 40 + strip_delay = 6 SECONDS + equip_delay_other = 4 SECONDS clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED) max_integrity = 15 @@ -816,7 +816,7 @@ antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, \ inventory_flags = ITEM_SLOT_OCLOTHING, \ charges = 1, \ - drain_antimagic = CALLBACK(src, PROC_REF(drain_antimagic)), \ + block_magic = CALLBACK(src, PROC_REF(drain_antimagic)), \ expiration = CALLBACK(src, PROC_REF(decay)) \ ) @@ -834,8 +834,8 @@ inhand_icon_state = null body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor_type = /datum/armor/barrelmelon - strip_delay = 60 - equip_delay_other = 40 + strip_delay = 6 SECONDS + equip_delay_other = 4 SECONDS clothing_traits = list(TRAIT_BRAWLING_KNOCKDOWN_BLOCKED) max_integrity = 10 diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index a14b3fcd77bd..a6f0e7807bde 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -40,8 +40,8 @@ allowed = list(/obj/item/tank/internals, /obj/item/reagent_containers/dropper, /obj/item/flashlight/pen, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/cup/beaker, /obj/item/gun/syringe) armor_type = /datum/armor/suit_bio_suit flags_inv = HIDEGLOVES|HIDEJUMPSUIT|HIDEBELT - strip_delay = 70 - equip_delay_other = 70 + strip_delay = 7 SECONDS + equip_delay_other = 7 SECONDS resistance_flags = ACID_PROOF /obj/item/clothing/suit/bio_suit/Initialize(mapload) @@ -135,8 +135,8 @@ desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses." icon_state = "plaguedoctor" inhand_icon_state = "bio_suit" - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS /obj/item/clothing/suit/bio_suit/plaguedoctorsuit/Initialize(mapload) . = ..() diff --git a/code/modules/clothing/suits/costume.dm b/code/modules/clothing/suits/costume.dm index a85a0f78603c..77c3478abdb9 100644 --- a/code/modules/clothing/suits/costume.dm +++ b/code/modules/clothing/suits/costume.dm @@ -42,8 +42,8 @@ /obj/item/clothing/suit/costume/pirate/armored armor_type = /datum/armor/pirate_armored - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS species_exception = null /obj/item/clothing/suit/costume/pirate/captain @@ -54,8 +54,8 @@ /obj/item/clothing/suit/costume/pirate/captain/armored armor_type = /datum/armor/pirate_armored - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS species_exception = null /obj/item/clothing/suit/costume/cyborg_suit diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 5314776f2c4d..c7fd3ea0a3c7 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -196,7 +196,7 @@ /obj/item/clothing/suit/hazardvest/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, apply_bloom = FALSE) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /obj/item/clothing/suit/hazardvest/press // Variant used by the Curator name = "press hazard vest" @@ -442,4 +442,4 @@ /obj/item/clothing/suit/atmos_overalls/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) diff --git a/code/modules/clothing/suits/straightjacket.dm b/code/modules/clothing/suits/straightjacket.dm index 4ef22a1a438d..5212aec6eeda 100644 --- a/code/modules/clothing/suits/straightjacket.dm +++ b/code/modules/clothing/suits/straightjacket.dm @@ -5,8 +5,8 @@ inhand_icon_state = "straight_jacket" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - equip_delay_self = 50 - strip_delay = 60 + equip_delay_self = 5 SECONDS + strip_delay = 6 SECONDS breakouttime = 5 MINUTES /obj/item/clothing/suit/jacket/straight_jacket/Initialize(mapload) diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 3b1d4e48ed1a..b16526d29be9 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -35,8 +35,8 @@ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - strip_delay = 60 - equip_delay_other = 60 + strip_delay = 6 SECONDS + equip_delay_other = 6 SECONDS resistance_flags = FIRE_PROOF /obj/item/clothing/suit/utility/fire/Initialize(mapload) @@ -56,7 +56,7 @@ /obj/item/clothing/suit/utility/fire/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /obj/item/clothing/suit/utility/fire/firefighter icon_state = "firesuit" @@ -99,8 +99,8 @@ min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - strip_delay = 70 - equip_delay_other = 70 + strip_delay = 7 SECONDS + equip_delay_other = 7 SECONDS flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF resistance_flags = NONE @@ -134,8 +134,8 @@ max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - strip_delay = 70 - equip_delay_other = 70 + strip_delay = 7 SECONDS + equip_delay_other = 7 SECONDS resistance_flags = NONE /obj/item/clothing/suit/utility/bomb_suit/Initialize(mapload) @@ -179,8 +179,8 @@ clothing_flags = THICKMATERIAL | SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT armor_type = /datum/armor/utility_radiation - strip_delay = 60 - equip_delay_other = 60 + strip_delay = 6 SECONDS + equip_delay_other = 6 SECONDS flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF resistance_flags = NONE @@ -211,8 +211,8 @@ ) slowdown = 1.5 armor_type = /datum/armor/utility_radiation - strip_delay = 60 - equip_delay_other = 60 + strip_delay = 6 SECONDS + equip_delay_other = 6 SECONDS flags_inv = HIDEJUMPSUIT resistance_flags = NONE diff --git a/code/modules/clothing/suits/wintercoats.dm b/code/modules/clothing/suits/wintercoats.dm index fb9320297e43..be7bc64420cf 100644 --- a/code/modules/clothing/suits/wintercoats.dm +++ b/code/modules/clothing/suits/wintercoats.dm @@ -536,7 +536,7 @@ /obj/item/clothing/suit/hooded/wintercoat/engineering/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) /obj/item/clothing/head/hooded/winterhood/engineering desc = "A yellow winter coat hood. Definitely not a replacement for a hard hat." @@ -549,7 +549,7 @@ /obj/item/clothing/head/hooded/winterhood/engineering/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() if(!isinhands) - . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha) + . += emissive_appearance(icon_file, "[icon_state]-emissive", src, alpha = src.alpha, effect_type = EMISSIVE_SPECULAR) // Chief Engineer /obj/item/clothing/suit/hooded/wintercoat/engineering/ce diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 4c3de4475f57..fedcbc28b024 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -6,8 +6,8 @@ icon_state = "wizard" inhand_icon_state = "wizhat" armor_type = /datum/armor/head_wizard - strip_delay = 50 - equip_delay_other = 50 + strip_delay = 5 SECONDS + equip_delay_other = 5 SECONDS clothing_flags = SNUG_FIT | CASTING_CLOTHES resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard @@ -119,8 +119,8 @@ armor_type = /datum/armor/suit_wizrobe allowed = list(/obj/item/teleportation_scroll, /obj/item/highfrequencyblade/wizard) flags_inv = HIDEJUMPSUIT - strip_delay = 50 - equip_delay_other = 50 + strip_delay = 5 SECONDS + equip_delay_other = 5 SECONDS clothing_flags = CASTING_CLOTHES resistance_flags = FIRE_PROOF | ACID_PROOF ///How much this robe affects fishing difficulty diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index edd70ffc3796..0d03a6362013 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -289,15 +289,16 @@ LAZYADD(attached_accessories, accessory) accessory.forceMove(src) + + if(isnull(accessory_overlay)) + create_accessory_overlay() + // Allow for accessories to react to the acccessory list now accessory.successful_attach(src) if(user && attach_message) balloon_alert(user, "accessory attached") - if(isnull(accessory_overlay)) - create_accessory_overlay() - update_appearance() return TRUE @@ -320,11 +321,12 @@ // Remove it from the list before detaching LAZYREMOVE(attached_accessories, removed) - removed.detach(src) if(isnull(accessory_overlay) && LAZYLEN(attached_accessories)) create_accessory_overlay() + removed.detach(src) + update_appearance() /// Handles creating the worn overlay mutable appearance diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index a3246ff4da48..dfa93c6862f3 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -8,7 +8,7 @@ icon_state = "roman" inhand_icon_state = "armor" can_adjust = FALSE - strip_delay = 100 + strip_delay = 10 SECONDS resistance_flags = NONE /obj/item/clothing/under/costume/jabroni @@ -297,7 +297,7 @@ worn_icon = 'icons/mob/clothing/under/security.dmi' alt_covers_chest = TRUE armor_type = /datum/armor/clothing_under/costume_russian_officer - strip_delay = 50 + strip_delay = 5 SECONDS sensor_mode = SENSOR_COORDS random_sensor = FALSE can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 10bf4e66e156..bd2c358551a2 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -10,7 +10,7 @@ armor_type = /datum/armor/clothing_under/plasmaman body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS can_adjust = FALSE - strip_delay = 80 + strip_delay = 8 SECONDS COOLDOWN_DECLARE(extinguish_timer) var/extinguish_cooldown = 100 var/extinguishes_left = 5 diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 2730ed47a6db..1753c9311e1e 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -13,7 +13,7 @@ icon = 'icons/obj/clothing/under/security.dmi' worn_icon = 'icons/mob/clothing/under/security.dmi' armor_type = /datum/armor/clothing_under/rank_security - strip_delay = 50 + strip_delay = 5 SECONDS sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -145,7 +145,7 @@ icon_state = "rhos" inhand_icon_state = "r_suit" armor_type = /datum/armor/clothing_under/security_head_of_security - strip_delay = 60 + strip_delay = 6 SECONDS /datum/armor/clothing_under/security_head_of_security melee = 10 diff --git a/code/modules/escape_menu/home_page.dm b/code/modules/escape_menu/home_page.dm index a41617c3528d..0ab16e9ab378 100644 --- a/code/modules/escape_menu/home_page.dm +++ b/code/modules/escape_menu/home_page.dm @@ -6,7 +6,7 @@ /* hud_owner = */ null, /* escape_menu = */ src, /* button_text = */ "Resume", - /* offset = */ list(-136, -260), + /* offset = */ list(-136, 30), /* font_size = */ 24, /* on_click_callback = */ CALLBACK(src, PROC_REF(home_resume)), ) @@ -18,7 +18,7 @@ /* hud_owner = */ null, /* escape_menu = */ src, /* button_text = */ "Character", - /* offset = */ list(-171, -262), + /* offset = */ list(-171, 28), /* font_size = */ 24, /* on_click_callback = */ CALLBACK(src, PROC_REF(home_open_character_settings)), ) @@ -30,7 +30,7 @@ /* hud_owner = */ null, /* escape_menu = */ src, /* button_text = */ "Settings", - /* offset = */ list(-206, -260), + /* offset = */ list(-206, 30), /* font_size = */ 24, /* on_click_callback = */ CALLBACK(src, PROC_REF(home_open_game_settings)), ) @@ -42,7 +42,7 @@ /* hud_owner = */ null, /* escape_menu = */ src, /* button_text = */ "Admin Help", - /* offset = */ list(-241, -260), + /* offset = */ list(-241, 30), ) ) @@ -52,7 +52,7 @@ /* hud_owner = */ null, /* escape_menu = */ src, /* button_text = */ "Leave Body", - /* offset = */ list(-276, -260), + /* offset = */ list(-276, 30), /* font_size = */ 24, /* on_click_callback = */ CALLBACK(src, PROC_REF(open_leave_body)), ) @@ -64,7 +64,7 @@ /* hud_owner = */ null, "Resources", "Open/Close list of resources", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(src, PROC_REF(toggle_resources)), /* button_overlay = */ "resources", )) @@ -97,7 +97,7 @@ /* hud_owner = */ null, "Report Bug", "Report a bug/issue", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(client, TYPE_VERB_REF(/client, reportissue)), /* button_overlay = */ "bug", /* end_point */ offset_order[1], @@ -108,7 +108,7 @@ /* hud_owner = */ null, "Github", "Open the repository for the game", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(client, TYPE_VERB_REF(/client, github)), /* button_overlay = */ "github", /* end_point */ offset_order[1], @@ -122,7 +122,7 @@ /* hud_owner = */ null, "Forums", "Visit the server's forums", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(client, TYPE_VERB_REF(/client, forum)), /* button_overlay = */ "forums", /* end_point */ offset_order[1], @@ -136,7 +136,7 @@ /* hud_owner = */ null, "Rules", "View the server rules", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(client, TYPE_VERB_REF(/client, rules)), /* button_overlay = */ "rules", /* end_point */ offset_order[1], @@ -150,7 +150,7 @@ /* hud_owner = */ null, "Wiki", "See the wiki for the game", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(client, TYPE_VERB_REF(/client, wiki)), /* button_overlay = */ "wiki", /* end_point */ offset_order[1], @@ -162,7 +162,7 @@ /* hud_owner = */ null, "Change Log", "See all changes to the server", - /* pixel_offset = */ list(260, -190), + /* button_screen_loc */ "BOTTOM:30,RIGHT:-20", CALLBACK(client, TYPE_VERB_REF(/client, changelog)), /* button_overlay = */ "changelog", /* end_point */ offset_order[1], diff --git a/code/modules/escape_menu/leave_body.dm b/code/modules/escape_menu/leave_body.dm index 1acbb9a82f59..9d2ee1d47288 100644 --- a/code/modules/escape_menu/leave_body.dm +++ b/code/modules/escape_menu/leave_body.dm @@ -7,7 +7,7 @@ /* hud_owner = */ null, "Back", /* tooltip_text = */ null, - /* pixel_offset = */ list(-260, 190), + /* button_screen_loc = */ "TOP:-30,LEFT:30", CALLBACK(src, PROC_REF(open_home_page)), /* button_overlay = */ "back", ) @@ -25,7 +25,7 @@ /* hud_owner = */ null, "Suicide", "Perform a dramatic suicide in game", - /* pixel_offset = */ list(-55, -1), + /* button_screen_loc = */ "CENTER:-55,CENTER:-1", CALLBACK(src, PROC_REF(leave_suicide)), /* button_overlay = */ dead_clown, )) @@ -36,7 +36,7 @@ /* hud_owner = */ null, "Ghost", "Exit quietly, leaving your body", - /* pixel_offset = */ list(55, -1), + /* button_screen_loc = */ "CENTER:55,CENTER:-1", CALLBACK(src, PROC_REF(leave_ghost)), /* button_overlay = */ "ghost", ) diff --git a/code/modules/escape_menu/screen_objects/lobby_buttons.dm b/code/modules/escape_menu/screen_objects/lobby_buttons.dm index 86149c72e923..bc516c0c7c5e 100644 --- a/code/modules/escape_menu/screen_objects/lobby_buttons.dm +++ b/code/modules/escape_menu/screen_objects/lobby_buttons.dm @@ -15,7 +15,7 @@ datum/hud/hud_owner, button_text, tooltip_text, - list/pixel_offset, + button_screen_loc, on_click_callback, button_overlay, ) @@ -24,13 +24,13 @@ src.on_click_callback = on_click_callback src.tooltip_text = tooltip_text + screen_loc = button_screen_loc + if(button_overlay) add_overlay(button_overlay) if(button_text) add_maptext(button_text) - screen_loc = "CENTER:[pixel_offset[1]],CENTER:[pixel_offset[2]]" - /atom/movable/screen/escape_menu/lobby_button/Destroy() on_click_callback = null @@ -93,7 +93,7 @@ datum/hud/hud_owner, button_text, tooltip_text, - list/pixel_offset, + button_screen_loc, on_click_callback, button_overlay, end_point, diff --git a/code/modules/escape_menu/screen_objects/text.dm b/code/modules/escape_menu/screen_objects/text.dm index 94123944f388..6e2c1423cfb7 100644 --- a/code/modules/escape_menu/screen_objects/text.dm +++ b/code/modules/escape_menu/screen_objects/text.dm @@ -26,7 +26,7 @@ src.maptext_height = maptext_height * (font_size / 5) update_text() - screen_loc = "NORTH:[offset[1]],CENTER:[offset[2]]" + screen_loc = "NORTH:[offset[1]],WEST:[offset[2]]" /atom/movable/screen/escape_menu/text/proc/update_text() SHOULD_CALL_PARENT(TRUE) diff --git a/code/modules/events/scrubber_overflow.dm b/code/modules/events/scrubber_overflow.dm index 16a455de0cf6..9f06881ac1bd 100644 --- a/code/modules/events/scrubber_overflow.dm +++ b/code/modules/events/scrubber_overflow.dm @@ -32,8 +32,6 @@ /datum/reagent/consumable/condensedcapsaicin, /datum/reagent/drug/mushroomhallucinogen, /datum/reagent/lube, - /datum/reagent/glitter/blue, - /datum/reagent/glitter/pink, /datum/reagent/cryptobiolin, /datum/reagent/blood, /datum/reagent/medicine/c2/multiver, @@ -53,7 +51,7 @@ /datum/reagent/consumable/ethanol/beer, /datum/reagent/hair_dye, /datum/reagent/consumable/sugar, - /datum/reagent/glitter/white, + /datum/reagent/glitter/random, /datum/reagent/gravitum, /datum/reagent/growthserum, /datum/reagent/yuck, diff --git a/code/modules/events/shuttle_catastrophe.dm b/code/modules/events/shuttle_catastrophe.dm index ed64c52a836a..5203af1daa90 100644 --- a/code/modules/events/shuttle_catastrophe.dm +++ b/code/modules/events/shuttle_catastrophe.dm @@ -54,6 +54,13 @@ return SSshuttle.shuttle_purchased = SHUTTLEPURCHASE_FORCED SSshuttle.unload_preview() + // We need to move our docking port back in case a crashlanding shuttle has been purchased previously + for(var/obj/docking_port/stationary/port as anything in SSshuttle.stationary_docking_ports) + if(port.shuttle_id != "emergency_home") + continue + var/turf/initial_loc = locate(port.initial_x, port.initial_y, port.initial_z) + port.forceMove(initial_loc) + break SSshuttle.existing_shuttle = SSshuttle.emergency SSshuttle.action_load(new_shuttle, replace = TRUE) log_shuttle("Shuttle Catastrophe set a new shuttle, [new_shuttle.name].") diff --git a/code/modules/events/space_vines/vine_mutations.dm b/code/modules/events/space_vines/vine_mutations.dm index 57c5c003fd74..8a9d922ee822 100644 --- a/code/modules/events/space_vines/vine_mutations.dm +++ b/code/modules/events/space_vines/vine_mutations.dm @@ -12,6 +12,20 @@ holder.mutations |= src holder.add_atom_colour(hue, FIXED_COLOUR_PRIORITY) +/datum/spacevine_mutation/proc/on_buckle(obj/structure/spacevine/holder, mob/living/buckled) + SHOULD_CALL_PARENT(TRUE) + buckled.layer = SPACEVINE_MOB_LAYER + RegisterSignal(buckled, COMSIG_MOB_UNBUCKLED, PROC_REF(on_unbuckle)) + +/datum/spacevine_mutation/proc/on_unbuckle(datum/source) + SHOULD_CALL_PARENT(TRUE) + SIGNAL_HANDLER + if(!isliving(source)) + return + var/mob/living/buckled = source + buckled.layer = initial(buckled.layer) + UnregisterSignal(buckled, COMSIG_MOB_UNBUCKLED) + /datum/spacevine_mutation/proc/process_mutation(obj/structure/spacevine/holder) return @@ -39,9 +53,6 @@ /datum/spacevine_mutation/proc/on_spread(obj/structure/spacevine/holder, turf/target) return -/datum/spacevine_mutation/proc/on_buckle(obj/structure/spacevine/holder, mob/living/buckled) - return - /datum/spacevine_mutation/proc/on_explosion(severity, target, obj/structure/spacevine/holder) return FALSE @@ -168,6 +179,7 @@ /// What happens if an aggr spreading vine buckles a mob. /datum/spacevine_mutation/aggressive_spread/on_buckle(obj/structure/spacevine/holder, mob/living/buckled) + . = ..() aggrospread_act(holder, buckled) /// Hurts mobs. To be used when a vine with aggressive spread mutation spreads into the mob's tile or buckles them. diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm index 95b6b0f16c1b..a89ac1456a67 100644 --- a/code/modules/fishing/aquarium/fish_analyzer.dm +++ b/code/modules/fishing/aquarium/fish_analyzer.dm @@ -118,7 +118,7 @@ "fish_name" = fishie.name, "fish_icon" = fishie.icon, "fish_icon_state" = fishie.base_icon_state, - "fish_health" = fishie.status == FISH_DEAD ? 0 : PERCENT(fishie.health/initial(fishie.health)), + "fish_health" = fishie.status == FISH_DEAD ? 0 : PERCENT(fishie.get_health_percentage()), "fish_size" = fishie.size, "fish_weight" = fishie.weight, "fish_food" = fishie.food.name, diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index 09664c1923c4..cee4898000fc 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -37,6 +37,9 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( //we handle slowdowns internally, and the fish weight modifier from materials already contributes to it. material_flags = MATERIAL_EFFECTS|MATERIAL_AFFECT_STATISTICS|MATERIAL_COLOR|MATERIAL_ADD_PREFIX|MATERIAL_NO_SLOWDOWN|MATERIAL_NO_EDIBILITY + max_integrity = 200 + integrity_failure = 0.5 + /// Flags for fish variables that would otherwise be TRUE/FALSE var/fish_flags = FISH_FLAG_SHOW_IN_CATALOG|FISH_DO_FLOP_ANIM|FISH_FLAG_EXPERIMENT_SCANNABLE @@ -75,8 +78,6 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( ///icon used when the fish is dead, ifset. var/icon_state_dead - /// Current fish health. Dies at 0. - var/health = 100 /// The message shown when the fish dies. var/death_text = "%SRC dies." @@ -210,14 +211,14 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( RegisterSignal(src, COMSIG_ATOM_TEMPORARY_ANIMATION_START, PROC_REF(on_temp_animation)) check_flopping() if(status != FISH_DEAD) - ADD_TRAIT(src, TRAIT_UNCOMPOSTABLE, REF(src)) //Composting a food that is not real food wouldn't work anyway. + ADD_TRAIT(src, TRAIT_UNCOMPOSTABLE, REF(src)) //Compost fish only when it's dead. START_PROCESSING(SSobj, src) RegisterSignal(src, SIGNAL_ADDTRAIT(TRAIT_FISH_STASIS), PROC_REF(enter_stasis)) RegisterSignal(src, SIGNAL_REMOVETRAIT(TRAIT_FISH_STASIS), PROC_REF(exit_stasis)) //Adding this because not all fish have the gore foodtype that makes them automatically eligible for dna infusion. - ADD_TRAIT(src, TRAIT_VALID_DNA_INFUSION, INNATE_TRAIT) + add_traits(list(TRAIT_DUCT_TAPE_UNREPAIRABLE, TRAIT_VALID_DNA_INFUSION), INNATE_TRAIT) //stops new fish from being able to reproduce right away. breeding_wait = world.time + (breeding_timeout * NEW_FISH_BREEDING_TIMEOUT_MULT) @@ -343,7 +344,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( /obj/item/fish/proc/on_fish_cooked(datum/source, cooking_time) SIGNAL_HANDLER SHOULD_NOT_OVERRIDE(TRUE) - adjust_health(0) + damage_fish(max_integrity) //Remove the blood from the reagents holder and reward the player with some extra nutriment added to the fish. var/datum/reagent/consumable/nutriment/protein/protein = reagents.has_reagent(/datum/reagent/consumable/nutriment/protein, check_subtypes = TRUE) @@ -376,7 +377,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( /obj/item/fish/proc/on_fish_cooked_again(datum/source, cooking_time) SIGNAL_HANDLER if(!HAS_TRAIT(src, TRAIT_FISH_SURVIVE_COOKING)) - adjust_health(0) + damage_fish(max_integrity) if(cooking_time >= FISH_SAFE_COOKING_DURATION) well_cooked() @@ -409,7 +410,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( return bites_amount++ var/bites_to_finish = weight / FISH_WEIGHT_BITE_DIVISOR - adjust_health(health - (initial(health) / bites_to_finish) * 3) + damage_fish((max_integrity / bites_to_finish) * 3) flinch_on_eat(eater, feeder) /obj/item/fish/proc/flinch_on_eat(mob/living/eater, mob/living/feeder) @@ -466,8 +467,8 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( . = ..() if(!reagents) return - reagents.convert_reagent(/datum/reagent/consumable/nutriment/protein, /datum/reagent/consumable/liquidgibs, 0.4, include_source_subtypes = TRUE) - reagents.convert_reagent(/datum/reagent/consumable/nutriment/protein, /datum/reagent/blood, 0.2, include_source_subtypes = TRUE) + reagents.convert_reagent(/datum/reagent/consumable/nutriment/protein, /datum/reagent/consumable/liquidgibs, multiplier = 0.4, include_source_subtypes = TRUE) + reagents.convert_reagent(/datum/reagent/consumable/nutriment/protein, /datum/reagent/blood, multiplier = 0.2, include_source_subtypes = TRUE) ///When processed, the reagents inside this fish will be passed to the created atoms. /obj/item/fish/UsedforProcessing(mob/living/user, obj/item/used_item, list/chosen_option, list/created_atoms) @@ -533,7 +534,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( if(!HAS_TRAIT(src, TRAIT_FISH_STASIS) && !proper_environment()) warnings += "drowning" - var/health_ratio = health / initial(health) + var/health_ratio = get_health_percentage() switch(health_ratio) if(0 to 0.25) warnings += "dying" @@ -992,7 +993,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( switch(new_status) if(FISH_ALIVE) status = FISH_ALIVE - health = initial(health) // since the fishe has been revived + repair_damage(max_integrity) regenerate_bites(bites_amount) last_feeding = world.time //reset hunger check_flopping() @@ -1027,10 +1028,6 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( if(!isnum(var_value) || var_value == 0) return FALSE update_size_and_weight(size, var_value) - if(NAMEOF(src, health)) - if(!isnum(var_value)) - return FALSE - adjust_health(health) if(NAMEOF(src, fish_flags)) var/old_fish_flags = fish_flags fish_flags = var_value @@ -1204,33 +1201,47 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( return TRUE /obj/item/fish/proc/process_health(seconds_per_tick) - var/health_change_per_second = 0 + var/health_change = 0 if(!proper_environment()) - health_change_per_second -= 2.5 //Dying here + health_change -= 2.5 //Dying here var/starvation_mult = get_starvation_mult() if(starvation_mult) - health_change_per_second -= 0.25 * starvation_mult //Starving + health_change -= 0.25 * starvation_mult //Starving else - health_change_per_second += 0.5 //Slowly healing + health_change += 0.5 //Slowly healing if(HAS_TRAIT(src, TRAIT_FISH_ON_TESLIUM)) - health_change_per_second -= 0.65 + health_change -= 0.65 - adjust_health(health + health_change_per_second * seconds_per_tick) - -/obj/item/fish/proc/adjust_health(amount) - if(status == FISH_DEAD || amount == health) + if(!health_change) return - var/pre_health = health - var/initial_health = initial(health) - health = clamp(amount, 0, initial_health) - if(health <= 0) - set_status(FISH_DEAD) + + health_change *= seconds_per_tick + if(health_change < 0) + damage_fish(-health_change) + else + repair_damage(health_change) + +///Used to damage this fish while it's still alive. Prevents the fish from taking damage beyond the integrity_failure threshold +/obj/item/fish/proc/damage_fish(amount) + if(status == FISH_DEAD || amount <= 0) return - if(amount < pre_health || !bites_amount) + var/current_integrity = get_integrity() + take_damage(min(amount, current_integrity - max_integrity * integrity_failure), sound_effect = FALSE, armour_penetration = 100) + +/// fish dies when its integrity reaches 50% +/obj/item/fish/atom_break(damage_flag) + . = ..() + set_status(FISH_DEAD) + +/obj/item/fish/repair_damage(amount) + . = ..() + if(!. || !bites_amount) return - var/health_to_pre_health_diff = amount - pre_health - var/init_health_to_pre_diff = initial_health - pre_health - var/bites_to_recover = bites_amount * (health_to_pre_health_diff / init_health_to_pre_diff) + var/current_integrity = get_integrity() + var/old_integrity = current_integrity - amount + var/old_max_integrity_diff = max_integrity - old_integrity + var/percent = (max_integrity - current_integrity) / old_max_integrity_diff + var/bites_to_recover = bites_amount * percent regenerate_bites(bites_to_recover) /obj/item/fish/proc/regenerate_bites(amount) @@ -1240,6 +1251,12 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( bites_amount -= amount generate_fish_reagents(amount) +/// returns a value between 0 and 1 representing how much integrity the fish has before dying (atom_break) +/obj/item/fish/proc/get_health_percentage() + var/max_health = max_integrity * (1 - integrity_failure) + var/death_thres = max_integrity - max_health + return CLAMP01((get_integrity() - death_thres) / max_health) + /// Returns tracked_fish_by_type but flattened and without the items in the blacklist, also shuffled if shuffle is TRUE. /obj/item/fish/proc/get_aquarium_fishes(shuffle = FALSE, blacklist) . = list() @@ -1257,7 +1274,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( return FALSE if(!being_targeted && length(get_aquarium_fishes()) >= AQUARIUM_MAX_BREEDING_POPULATION) return FALSE - return !HAS_TRAIT(loc, TRAIT_STOP_FISH_REPRODUCTION_AND_GROWTH) && health >= initial(health) * 0.8 && stable_population >= 1 && world.time >= breeding_wait + return !HAS_TRAIT(loc, TRAIT_STOP_FISH_REPRODUCTION_AND_GROWTH) && get_health_percentage() >= 0.8 && stable_population >= 1 && world.time >= breeding_wait /obj/item/fish/proc/try_to_reproduce() if(!loc || !HAS_TRAIT(loc, TRAIT_IS_AQUARIUM)) @@ -1490,7 +1507,7 @@ GLOBAL_LIST_INIT(fish_compatible_fluid_types, list( happiness_value += 2 if(bites_amount) // ouch happiness_value -= 2 - if(health < initial(health) * 0.6) + if(get_health_percentage() < 0.6) happiness_value -= 1 return clamp(happiness_value, FISH_SAD, FISH_VERY_HAPPY) diff --git a/code/modules/fishing/fish/fish_evolution.dm b/code/modules/fishing/fish/fish_evolution.dm index 37ed269970f6..baff1c329164 100644 --- a/code/modules/fishing/fish/fish_evolution.dm +++ b/code/modules/fishing/fish/fish_evolution.dm @@ -56,7 +56,7 @@ GLOBAL_LIST_EMPTY(fishes_by_fish_evolution) /datum/fish_evolution/proc/growth_checks(obj/item/fish/source, seconds_per_tick, growth) SIGNAL_HANDLER SHOULD_CALL_PARENT(TRUE) - if(source.health < initial(source.health) * 0.5) + if(source.get_health_percentage() < 0.5) return COMPONENT_DONT_GROW if(source.get_hunger() >= 0.5) //too hungry to grow return COMPONENT_DONT_GROW diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm index 4aad9b002f56..d81cde8f85d2 100644 --- a/code/modules/fishing/fish/fish_traits.dm +++ b/code/modules/fishing/fish/fish_traits.dm @@ -187,7 +187,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) var/turf/turf = get_turf(source) var/light_amount = turf.get_lumcount() if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) - source.adjust_health(source.health - 0.5 * seconds_per_tick) + source.damage_fish(0.5 * seconds_per_tick) /datum/fish_trait/nocturnal/apply_to_mob(mob/living/basic/mob) . = ..() @@ -301,10 +301,10 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) for(var/trait in resistance_traits) if(HAS_TRAIT(victim, trait)) continue - victim.adjust_health(victim.health - 3 * seconds_per_tick) //the victim may heal a bit but this will quickly kill + victim.damage_fish(3 * seconds_per_tick) //the victim may heal a bit but this will quickly kill emulsified = TRUE if(emulsified) - source.adjust_health(source.health + 3 * seconds_per_tick) + source.repair_damage(3 * seconds_per_tick) source.sate_hunger() /datum/fish_trait/emulsijack/apply_to_mob(mob/living/basic/mob) @@ -487,7 +487,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /datum/fish_trait/toxic/proc/damage_predator(obj/item/fish/source, seconds_per_tick) SIGNAL_HANDLER - source.adjust_health(source.health - 3 * seconds_per_tick) + source.damage_fish(3 * seconds_per_tick) /datum/fish_trait/toxic/proc/stop_damaging(obj/item/fish/source) SIGNAL_HANDLER @@ -543,7 +543,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) continue source.loc.visible_message(span_warning("[source] violently [pick("whips", "bites", "attacks", "slams")] [victim]")) var/damage = round(rand(4, 20) * (source.size / victim.size)) //smaller fishes take extra damage. - victim.adjust_health(victim.health - damage) + victim.damage_fish(damage) return /datum/fish_trait/lubed diff --git a/code/modules/fishing/fish/types/air_space.dm b/code/modules/fishing/fish/types/air_space.dm index 3da406d366c8..82587fca6fc7 100644 --- a/code/modules/fishing/fish/types/air_space.dm +++ b/code/modules/fishing/fish/types/air_space.dm @@ -102,7 +102,7 @@ /obj/item/fish/starfish/proc/add_emissive() if(status == FISH_ALIVE) - return emissive_appearance(icon, "starfish_emissive", src) + return emissive_appearance(icon, "starfish_emissive", src, effect_type = EMISSIVE_NO_BLOOM) ///It spins, and dimly glows in the dark. /obj/item/fish/starfish/flop_animation() @@ -215,7 +215,7 @@ /obj/item/fish/baby_carp/proc/growth_checks(datum/source, seconds_per_tick, growth, result_path) SIGNAL_HANDLER var/hunger = CLAMP01((world.time - last_feeding) / feeding_frequency) - if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow. + if(get_health_percentage() <= 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow. return COMPONENT_DONT_GROW if(!loc || !HAS_TRAIT(loc, TRAIT_IS_AQUARIUM)) diff --git a/code/modules/fishing/fish/types/anadromous.dm b/code/modules/fishing/fish/types/anadromous.dm index a46ef055c62a..c00263315639 100644 --- a/code/modules/fishing/fish/types/anadromous.dm +++ b/code/modules/fishing/fish/types/anadromous.dm @@ -47,7 +47,7 @@ average_size = 100 average_weight = 2000 breeding_timeout = 4 MINUTES - health = 150 + max_integrity = 300 beauty = FISH_BEAUTY_GOOD required_fluid_type = AQUARIUM_FLUID_ANADROMOUS random_case_rarity = FISH_RARITY_RARE diff --git a/code/modules/fishing/fish/types/freshwater.dm b/code/modules/fishing/fish/types/freshwater.dm index 01c51b59b695..56f4b4d56bc8 100644 --- a/code/modules/fishing/fish/types/freshwater.dm +++ b/code/modules/fishing/fish/types/freshwater.dm @@ -188,7 +188,7 @@ average_weight = 10 sprite_width = 3 sprite_height = 1 - health = 50 + max_integrity = 100 feeding_frequency = 1.5 MINUTES required_temperature_min = MIN_AQUARIUM_TEMP+15 required_temperature_max = MIN_AQUARIUM_TEMP+20 diff --git a/code/modules/fishing/fish/types/mining.dm b/code/modules/fishing/fish/types/mining.dm index bc515d667458..4a701dd72cc2 100644 --- a/code/modules/fishing/fish/types/mining.dm +++ b/code/modules/fishing/fish/types/mining.dm @@ -71,7 +71,7 @@ /obj/item/fish/chasm_crab/proc/growth_checks(datum/source, seconds_per_tick, growth, result_path) SIGNAL_HANDLER var/hunger = get_hunger() - if(health <= initial(health) * 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow. + if(get_health_percentage() <= 0.6 || hunger >= 0.6) //if too hurt or hungry, don't grow. anger += growth * 2 return COMPONENT_DONT_GROW @@ -124,7 +124,7 @@ random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS required_fluid_type = AQUARIUM_FLUID_ANY_WATER min_pressure = HAZARD_LOW_PRESSURE - health = 150 + max_integrity = 300 stable_population = 3 grind_results = list(/datum/reagent/bone_dust = 10) fillet_type = /obj/item/stack/sheet/bone diff --git a/code/modules/fishing/fish/types/rift.dm b/code/modules/fishing/fish/types/rift.dm index 38da61dff65b..eb72c82ac448 100644 --- a/code/modules/fishing/fish/types/rift.dm +++ b/code/modules/fishing/fish/types/rift.dm @@ -28,7 +28,7 @@ average_weight = 1500 food = /datum/reagent/bluespace feeding_frequency = 10 MINUTES - health = 50 + max_integrity = 100 death_text = "%SRC splinters apart into shards!" random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS fillet_type = /obj/item/stack/ore/bluespace_crystal @@ -136,7 +136,8 @@ required_temperature_min = BODYTEMP_COLD_DAMAGE_LIMIT // you mean just like a human? that's odd... required_temperature_max = BODYTEMP_HEAT_DAMAGE_LIMIT food = /datum/reagent/blood - health = 600 // apex predator + max_integrity = 800 // apex predator + integrity_failure = 0.25 random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS fillet_type = /obj/item/food/fishmeat/fish_tail num_fillets = 1 @@ -339,7 +340,7 @@ for(var/mob/living/fallen_mob in falling_movables) visible_message(span_danger("[src] flattens like a pancake as [fallen_mob] lands on top of it!")) - adjust_health(initial(health) * 0.1) // very durable + damage_fish(max_integrity * integrity_failure * 0.9) // very "durable" AddElement(/datum/element/squish, 15 SECONDS) fallen_mob.Paralyze(0.5 SECONDS) playsound(src, 'sound/effects/cartoon_sfx/cartoon_splat.ogg', 75) @@ -367,7 +368,7 @@ food = /datum/reagent/silicon feeding_frequency = 30 SECONDS - health = 160 + max_integrity = 320 death_text = "%SRC calcifies." random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS fillet_type = /obj/item/stack/sheet/mineral/diamond @@ -429,7 +430,8 @@ sprite_width = 12 sprite_height = 13 - health = 500 + max_integrity = 750 + integrity_failure = 0.33 death_text = "%SRC decomposes." random_case_rarity = FISH_RARITY_NOPE // hand-tuned to be a your worst enemy @@ -521,7 +523,7 @@ death_text = span_big(span_alertalien("%SRC emits a horrendous wailing as it perishes!")) random_case_rarity = FISH_RARITY_NOPE - health = 250 + max_integrity = 500 average_size = 30 average_weight = 2000 fillet_type = /obj/item/food/fishmeat/quality @@ -772,7 +774,7 @@ antimagic_flags = MAGIC_RESISTANCE_MIND, \ inventory_flags = null, \ charges = maxHealth * 0.1, \ - drain_antimagic = CALLBACK(src, PROC_REF(on_drain_magic)), \ + block_magic = CALLBACK(src, PROC_REF(on_drain_magic)), \ expiration = CALLBACK(src, PROC_REF(on_expire)), \ ) diff --git a/code/modules/fishing/fish/types/ruins.dm b/code/modules/fishing/fish/types/ruins.dm index 627bb5136a8a..83d890ea9919 100644 --- a/code/modules/fishing/fish/types/ruins.dm +++ b/code/modules/fishing/fish/types/ruins.dm @@ -14,7 +14,7 @@ fishing_difficulty_modifier = 30 required_fluid_type = AQUARIUM_FLUID_ANY_WATER min_pressure = HAZARD_LOW_PRESSURE - health = 300 + max_integrity = 600 stable_population = 1 //This means they can only crossbreed. grind_results = list(/datum/reagent/bone_dust = 5, /datum/reagent/consumable/liquidgibs = 5) fillet_type = /obj/item/stack/sheet/bone diff --git a/code/modules/fishing/fish/types/saltwater.dm b/code/modules/fishing/fish/types/saltwater.dm index 522befdeb506..cf1f1fa889a2 100644 --- a/code/modules/fishing/fish/types/saltwater.dm +++ b/code/modules/fishing/fish/types/saltwater.dm @@ -167,7 +167,7 @@ average_weight = 4000 breeding_timeout = 4.5 MINUTES feeding_frequency = 4 MINUTES - health = 180 + max_integrity = 360 beauty = FISH_BEAUTY_EXCELLENT random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS required_fluid_type = AQUARIUM_FLUID_SALTWATER diff --git a/code/modules/fishing/fish/types/station.dm b/code/modules/fishing/fish/types/station.dm index a6842daf318e..40196c375ec5 100644 --- a/code/modules/fishing/fish/types/station.dm +++ b/code/modules/fishing/fish/types/station.dm @@ -51,7 +51,7 @@ stable_population = 8 average_size = 20 average_weight = 400 - health = 50 + max_integrity = 100 breeding_timeout = 2.5 MINUTES fish_traits = list(/datum/fish_trait/parthenogenesis, /datum/fish_trait/no_mating) required_temperature_min = MIN_AQUARIUM_TEMP+10 @@ -82,7 +82,7 @@ random_case_rarity = FISH_RARITY_VERY_RARE required_fluid_type = AQUARIUM_FLUID_ANADROMOUS stable_population = 4 - health = 150 + max_integrity = 300 fillet_type = /obj/item/slime_extract/grey fish_traits = list(/datum/fish_trait/toxin_immunity, /datum/fish_trait/crossbreeder) favorite_bait = list( @@ -263,7 +263,7 @@ sprite_height = 4 average_size = 150 average_weight = 6000 - health = 125 + max_integrity = 250 feeding_frequency = 5 MINUTES breeding_timeout = 5 MINUTES random_case_rarity = FISH_RARITY_NOPE diff --git a/code/modules/fishing/fish/types/syndicate.dm b/code/modules/fishing/fish/types/syndicate.dm index 83147031c4d3..1d290aa1e18a 100644 --- a/code/modules/fishing/fish/types/syndicate.dm +++ b/code/modules/fishing/fish/types/syndicate.dm @@ -104,7 +104,7 @@ average_weight = 2500 breeding_timeout = 4.25 MINUTES feeding_frequency = 3 MINUTES - health = 180 + max_integrity = 360 beauty = FISH_BEAUTY_GREAT random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS required_fluid_type = AQUARIUM_FLUID_FRESHWATER @@ -236,7 +236,7 @@ average_weight = 3000 breeding_timeout = 5 MINUTES feeding_frequency = 4 MINUTES - health = 180 + max_integrity = 360 random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS beauty = FISH_BEAUTY_GREAT fishing_difficulty_modifier = 20 diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 0d42be519c2a..923c496371ac 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -512,7 +512,7 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) SIGNAL_HANDLER if(istype(reward)) var/damage = CEILING((world.time - start_time)/10 * FISH_DAMAGE_PER_SECOND, 1) - reward.adjust_health(reward.health - damage) + reward.damage_fish(damage) /datum/fishing_challenge/proc/get_difficulty() var/list/difficulty_holder = list(0) @@ -599,7 +599,7 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) deltimer(next_phase_timer) if((FISHING_MINIGAME_RULE_KILL in special_effects) && ispath(reward_path,/obj/item/fish)) var/obj/item/fish/fish = reward_path - var/wait_time = (initial(fish.health) / FISH_DAMAGE_PER_SECOND) SECONDS + var/wait_time = ((initial(fish.max_integrity) * (1 - initial(fish.integrity_failure))) / FISH_DAMAGE_PER_SECOND) SECONDS addtimer(CALLBACK(src, PROC_REF(win_anyway)), wait_time, TIMER_DELETE_ME) else if(ismovable(reward_path)) var/atom/movable/reward = reward_path @@ -926,7 +926,7 @@ GLOBAL_LIST_EMPTY(fishing_challenges_by_user) var/mutable_appearance/overlay = mutable_appearance(icon, "lure_light") overlay.color = spin_ready ? COLOR_GREEN : COLOR_RED . += overlay - . += emissive_appearance(icon, "lure_light_emissive", src, alpha = src.alpha) + . += emissive_appearance(icon, "lure_light_emissive", src, alpha = src.alpha, effect_type = EMISSIVE_NO_BLOOM) #undef WAIT_PHASE #undef BITING_PHASE diff --git a/code/modules/fishing/sources/subtypes/structures.dm b/code/modules/fishing/sources/subtypes/structures.dm index 70afbc182ee2..2adf204cc141 100644 --- a/code/modules/fishing/sources/subtypes/structures.dm +++ b/code/modules/fishing/sources/subtypes/structures.dm @@ -385,19 +385,24 @@ /datum/fish_source/vending/custom catalog_description = null //no duplicate entries on autowiki or catalog -/datum/fish_source/vending/custom/get_vending_table(obj/item/fishing_rod/rod, mob/fisherman, obj/machinery/vending/location) +/datum/fish_source/vending/custom/get_vending_table(obj/item/fishing_rod/rod, mob/fisherman, obj/machinery/vending/custom/location) var/list/table = list() ///Create a list of products, ordered by price from highest to lowest - var/list/products = location.vending_machine_input.Copy() + var/list/products = location.contents - location.component_parts sortTim(products, GLOBAL_PROC_REF(cmp_item_vending_prices)) var/bait_value = rod.bait?.get_item_credit_value() || 1 var/highest_record_price = 0 for(var/obj/item/stocked as anything in products) - if(location.vending_machine_input[stocked] <= 0) - products -= stocked - table[FISHING_DUD] += PAYCHECK_LOWER //it gets harder the emptier the machine is + //count how many items of this type are in the machine + var/item_count = 1 + for(var/obj/item/thing as anything in products) + if(stocked.type == thing.type) + item_count += 1 + //find what percentage of the total storage space this item occupies. + if(ROUND_UP((item_count / location.max_loaded_items) * 100) <= 20) + table[FISHING_DUD] += PAYCHECK_LOWER //it gets harder if it occupies less than 20% of the available space i.e the more free space is inside this machine continue if(!highest_record_price) highest_record_price = stocked.custom_price @@ -405,7 +410,7 @@ var/low = min(highest_record_price, bait_value) //the smaller the difference between product price and bait value, the more likely you're to get it. - table[stocked] = low/high * 1000 //multiply the value by 1000 for accuracy. pick_weight() doesn't work with zero decimals yet. + table[stocked] = (low / high) * 1000 //multiply the value by 1000 for accuracy. pick_weight() doesn't work with zero decimals yet. add_risks(table, bait_value, highest_record_price, length(products) * 0.5) return table diff --git a/code/modules/food_and_drinks/machinery/processor.dm b/code/modules/food_and_drinks/machinery/processor.dm index 374a5ed92bbd..859628abc987 100644 --- a/code/modules/food_and_drinks/machinery/processor.dm +++ b/code/modules/food_and_drinks/machinery/processor.dm @@ -72,7 +72,7 @@ var/atom/processed_food = new recipe.output(drop_location()) if(processed_food.reagents && what.reagents) processed_food.reagents.clear_reagents() - what.reagents.copy_to(processed_food, what.reagents.total_volume, multiplier = 1 / cached_multiplier) + what.reagents.trans_to(processed_food, what.reagents.total_volume, multiplier = 1 / cached_multiplier, copy_only = TRUE) if(cached_mats) processed_food.set_custom_materials(cached_mats, 1 / cached_multiplier) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index c09767282c3c..574b70ce41f7 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -88,7 +88,7 @@ /datum/crafting_recipe/food/garlicbread name = "Garlic Bread" - time = 40 + time = 4 SECONDS reqs = list(/obj/item/food/grown/garlic = 1, /obj/item/food/breadslice/plain = 1, /obj/item/food/butterslice = 1 @@ -117,7 +117,7 @@ /datum/crafting_recipe/food/baguette name = "Baguette" - time = 40 + time = 4 SECONDS reqs = list(/datum/reagent/consumable/salt = 1, /datum/reagent/consumable/blackpepper = 1, /obj/item/food/doughslice = 2, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm index 74c1ce5f6d3d..3f62c324a128 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_drink.dm @@ -4,7 +4,7 @@ /datum/crafting_recipe/lizardwine name = "Lizard Wine" - time = 40 + time = 4 SECONDS reqs = list( /obj/item/organ/tail/lizard = 1, /datum/reagent/consumable/ethanol = 100 @@ -15,7 +15,7 @@ /datum/crafting_recipe/moonshinejug name = "Moonshine Jug" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/consumable/ethanol/moonshine = 100 @@ -25,7 +25,7 @@ /datum/crafting_recipe/hoochbottle name = "Hooch Bottle" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /obj/item/storage/box/papersack = 1, @@ -36,7 +36,7 @@ /datum/crafting_recipe/blazaambottle name = "Blazaam Bottle" - time = 20 + time = 2 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/consumable/ethanol/blazaam = 100 @@ -46,7 +46,7 @@ /datum/crafting_recipe/champagnebottle name = "Champagne Bottle" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/consumable/ethanol/champagne = 100 @@ -56,7 +56,7 @@ /datum/crafting_recipe/trappistbottle name = "Trappist Bottle" - time = 15 + time = 1.5 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle/small = 1, /datum/reagent/consumable/ethanol/trappist = 50 @@ -66,7 +66,7 @@ /datum/crafting_recipe/goldschlagerbottle name = "Goldschlager Bottle" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/consumable/ethanol/goldschlager = 100 @@ -76,7 +76,7 @@ /datum/crafting_recipe/patronbottle name = "Patron Bottle" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/consumable/ethanol/patron = 100 @@ -88,7 +88,7 @@ /datum/crafting_recipe/holybottle name = "Holy Water Flask" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/water/holywater = 100 @@ -100,7 +100,7 @@ /datum/crafting_recipe/nothingbottle name = "Nothing Bottle" - time = 30 + time = 3 SECONDS reqs = list( /obj/item/reagent_containers/cup/glass/bottle = 1, /datum/reagent/consumable/nothing = 100 @@ -111,14 +111,14 @@ /datum/crafting_recipe/smallcarton name = "Small Carton" result = /obj/item/reagent_containers/cup/glass/bottle/juice/smallcarton - time = 10 + time = 1 SECONDS reqs = list(/obj/item/stack/sheet/cardboard = 1) category = CAT_CONTAINERS /datum/crafting_recipe/candycornliquor name = "candy corn liquor" result = /obj/item/reagent_containers/cup/glass/bottle/candycornliquor - time = 30 + time = 3 SECONDS reqs = list(/datum/reagent/consumable/ethanol/whiskey = 100, /obj/item/food/candy_corn = 1, /obj/item/reagent_containers/cup/glass/bottle = 1) @@ -127,7 +127,7 @@ /datum/crafting_recipe/kong name = "Kong" result = /obj/item/reagent_containers/cup/glass/bottle/kong - time = 30 + time = 3 SECONDS reqs = list(/datum/reagent/consumable/ethanol/whiskey = 100, /obj/item/food/monkeycube = 1, /obj/item/reagent_containers/cup/glass/bottle = 1) @@ -136,7 +136,7 @@ /datum/crafting_recipe/pruno name = "pruno mix" result = /obj/item/reagent_containers/cup/glass/bottle/pruno - time = 30 + time = 3 SECONDS reqs = list(/obj/item/storage/bag/trash = 1, /obj/item/food/breadslice/moldy = 1, /obj/item/food/grown = 4, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm index 5a0ba09e413c..24f951cbfe37 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_lizard.dm @@ -196,6 +196,7 @@ result = /obj/item/food/rootdough added_foodtypes = NUTS category = CAT_LIZARD + crafting_flags = CRAFT_CLEARS_REAGENTS /datum/crafting_recipe/food/rootdough/with_eggs name = "Rootdough (With Eggs)" @@ -207,6 +208,7 @@ ) result = /obj/item/food/rootdough/egg removed_foodtypes = RAW + crafting_flags = CRAFT_CLEARS_REAGENTS /datum/crafting_recipe/food/snail_nizaya name = "Desert snail nizaya" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm index 2991d9d5c118..a9ad9debd011 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_mexican.dm @@ -107,7 +107,7 @@ /datum/crafting_recipe/food/stuffedlegion name = "Stuffed legion" - time = 40 + time = 4 SECONDS reqs = list( /obj/item/food/meat/steak/goliath = 1, /obj/item/organ/monster_core/regenerative_core/legion = 1, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 40051d67cb59..1dead375c9fe 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -72,7 +72,7 @@ /datum/crafting_recipe/food/beans name = "Beans" - time = 40 + time = 4 SECONDS reqs = list(/datum/reagent/consumable/ketchup = 5, /obj/item/food/grown/soybeans = 2 ) @@ -111,7 +111,7 @@ /datum/crafting_recipe/food/powercrepe name = "Powercrepe" - time = 40 + time = 4 SECONDS reqs = list( /obj/item/food/flatdough = 1, /datum/reagent/consumable/milk = 1, diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index d3c761a64f1e..acf3109431cb 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -4,7 +4,7 @@ ////////////////////////////////////////////////DONUTS//////////////////////////////////////////////// /datum/crafting_recipe/food/donut - time = 15 + time = 1.5 SECONDS name = "Donut" reqs = list( /datum/reagent/consumable/sugar = 1, @@ -26,7 +26,7 @@ result = /obj/item/food/donut/chaos /datum/crafting_recipe/food/donut/meat - time = 15 + time = 1.5 SECONDS name = "Meat donut" reqs = list( /obj/item/food/meat/rawcutlet = 1, @@ -287,7 +287,7 @@ ////////////////////////////////////////////////WAFFLES//////////////////////////////////////////////// /datum/crafting_recipe/food/waffles - time = 15 + time = 1.5 SECONDS name = "Waffles" reqs = list( /obj/item/food/pastrybase = 2 @@ -330,7 +330,7 @@ ////////////////////////////////////////////////DONKPOCCKETS//////////////////////////////////////////////// /datum/crafting_recipe/food/donkpocket - time = 15 + time = 1.5 SECONDS name = "Donk-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -340,7 +340,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/dankpocket - time = 15 + time = 1.5 SECONDS name = "Dank-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -350,7 +350,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/spicy - time = 15 + time = 1.5 SECONDS name = "Spicy-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -361,7 +361,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/teriyaki - time = 15 + time = 1.5 SECONDS name = "Teriyaki-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -372,7 +372,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/pizza - time = 15 + time = 1.5 SECONDS name = "Pizza-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -383,7 +383,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/honk - time = 15 + time = 1.5 SECONDS name = "Honk-Pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -395,7 +395,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/berry - time = 15 + time = 1.5 SECONDS name = "Berry-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -406,7 +406,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/gondola - time = 15 + time = 1.5 SECONDS name = "Gondola-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -417,7 +417,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/deluxe - time = 15 + time = 1.5 SECONDS name = "Deluxe Donk-pocket" reqs = list( /obj/item/food/doughslice = 1, @@ -431,7 +431,7 @@ crafting_flags = parent_type::crafting_flags | CRAFT_MUST_BE_LEARNED /datum/crafting_recipe/food/donkpocket/deluxe/nocarb - time = 15 + time = 1.5 SECONDS name = "Deluxe Meat-pocket" reqs = list( /obj/item/organ/heart = 1, @@ -444,7 +444,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/donkpocket/deluxe/vegan - time = 15 + time = 1.5 SECONDS name = "Deluxe Donk-roll" reqs = list( /obj/item/food/doughslice = 1, @@ -459,7 +459,7 @@ ////////////////////////////////////////////////MUFFINS//////////////////////////////////////////////// /datum/crafting_recipe/food/muffin - time = 15 + time = 1.5 SECONDS name = "Muffin" reqs = list( /datum/reagent/consumable/milk = 5, @@ -508,7 +508,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/sugarcookie - time = 15 + time = 1.5 SECONDS name = "Sugar cookie" reqs = list( /datum/reagent/consumable/sugar = 5, @@ -519,7 +519,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/spookyskull - time = 15 + time = 1.5 SECONDS name = "Skull cookie" reqs = list( /obj/item/food/pastrybase = 1, @@ -531,7 +531,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/spookycoffin - time = 15 + time = 1.5 SECONDS name = "Coffin cookie" reqs = list( /obj/item/food/pastrybase = 1, @@ -543,7 +543,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/fortunecookie - time = 15 + time = 1.5 SECONDS name = "Fortune cookie" reqs = list( /obj/item/food/pastrybase = 1, @@ -557,7 +557,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/poppypretzel - time = 15 + time = 1.5 SECONDS name = "Poppy pretzel" reqs = list( /obj/item/seeds/poppy = 1, @@ -568,7 +568,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/plumphelmetbiscuit - time = 15 + time = 1.5 SECONDS name = "Plumphelmet biscuit" reqs = list( /obj/item/food/pastrybase = 1, @@ -578,7 +578,7 @@ category = CAT_PASTRY /datum/crafting_recipe/food/cracker - time = 15 + time = 1.5 SECONDS name = "Cracker" reqs = list( /datum/reagent/consumable/salt = 1, diff --git a/code/modules/hallucination/eyes_in_dark.dm b/code/modules/hallucination/eyes_in_dark.dm index 60f54bb80ab1..ec18da445ec3 100644 --- a/code/modules/hallucination/eyes_in_dark.dm +++ b/code/modules/hallucination/eyes_in_dark.dm @@ -82,7 +82,7 @@ /obj/effect/abstract/floating_eyes/process(seconds_per_tick) var/turf/below_us = get_turf(src) var/mob/seer = seer_ref?.resolve() - if(below_us.get_lumcount() < LIGHTING_TILE_IS_DARK || seer?.lighting_cutoff >= 2.5 || get_dist(seer, src) <= 1) + if(below_us.get_lumcount() > LIGHTING_TILE_IS_DARK || seer?.lighting_cutoff >= 2.5 || get_dist(seer, src) <= 1) graceful_delete() /obj/effect/abstract/floating_eyes/proc/graceful_delete() diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index c1ab15162a40..f02632934549 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -155,7 +155,7 @@ . += span_notice(" - Productivity at [productivity * 100]%.") . += span_notice(" - Converting [processed_items_per_cycle] pieces of food per cycle.") . += span_notice(" - Matter consumption at [1 / efficiency * 100]%.") - . += span_notice(" - Internal biomass converter capacity at [max_items] pieces of food, and currently holding [current_item_count].") + . += span_notice(" - Internal biomass converter capacity at [max_items] pieces of food, and currently holding [current_item_count] piece\s.") if(welded_down) . += span_info("It's moored firmly to the floor. You can unsecure its moorings with a welder.") @@ -195,86 +195,94 @@ . += emissive_appearance(icon, "[icon_state]_o_screen", src) /obj/machinery/biogenerator/wrench_act(mob/living/user, obj/item/tool) - . = ..() - default_unfasten_wrench(user, tool) - return ITEM_INTERACT_SUCCESS + switch(default_unfasten_wrench(user, tool)) + if(SUCCESSFUL_UNFASTEN) + return ITEM_INTERACT_SUCCESS + if(FAILED_UNFASTEN) + return ITEM_INTERACT_BLOCKING + return NONE -/obj/machinery/biogenerator/attackby(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) - if(user.combat_mode) - return ..() +/obj/machinery/biogenerator/screwdriver_act(mob/living/user, obj/item/tool) + if(!default_deconstruction_screwdriver(user, icon_state, icon_state, tool)) + return ITEM_INTERACT_BLOCKING - if(default_deconstruction_screwdriver(user, icon_state, icon_state, attacking_item)) - if(processing) - stop_process(FALSE) + if(processing) + stop_process(FALSE) - if(beaker) - beaker.forceMove(drop_location()) - beaker = null + if(beaker) + beaker.forceMove(drop_location()) + beaker = null - update_appearance(UPDATE_ICON) - return + update_appearance(UPDATE_ICON) + return ITEM_INTERACT_SUCCESS +/obj/machinery/biogenerator/crowbar_act(mob/living/user, obj/item/tool) + if(!default_deconstruction_crowbar(tool)) + return ITEM_INTERACT_BLOCKING var/turf/drop_location = drop_location() - if(default_deconstruction_crowbar(attacking_item)) - if(biomass > 0) - drop_location.visible_message(span_warning("Biomass spills from \the [src]'s biomass tank!")) - playsound(drop_location, 'sound/effects/slosh.ogg', 25, vary = TRUE) - new /obj/effect/decal/cleanable/greenglow(drop_location) + if(biomass > 0) + drop_location.visible_message(span_warning("Biomass spills from \the [src]'s biomass tank!")) + playsound(drop_location, 'sound/effects/slosh.ogg', 25, vary = TRUE) + new /obj/effect/decal/cleanable/greenglow(drop_location) + return ITEM_INTERACT_SUCCESS - return +/obj/machinery/biogenerator/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(user.combat_mode) + return NONE - if(istype(attacking_item, /obj/item/reagent_containers/cup)) + if(istype(tool, /obj/item/reagent_containers/cup)) if(panel_open) - to_chat(user, span_warning("Close the maintenance panel first.")) - else - insert_beaker(user, attacking_item) + to_chat(user, span_warning("Close the maintenance panel first!")) + return ITEM_INTERACT_BLOCKING - return TRUE + insert_beaker(user, tool) + return ITEM_INTERACT_SUCCESS - else if(istype(attacking_item, /obj/item/storage/bag)) + if(istype(tool, /obj/item/storage/bag)) if(current_item_count >= max_items) to_chat(user, span_warning("\The [src] is already full! Activate it to free up some space.")) - return TRUE - - var/obj/item/storage/bag/bag = attacking_item + return ITEM_INTERACT_FAILURE + var/obj/item/storage/bag/bag = tool for(var/obj/item/food/item in bag.contents) if(current_item_count >= max_items) break - if(bag.atom_storage.attempt_remove(item, src)) current_item_count++ if(bag.contents.len == 0) to_chat(user, span_info("You empty \the [bag] into \the [src].")) - else if (current_item_count >= max_items) to_chat(user, span_info("You fill \the [src] from \the [bag] to its capacity.")) - else to_chat(user, span_info("You fill \the [src] from \the [bag].")) + return ITEM_INTERACT_SUCCESS - return TRUE //no afterattack - - else if(istype(attacking_item, /obj/item/food)) + if(istype(tool, /obj/item/food)) if(current_item_count >= max_items) - to_chat(user, span_warning("\The [src] is full! Activate it.")) - - else - if(user.transferItemToLoc(attacking_item, src)) - current_item_count++ - to_chat(user, span_info("You insert \the [attacking_item] in \the [src]")) + to_chat(user, span_warning("\The [src] is already full! Activate it to free up some space.")) + return ITEM_INTERACT_FAILURE - return TRUE //no afterattack - - else - to_chat(user, span_warning("You cannot put \the [attacking_item] in \the [src]!")) + if(user.transferItemToLoc(tool, src)) + to_chat(user, span_info("You insert \the [tool] in \the [src]")) + return ITEM_INTERACT_SUCCESS + to_chat(user, span_warning("You cannot put \the [tool] in \the [src]!")) + return ITEM_INTERACT_BLOCKING /obj/machinery/biogenerator/click_alt(mob/living/user) eject_beaker(user) return CLICK_ACTION_SUCCESS +/obj/machinery/biogenerator/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) + . = ..() + if(istype(arrived, /obj/item/food)) + current_item_count += 1 // No need to track qdels because they call Exited() + +/obj/machinery/biogenerator/Exited(atom/movable/gone, direction) + . = ..() + if(istype(gone, /obj/item/food)) + current_item_count -= 1 /// Activates biomass processing and converts all inserted food products into biomass /obj/machinery/biogenerator/proc/start_process() @@ -294,7 +302,6 @@ soundloop.start() update_appearance() - /obj/machinery/biogenerator/process(seconds_per_tick) if(!processing) return @@ -315,10 +322,8 @@ if(food_to_convert.flags_1 & HOLOGRAM_1) qdel(food_to_convert) - current_item_count = max(current_item_count - 1, 0) - continue - - convert_to_biomass(food_to_convert) + else + convert_to_biomass(food_to_convert) use_energy(active_power_usage * seconds_per_tick) @@ -330,8 +335,7 @@ /** - * Simple helper proc that converts the given food item into biomass for the generator, - * while also handling removing it and modifying the `current_item_count`. + * Simple helper proc that converts the given food item into biomass for the generator, while also handling removing it * * Arguments: * * food_to_convert - The food item that will be converted into biomass and @@ -339,10 +343,8 @@ */ /obj/machinery/biogenerator/proc/convert_to_biomass(obj/item/food/food_to_convert) var/nutriments = ROUND_UP(food_to_convert.reagents.get_reagent_amount(/datum/reagent/consumable/nutriment, type_check = REAGENT_PARENT_TYPE)) - qdel(food_to_convert) - current_item_count = max(current_item_count - 1, 0) biomass += nutriments * productivity - + qdel(food_to_convert) /** * Simple helper to handle stopping the process of the biogenerator. diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 389e82a95450..5d110f8ef8ee 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -1205,6 +1205,12 @@ /obj/machinery/hydroponics/soil/on_deconstruction(disassembled) new /obj/item/stack/ore/glass(drop_location(), 3) +/obj/machinery/hydroponics/soil/rich + name = "rich soil" + desc = "A rich patch of dirt, usually used in gardens." + icon_state = "rich_soil" + maxnutri = 20 + ///The usb port circuit /obj/item/circuit_component/hydroponics diff --git a/code/modules/hydroponics/unique_plant_genes.dm b/code/modules/hydroponics/unique_plant_genes.dm index c35bf6e7a0e7..1691dbecfb13 100644 --- a/code/modules/hydroponics/unique_plant_genes.dm +++ b/code/modules/hydroponics/unique_plant_genes.dm @@ -21,7 +21,7 @@ antimagic_flags = MAGIC_RESISTANCE|MAGIC_RESISTANCE_HOLY, \ inventory_flags = ITEM_SLOT_HANDS, \ charges = shield_uses, \ - drain_antimagic = CALLBACK(src, PROC_REF(drain_antimagic)), \ + block_magic = CALLBACK(src, PROC_REF(drain_antimagic)), \ expiration = CALLBACK(src, PROC_REF(expire)), \ ) diff --git a/code/modules/instruments/items.dm b/code/modules/instruments/items.dm index 2fe51b434e03..de6ae2d0bbf1 100644 --- a/code/modules/instruments/items.dm +++ b/code/modules/instruments/items.dm @@ -23,19 +23,22 @@ QDEL_NULL(song) return ..() -/obj/item/instrument/proc/should_stop_playing(atom/music_player) +/obj/item/instrument/proc/can_play(atom/music_player) if(!ismob(music_player)) - return STOP_PLAYING + return FALSE var/mob/user = music_player - if(user.incapacitated || !((loc == user) || (isturf(loc) && Adjacent(user)))) // sorry, no more TK playing. - return STOP_PLAYING + if(user.incapacitated) + return FALSE + if(!Adjacent(user)) + return FALSE + return TRUE /obj/item/instrument/suicide_act(mob/living/user) user.visible_message(span_suicide("[user] begins to play 'Gloomy Sunday'! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS /obj/item/instrument/ui_interact(mob/user, datum/tgui/ui) - song.ui_interact(user) + return song.ui_interact(user) /obj/item/instrument/violin name = "space violin" diff --git a/code/modules/instruments/piano_synth.dm b/code/modules/instruments/piano_synth.dm index 25c65e656c37..f0357eb789c9 100644 --- a/code/modules/instruments/piano_synth.dm +++ b/code/modules/instruments/piano_synth.dm @@ -63,7 +63,7 @@ worn_icon = 'icons/mob/clothing/ears.dmi' inhand_icon_state = null slot_flags = ITEM_SLOT_EARS - strip_delay = 100 //air pods don't fall out + strip_delay = 10 SECONDS //air pods don't fall out instrument_range = 0 //you're paying for quality here custom_premium_price = PAYCHECK_CREW * 36 //Save up 5 shifts worth of pay just to lose it down a drainpipe on the sidewalk diff --git a/code/modules/instruments/songs/_song.dm b/code/modules/instruments/songs/_song.dm index fb0e4f087449..f3f630cc7ecd 100644 --- a/code/modules/instruments/songs/_song.dm +++ b/code/modules/instruments/songs/_song.dm @@ -8,6 +8,9 @@ /// Name of the song var/name = "Untitled" + /// ID for syncing songs together + var/id = "" + /// The atom we're attached to/playing from var/atom/parent @@ -212,6 +215,32 @@ current_chord = 1 music_player = user START_PROCESSING(SSinstruments, src) + if(id) + sync_play() + +/** + * Attempts to find other instruments with the same ID and syncs them to our song. + */ +/datum/song/proc/sync_play() + for(var/datum/song/other_instrument as anything in SSinstruments.songs) + if(other_instrument == src || other_instrument.id != id) + continue + if(other_instrument.playing) + continue + var/atom/other_player = other_instrument.find_sync_player() + if(isnull(other_player) || !(other_player in view(parent))) + continue + // copies the main song info to target songs + other_instrument.lines = lines.Copy() + other_instrument.max_repeats = max_repeats + other_instrument.tempo = tempo + other_instrument.start_playing(other_player) + +/** + * Finds a player which would reasonably be able to play this song. + */ +/datum/song/proc/find_sync_player() + return null /** * Stops playing, terminating all sounds if in synthesized mode. Clears hearing_mobs. @@ -388,7 +417,14 @@ if(. == STOP_PLAYING || . == IGNORE_INSTRUMENT_CHECKS) return var/obj/item/instrument/I = parent - return I.should_stop_playing(player) + return I.can_play(player) ? NONE : STOP_PLAYING + +/datum/song/handheld/find_sync_player() + var/obj/item/instrument/instrument = parent + var/mob/living/player = get(parent, /mob/living) + if(instrument.can_play(player)) + return player + return null // subtype for stationary structures, like pianos /datum/song/stationary @@ -398,4 +434,12 @@ if(. == STOP_PLAYING || . == IGNORE_INSTRUMENT_CHECKS) return TRUE var/obj/structure/musician/M = parent - return M.should_stop_playing(player) + return M.can_play(player) ? NONE : STOP_PLAYING + +/datum/song/stationary/find_sync_player() + var/obj/structure/musician/piano = parent + for(var/mob/living/player in view(parent, 1)) + if(piano.can_play(player)) + return player + + return null diff --git a/code/modules/instruments/songs/editor.dm b/code/modules/instruments/songs/editor.dm index 4029e5c39541..aef02858c037 100644 --- a/code/modules/instruments/songs/editor.dm +++ b/code/modules/instruments/songs/editor.dm @@ -9,6 +9,7 @@ /datum/song/ui_data(mob/user) var/list/data = ..() + data["id"] = id data["using_instrument"] = using_instrument?.name || "No instrument loaded!" data["note_shift"] = note_shift data["octaves"] = round(note_shift / 12, 0.01) @@ -71,6 +72,11 @@ else stop_playing() return TRUE + if("set_instrument_id") + var/new_id = reject_bad_name(LOWER_TEXT(params["id"]), max_length = 20, allow_numbers = TRUE, cap_after_symbols = FALSE) + if(new_id) + id = new_id + return TRUE if("change_instrument") var/new_instrument = params["new_instrument"] //only one instrument, so no need to bother changing it. diff --git a/code/modules/instruments/stationary.dm b/code/modules/instruments/stationary.dm index c9b826392402..e9413cfbe41d 100644 --- a/code/modules/instruments/stationary.dm +++ b/code/modules/instruments/stationary.dm @@ -3,9 +3,12 @@ desc = "Something broke, contact coderbus." interaction_flags_atom = INTERACT_ATOM_ATTACK_HAND | INTERACT_ATOM_UI_INTERACT | INTERACT_ATOM_REQUIRES_DEXTERITY integrity_failure = 0.25 + /// IF FALSE music stops when the piano is unanchored. var/can_play_unanchored = FALSE + /// Our allowed list of instrument ids. This is nulled on initialize. var/list/allowed_instrument_ids = list("r3grand","r3harpsi","crharpsi","crgrand1","crbright1", "crichugan", "crihamgan","piano") - var/datum/song/song + /// Our song datum. + var/datum/song/stationary/song /obj/structure/musician/Initialize(mapload) . = ..() @@ -16,18 +19,22 @@ QDEL_NULL(song) return ..() -/obj/structure/musician/proc/should_stop_playing(atom/music_player) - if(!(anchored || can_play_unanchored) || !ismob(music_player)) - return STOP_PLAYING +/obj/structure/musician/proc/can_play(atom/music_player) + if(!anchored && !can_play_unanchored) + return FALSE + if(!ismob(music_player)) + return FALSE var/mob/user = music_player - if(!ISADVANCEDTOOLUSER(user)) - to_chat(src, span_warning("You don't have the dexterity to do this!")) - return STOP_PLAYING + return FALSE + if(user.incapacitated) + return FALSE + if(!Adjacent(user)) + return FALSE + return TRUE /obj/structure/musician/ui_interact(mob/user) - . = ..() - song.ui_interact(user) + return song.ui_interact(user) /obj/structure/musician/wrench_act(mob/living/user, obj/item/tool) . = ..() @@ -46,6 +53,8 @@ /obj/structure/musician/piano/Initialize(mapload) . = ..() AddElement(/datum/element/falling_hazard, damage = 60, wound_bonus = 10, hardhat_safety = FALSE, crushes = TRUE, impact_sound = 'sound/effects/piano_hit.ogg') + AddElement(/datum/element/climbable) + AddElement(/datum/element/elevation, pixel_shift = 10) /obj/structure/musician/piano/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) switch(damage_type) diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm index 9d2d443fd37d..d384bac67e03 100644 --- a/code/modules/jobs/access.dm +++ b/code/modules/jobs/access.dm @@ -79,8 +79,8 @@ /obj/item/proc/GetID() return null -/obj/item/proc/RemoveID() +/obj/item/proc/remove_id() return null -/obj/item/proc/InsertID() +/obj/item/proc/insert_id() return FALSE diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 59078c8507fe..869c59c7044e 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -411,7 +411,7 @@ card.registered_account = account account.bank_cards += card - equipped.sec_hud_set_ID() + equipped.update_ID_card() var/obj/item/modular_computer/pda/pda = equipped.get_item_by_slot(pda_slot) diff --git a/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm b/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm index 9bd6436994df..2bc8ffdaf32c 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_costumes.dm @@ -14,8 +14,8 @@ cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor_type = /datum/armor/chaplainsuit_armor - strip_delay = 80 - equip_delay_other = 60 + strip_delay = 8 SECONDS + equip_delay_other = 6 SECONDS /datum/armor/chaplainsuit_armor melee = 50 @@ -130,20 +130,10 @@ desc = "It has the unyielding gaze of a god eternally forgotten." icon_state = "clockwork_helmet" inhand_icon_state = null - armor_type = /datum/armor/chaplain_clock flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - strip_delay = 8 SECONDS dog_fashion = null -/datum/armor/chaplain_clock - melee = 50 - bullet = 10 - laser = 10 - energy = 10 - fire = 80 - acid = 80 - /obj/item/clothing/suit/chaplainsuit/armor/clock name = "forgotten armour" desc = "It sounds like hissing steam, ticking cogs, gone silent, It looks like a dead machine, trying to tick with life." @@ -162,20 +152,12 @@ worn_icon = 'icons/mob/clothing/head/chaplain.dmi' icon_state = "knight_templar" inhand_icon_state = null - armor_type = /datum/armor/helmet_chaplain + armor_type = /datum/armor/chaplainsuit_armor flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - strip_delay = 80 + strip_delay = 8 SECONDS dog_fashion = null -/datum/armor/helmet_chaplain - melee = 50 - bullet = 10 - laser = 10 - energy = 10 - fire = 80 - acid = 80 - /obj/item/clothing/suit/chaplainsuit/armor/templar name = "crusader armour" desc = "God wills it!" @@ -206,6 +188,7 @@ desc = "Defend the treasure..." icon_state = "knight_ancient" inhand_icon_state = null + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS /obj/item/clothing/suit/chaplainsuit/armor/ancient/Initialize(mapload) . = ..() @@ -232,6 +215,7 @@ desc = "The ideal outfit for burning the unfaithful." icon_state = "crusader" inhand_icon_state = null + body_parts_covered = CHEST|GROIN|LEGS /obj/item/clothing/suit/chaplainsuit/armor/crusader name = "crusader's armour" diff --git a/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.dm b/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.dm index 3eea5f79aa5c..c0c2a499d3f0 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_divine_archer.dm @@ -16,12 +16,12 @@ desc = "Outer coat for divine archers. Offers some protection." icon_state = "archercoat" inhand_icon_state = "archercoat" - body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS + body_parts_covered = CHEST|GROIN|LEGS cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS armor_type = /datum/armor/chaplainsuit_armor_weaker - strip_delay = 80 - equip_delay_other = 60 + strip_delay = 8 SECONDS + equip_delay_other = 6 SECONDS hoodtype = /obj/item/clothing/head/hooded/chaplain_hood/divine_archer hood_up_affix = "" @@ -47,9 +47,11 @@ desc = "Bracers, a wise choice for archers who do not want their outfit to get in the way of drawing and firing their weapon." icon_state = "archerbracers" inhand_icon_state = "archerbracers" - strip_delay = 40 - equip_delay_other = 20 + body_parts_covered = ARMS|HANDS + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS resistance_flags = NONE + armor_type = /datum/armor/chaplainsuit_armor_weaker /// boots /obj/item/clothing/shoes/divine_archer @@ -57,7 +59,18 @@ desc = "Boots, For steady footing while aiming." icon_state = "archerboots" inhand_icon_state = "archerboots" - strip_delay = 30 - equip_delay_other = 50 + body_parts_covered = LEGS|FEET + strip_delay = 3 SECONDS + equip_delay_other = 5 SECONDS resistance_flags = NONE fastening_type = SHOES_SLIPON + armor_type = /datum/armor/shoes_divine_archer + +/datum/armor/shoes_divine_archer + melee = 10 + bullet = 5 + laser = 5 + energy = 5 + fire = 60 + acid = 60 + wound = 10 diff --git a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm index 2c512ba59fae..de65b4e7021a 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_nullrod.dm @@ -36,26 +36,33 @@ effects_we_clear = list(/obj/effect/rune, /obj/effect/heretic_rune, /obj/effect/cosmic_rune), \ ) AddElement(/datum/element/bane, mob_biotypes = MOB_SPIRIT, damage_multiplier = 0, added_damage = 25, requires_combat_mode = FALSE) + ADD_TRAIT(src, TRAIT_NULLROD_ITEM, INNATE_TRAIT) - if((!GLOB.holy_weapon_type || !station_holy_item) && type == /obj/item/nullrod) - var/list/rods = list() - for(var/obj/item/nullrod/nullrod_type as anything in typesof(/obj/item/nullrod)) - if(!initial(nullrod_type.chaplain_spawnable)) - continue - rods[nullrod_type] = initial(nullrod_type.menu_description) - //special non-nullrod subtyped shit - rods[/obj/item/gun/ballistic/bow/divine/with_quiver] = "A divine bow and 10 quivered holy arrows." - rods[/obj/item/organ/cyberimp/arm/toolkit/shard/scythe] = "A shard that implants itself into your arm, \ - allowing you to conjure forth a vorpal scythe. \ - Allows you to behead targets for empowered strikes. \ - Harms you if you dismiss the scythe without first causing harm to a creature. \ - The shard also causes you to become Morbid, shifting your interests towards the macabre." - rods[/obj/item/melee/skateboard/holyboard] = "A skateboard that grants you flight and anti-magic abilities while ridden. Fits in your bag." - AddComponent(/datum/component/subtype_picker, rods, CALLBACK(src, PROC_REF(on_holy_weapon_picked))) + if((GLOB.holy_weapon_type && station_holy_item) || type != /obj/item/nullrod) + return + + var/list/rods = list() + for(var/obj/item/nullrod/nullrod_type as anything in typesof(/obj/item/nullrod)) + if(!initial(nullrod_type.chaplain_spawnable)) + continue + rods[nullrod_type] = initial(nullrod_type.menu_description) + //special non-nullrod subtyped shit + rods[/obj/item/gun/ballistic/bow/divine/with_quiver] = "A divine bow and 10 quivered holy arrows." + rods[/obj/item/organ/cyberimp/arm/toolkit/shard/scythe] = "A shard that implants itself into your arm, \ + allowing you to conjure forth a vorpal scythe. \ + Allows you to behead targets for empowered strikes. \ + Harms you if you dismiss the scythe without first causing harm to a creature. \ + The shard also causes you to become Morbid, shifting your interests towards the macabre." + rods[/obj/item/melee/skateboard/holyboard] = "A skateboard that grants you flight and anti-magic abilities while ridden. Fits in your bag." + AddComponent(/datum/component/subtype_picker, rods, CALLBACK(src, PROC_REF(on_holy_weapon_picked))) /// Callback for subtype picker, invoked when the chaplain picks a new nullrod /obj/item/nullrod/proc/on_holy_weapon_picked(obj/item/nullrod/new_holy_weapon, mob/living/picker) - new_holy_weapon.on_selected(src, picker) + // Some nullrod variants aren't nullrod subtypes + if(istype(new_holy_weapon)) + new_holy_weapon.on_selected(src, picker) + else // In which case they still need to be marked as one + ADD_TRAIT(new_holy_weapon, TRAIT_NULLROD_ITEM, INNATE_TRAIT) if(!station_holy_item) return GLOB.holy_weapon_type = new_holy_weapon.type diff --git a/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm b/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm index 57a786bd20dd..f521b7603ec5 100644 --- a/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm +++ b/code/modules/jobs/job_types/chaplain/chaplain_vorpal_scythe.dm @@ -11,6 +11,11 @@ If the scythe isn't empowered when you sheath it, you take a heap of damage and items_to_create = list(/obj/item/vorpalscythe) organ_traits = list(TRAIT_MORBID) +/obj/item/organ/cyberimp/arm/toolkit/shard/scythe/Initialize(mapload) + . = ..() + for (var/obj/item/scythe as anything in items_list) + ADD_TRAIT(scythe, TRAIT_NULLROD_ITEM, INNATE_TRAIT) + /obj/item/organ/cyberimp/arm/toolkit/shard/scythe/Retract() var/obj/item/vorpalscythe/scythe = active_item if(!scythe) diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index ba5930dcd83b..4cd19feec4f8 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -123,26 +123,3 @@ for(var/mob/living/basic/pet/dog/corgi/ian/staff_pet in GLOB.dead_mob_list) . += list(/datum/reagent/medicine/strange_reagent = 20) break - -/obj/item/paper/fluff/ids_for_dummies - name = "Memo: New IDs and You" - desc = "It looks like this was left by the last Head of Personnel to man this station. It explains some information about new IDs." - default_raw_text = {" -

Dummy's Guide To New IDs

-

The Basics

-

Card Trim - This is the job assigned to the card. The card's trim decides what Basic accesses the card can hold. Basic accesses cost nothing! Grey ID cards cannot hold Head of Staff or Captain trims. Silver ID cards can hold Head of Staff trims but not Captain trims and are in a box in the Head of Personnel's office and orderable from cargo. Gold ID cards can hold all access. The only guaranteed Gold ID card is the Captain's Spare, held in a golden safe on the bridge with access codes given to the station's highest ranking officer. All other gold ID cards are carried exclusively by Captains.

-

Wildcards - These are any additional accesses a card has that are not part of the card's trim. Lower quality ID cards have fewer wildcards and the wildcards they do have are of lower rarity.

-

Job Changes - To change a job, you need to go to the PDA & ID Painter that's in every Head of Personnel office. This can be used to apply a new trim to an ID card, but this will wipe all that card's accesses in the process. You then take this ID card to any modular computer with the Plexagon Access Management app and when logged in with the appropriate Head of Staff or ID Console access can then select from Templates to quick-fill accesses or apply them manually.

-

Firing Staff - Terminating a staff member's employment will wipe any trim from their card, remove all access and instantly set them as demoted.

-

Changing Jobs - Step by Step

-
    -
  1. Grab an appropriate ID card. Head of Staff jobs require a silver ID card. Captain requires a gold ID card.
  2. -
  3. Insert the ID card into the combined PDA Painter and ID Trimmer in the HoP office.
  4. -
  5. Select to appropriate trim then hit the button to apply it to the card. This will wipe all the card's access.
  6. -
  7. Remove the ID from the PDA/ID Painter and open up any modular computer with the Plexagon Access Management application downloaded.
  8. -
  9. Login to the app using an ID card with any Head of Staff private office access for limited access or the ID Console access for unlimited access.
  10. -
  11. Select a template from the drop-down. This will apply as many basic accesses as possible based on the trim of the ID card and may apply wildcard accesses for Head of Staff and Captain trims. For best results, match the template to the ID card's trim.
  12. -
  13. Manually tweak any other accesses as necessary. Add wildcard accesses. Tweak basic accesses.
  14. -
  15. Don't forget to set a custom occupation! SecHUDs now interface direct with the ID card's trim and display the trim's job icon even when a custom assignment is set.
  16. -
- "} diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 27503d38c260..87bfd0b18c93 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -121,7 +121,7 @@ GLOBAL_LIST_EMPTY(security_officer_distribution) if(dep_trim) var/obj/item/card/id/worn_id = spawning.get_idcard(hand_first = FALSE) SSid_access.apply_trim_to_card(worn_id, dep_trim) - spawning.sec_hud_set_ID() + spawning.update_ID_card() // Update PDA to match new trim. var/obj/item/modular_computer/pda/pda = spawning.get_item_by_slot(ITEM_SLOT_BELT) diff --git a/code/modules/library/book.dm b/code/modules/library/book.dm index e25935cf0742..be88edcf6d5e 100644 --- a/code/modules/library/book.dm +++ b/code/modules/library/book.dm @@ -138,7 +138,7 @@ /// Checks for whether we can vandalize this book, to ensure we still can after each input. /// Uses to_chat over balloon alerts to give more detailed information as to why. /obj/item/book/proc/can_vandalize(mob/living/user, obj/item/tool) - if(!user.can_perform_action(src) || !user.can_write(tool)) + if(!user.can_perform_action(src) || !user.can_write(tool, TRUE)) return FALSE if(user.is_blind()) to_chat(user, span_warning("As you are trying to write on the book, you suddenly feel very stupid!")) diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index edf77d4873ed..622664816594 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -507,12 +507,8 @@ GLOBAL_VAR_INIT(library_table_modified, 0) return if(!GLOB.news_network) say("No news network found on station. Aborting.") - var/channelexists = FALSE - for(var/datum/feed_channel/feed in GLOB.news_network.network_channels) - if(feed.channel_name == LIBRARY_NEWSFEED) - channelexists = TRUE - break - if(!channelexists) + var/datum/feed_channel/library_channel = GLOB.news_network.network_channels_by_name[LIBRARY_NEWSFEED] + if(isnull(library_channel)) GLOB.news_network.create_feed_channel(LIBRARY_NEWSFEED, "Library", "The official station book club!", null) var/obj/machinery/libraryscanner/scan = get_scanner() diff --git a/code/modules/library/skill_learning/generic_skillchips/point.dm b/code/modules/library/skill_learning/generic_skillchips/point.dm index ba6a2e3e236e..8b26e413b7e2 100644 --- a/code/modules/library/skill_learning/generic_skillchips/point.dm +++ b/code/modules/library/skill_learning/generic_skillchips/point.dm @@ -53,7 +53,7 @@ . = ..() arrow_overlay = null -/datum/action/change_pointer_color/Trigger(trigger_flags) +/datum/action/change_pointer_color/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/loadout/categories/shoes.dm b/code/modules/loadout/categories/shoes.dm index 8e58dac0aa6e..22ef52d62be0 100644 --- a/code/modules/loadout/categories/shoes.dm +++ b/code/modules/loadout/categories/shoes.dm @@ -42,3 +42,7 @@ /datum/loadout_item/shoes/glow_shoes name = "Shoes (Glowing, Colourable)" item_path = /obj/item/clothing/shoes/glow + +/datum/loadout_item/shoes/jackboots + name = "Workboots (Black)" + item_path = /obj/item/clothing/shoes/workboots/black diff --git a/code/modules/lost_crew/body_bags.dm b/code/modules/lost_crew/body_bags.dm index 2a23d5f7253b..ab94fea27580 100644 --- a/code/modules/lost_crew/body_bags.dm +++ b/code/modules/lost_crew/body_bags.dm @@ -7,15 +7,21 @@ /obj/structure/closet/body_bag/lost_crew name = "long-term body bag" desc = "A plastic bag designed for the long-term storage and transportation of cadavers." - icon_state = "bodybag_lost" - foldedbag_path = /obj/item/bodybag/lost_crew /// Filled with one body. If folded, gives the parent type so we dont make infinite corpses /obj/structure/closet/body_bag/lost_crew/with_body /// Whether or not we spawn a paper with everything thats happened to the body var/debug = FALSE + /// Have we spawned a body yet? + var/body_spawned = FALSE + +/obj/structure/closet/body_bag/lost_crew/with_body/attempt_fold(mob/living/carbon/human/the_folder) + if (!body_spawned) + to_chat(the_folder, span_warning("The body inside of [src] prevents you from folding it up!")) + return FALSE + return ..() /obj/structure/closet/body_bag/lost_crew/with_body/PopulateContents() . = ..() @@ -26,6 +32,7 @@ var/mob/living/corpse = GLOB.lost_crew_manager.create_lost_crew(revivable = TRUE, recovered_items = recovered_items, protected_items = protected_items, body_data = lost_crew_data) corpse.mind_initialize() corpse.forceMove(src) + body_spawned = TRUE // Drop stuff like dropped limbs and organs with them in the bag for(var/obj/object in recovered_items) diff --git a/code/modules/mafia/_defines.dm b/code/modules/mafia/_defines.dm index ef24645bb053..eeca692766d6 100644 --- a/code/modules/mafia/_defines.dm +++ b/code/modules/mafia/_defines.dm @@ -24,31 +24,34 @@ ///How fast the game will speed up when half the players are gone. #define MAFIA_SPEEDUP_INCREASE 2 -#define MAFIA_TEAM_TOWN "town" -#define MAFIA_TEAM_MAFIA "mafia" -#define MAFIA_TEAM_SOLO "solo" +//'Team' flags, used to know which alliance your role is part of. +#define MAFIA_TEAM_TOWN (1<<0) +#define MAFIA_TEAM_MAFIA (1<<1) +#define MAFIA_TEAM_SOLO (1<<2) +//those part of the 'dead' faction can hear dead chat, not a "faction" of players. +#define MAFIA_TEAM_DEAD (1<<3) //types of town roles for random setup gen /// Add this if you don't want a role to be a choice in the selection -#define TOWN_OVERFLOW "overflow" +#define TOWN_OVERFLOW "town overflow" /// roles that learn info about others in the game (chaplain, detective, psych) -#define TOWN_INVEST "invest" +#define TOWN_INVEST "town invest" /// roles that keep other roles safe (doctor, sec officer, and weirdly enough lawyer counts) -#define TOWN_PROTECT "protect" +#define TOWN_PROTECT "town protect" /// roles that are only there to kill bad guys. -#define TOWN_KILLING "killing" +#define TOWN_KILLING "town killing" /// roles that don't fit into anything else (hop) -#define TOWN_SUPPORT "support" +#define TOWN_SUPPORT "town support" //other types (mafia team, neutrals) /// normal vote kill changelings -#define MAFIA_REGULAR "regular" +#define MAFIA_REGULAR "mafia" /// every other changeling role that has extra abilities -#define MAFIA_SPECIAL "special" +#define MAFIA_SPECIAL "mafia special" /// role that wins solo that nobody likes -#define NEUTRAL_KILL "kill" +#define NEUTRAL_KILL "neutral killing" /// role that upsets the game aka obsessed, usually worse for town than mafia but they can vote against mafia -#define NEUTRAL_DISRUPT "disrupt" +#define NEUTRAL_DISRUPT "neutral chaos" //role flags (special status of roles like detection immune) ///to all forms of detection, shows themselves as an assistant. diff --git a/code/modules/mafia/abilities/abilities.dm b/code/modules/mafia/abilities/abilities.dm index deba0f670ff3..cb1127711b85 100644 --- a/code/modules/mafia/abilities/abilities.dm +++ b/code/modules/mafia/abilities/abilities.dm @@ -17,12 +17,12 @@ ///The mafia role this ability is targeting, if necessary. var/datum/mafia_role/target_role -/datum/mafia_ability/New(datum/mafia_controller/game, datum/mafia_role/host_role) +/datum/mafia_ability/New(datum/mafia_role/host_role) . = ..() src.host_role = host_role if(action_priority) - RegisterSignal(game, action_priority, PROC_REF(perform_action_target)) - RegisterSignal(game, COMSIG_MAFIA_NIGHT_END, PROC_REF(clean_action_refs)) + RegisterSignal(host_role.mafia_game_controller, action_priority, PROC_REF(perform_action_target)) + RegisterSignal(host_role.mafia_game_controller, COMSIG_MAFIA_NIGHT_END, PROC_REF(clean_action_refs)) /datum/mafia_ability/Destroy(force) host_role = null @@ -35,7 +35,7 @@ return FALSE /** - * Called when refs need to be cleared, when the target is no longer set. + * Called when refs need to be cleared, the last thing that is called in a night cycle. */ /datum/mafia_ability/proc/clean_action_refs(datum/mafia_controller/game) SIGNAL_HANDLER @@ -51,16 +51,16 @@ * potential_target - The player we are attempting to validate the action on. * silent - Whether to give feedback to the player about why the action cannot be used. */ -/datum/mafia_ability/proc/validate_action_target(datum/mafia_controller/game, datum/mafia_role/potential_target, silent = FALSE) +/datum/mafia_ability/proc/validate_action_target(datum/mafia_role/potential_target, silent = FALSE) SHOULD_CALL_PARENT(TRUE) - if(game.phase != valid_use_period) + if(host_role.game_status == MAFIA_DEAD) + return FALSE + if(host_role.mafia_game_controller.phase != valid_use_period) return FALSE if(host_role.role_flags & ROLE_ROLEBLOCKED) host_role.send_message_to_player(span_warning("You were roleblocked!")) return FALSE - if(host_role.game_status == MAFIA_DEAD) - return FALSE if(potential_target) if(use_flags & CAN_USE_ON_DEAD) @@ -95,9 +95,7 @@ if(!using_ability) return FALSE - if(host_role.game_status == MAFIA_DEAD) - return FALSE - if(!validate_action_target(game, target_role)) + if(!validate_action_target(target_role)) return FALSE if(target_role) @@ -114,8 +112,8 @@ * Sets the ability's target, which will cause the action to be performed on them at the end of the night. * Subtypes can override this for things like self-abilities (such as shooting visitors). */ -/datum/mafia_ability/proc/set_target(datum/mafia_controller/game, datum/mafia_role/new_target) - if(!validate_action_target(game, new_target)) +/datum/mafia_ability/proc/set_target(datum/mafia_role/new_target) + if(!validate_action_target(new_target)) return FALSE var/feedback_text = "You will %WILL_PERFORM% [ability_action]%SELF%" diff --git a/code/modules/mafia/abilities/investigative/autopsy.dm b/code/modules/mafia/abilities/investigative/autopsy.dm new file mode 100644 index 000000000000..9e5cef2ae515 --- /dev/null +++ b/code/modules/mafia/abilities/investigative/autopsy.dm @@ -0,0 +1,18 @@ +/** + * Autopsy + * + * During the night, choose someone to check their role. + */ +/datum/mafia_ability/autopsy + name = "Autopsy" + ability_action = "perform an autopsy on" + use_flags = CAN_USE_ON_OTHERS|CAN_USE_ON_DEAD + +/datum/mafia_ability/autopsy/perform_action_target(datum/mafia_controller/game, datum/mafia_role/day_target) + . = ..() + if(!.) + return FALSE + + to_chat(host_role.body, span_warning("Your autopsy report on [target_role.body.real_name] \ + reveals their role was [target_role.name].")) + return TRUE diff --git a/code/modules/mafia/abilities/investigative/pray.dm b/code/modules/mafia/abilities/investigative/pray.dm deleted file mode 100644 index cbf8459f9f2a..000000000000 --- a/code/modules/mafia/abilities/investigative/pray.dm +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Pray - * - * During the night, revealing someone will announce their role when day comes. - * This is one time use, we'll delete ourselves once done. - */ -/datum/mafia_ability/seance - name = "Seance" - ability_action = "commune with the spirit of" - use_flags = CAN_USE_ON_OTHERS|CAN_USE_ON_DEAD - -/datum/mafia_ability/seance/perform_action_target(datum/mafia_controller/game, datum/mafia_role/day_target) - . = ..() - if(!.) - return FALSE - - host_role.send_message_to_player(span_warning("You invoke spirit of [target_role.body.real_name] and learn their role was [target_role.name].")) - return TRUE diff --git a/code/modules/mafia/abilities/killing/alert.dm b/code/modules/mafia/abilities/killing/alert.dm index 74710087137b..1024f90a20c5 100644 --- a/code/modules/mafia/abilities/killing/alert.dm +++ b/code/modules/mafia/abilities/killing/alert.dm @@ -8,7 +8,7 @@ ability_action = "send any visitors home with buckshot tonight" use_flags = CAN_USE_ON_SELF -/datum/mafia_ability/attack_visitors/set_target(datum/mafia_controller/game, datum/mafia_role/new_target) +/datum/mafia_ability/attack_visitors/set_target(datum/mafia_role/new_target) . = ..() if(!.) return FALSE diff --git a/code/modules/mafia/abilities/killing/kill.dm b/code/modules/mafia/abilities/killing/kill.dm index d02fd6c287de..8c4382db9649 100644 --- a/code/modules/mafia/abilities/killing/kill.dm +++ b/code/modules/mafia/abilities/killing/kill.dm @@ -21,7 +21,7 @@ host_role.send_message_to_player(span_danger("Your attempt at killing [target_role.body.real_name] was prevented!")) else target_role.send_message_to_player(span_userdanger("You have been [attack_action] \a [host_role.name]!")) - if(honorable && (target_role.team != MAFIA_TEAM_TOWN)) + if(honorable && (target_role.team & MAFIA_TEAM_TOWN)) host_role.send_message_to_player(span_userdanger("You have killed an innocent crewmember. You will die tomorrow night.")) RegisterSignal(game, COMSIG_MAFIA_SUNDOWN, PROC_REF(internal_affairs)) return TRUE diff --git a/code/modules/mafia/abilities/protective/heal.dm b/code/modules/mafia/abilities/protective/heal.dm index 4c47d1c85ab5..b1be91e5dc3e 100644 --- a/code/modules/mafia/abilities/protective/heal.dm +++ b/code/modules/mafia/abilities/protective/heal.dm @@ -13,7 +13,7 @@ ///The message sent when you've successfully saved someone. var/saving_message = "someone nursed you back to health" -/datum/mafia_ability/heal/set_target(datum/mafia_controller/game, datum/mafia_role/new_target) +/datum/mafia_ability/heal/set_target(datum/mafia_role/new_target) . = ..() if(!.) return FALSE diff --git a/code/modules/mafia/abilities/protective/vest.dm b/code/modules/mafia/abilities/protective/vest.dm index b65a8cb73ba2..e8cb41671ffe 100644 --- a/code/modules/mafia/abilities/protective/vest.dm +++ b/code/modules/mafia/abilities/protective/vest.dm @@ -13,7 +13,7 @@ ///Amount of vests that can be used until the power deletes itself. var/charges = STARTING_VEST_AMOUNT -/datum/mafia_ability/vest/set_target(datum/mafia_controller/game, datum/mafia_role/new_target) +/datum/mafia_ability/vest/set_target(datum/mafia_role/new_target) . = ..() if(!.) return FALSE diff --git a/code/modules/mafia/abilities/support/seance.dm b/code/modules/mafia/abilities/support/seance.dm new file mode 100644 index 000000000000..39b86d955353 --- /dev/null +++ b/code/modules/mafia/abilities/support/seance.dm @@ -0,0 +1,24 @@ +/** + * Seance + * + * An ability that doesn't give you any actions, instead grants the ability to speak with the dead during the Night. + */ +/datum/mafia_ability/seance + name = "Speak with the Dead" + action_priority = null + use_flags = NONE + +/** + * handle_message + * + * During the night, Seancers speaking will instead be talking to deadchat. + */ +/datum/mafia_ability/seance/handle_speech(datum/source, list/speech_args) + . = ..() + if(host_role.mafia_game_controller.phase != MAFIA_PHASE_NIGHT) + return FALSE + + var/message = span_changeling("\[DEAD CHAT - CHAPLAIN\] [source]: [html_decode(speech_args[SPEECH_MESSAGE])]") + host_role.mafia_game_controller.send_message(message, team = MAFIA_TEAM_DEAD) + speech_args[SPEECH_MESSAGE] = "" + return TRUE diff --git a/code/modules/mafia/abilities/voting/changeling_kill.dm b/code/modules/mafia/abilities/voting/changeling_kill.dm index bb1b1e76c811..261474a54c37 100644 --- a/code/modules/mafia/abilities/voting/changeling_kill.dm +++ b/code/modules/mafia/abilities/voting/changeling_kill.dm @@ -34,28 +34,25 @@ game.send_message(span_danger("[host_role.body.real_name] was selected to attack [target_role.body.real_name] tonight!"), MAFIA_TEAM_MAFIA) return TRUE -/datum/mafia_ability/changeling_kill/set_target(datum/mafia_controller/game, datum/mafia_role/new_target) - if(new_target.team == MAFIA_TEAM_MAFIA) +/datum/mafia_ability/changeling_kill/set_target(datum/mafia_role/new_target) + if(new_target.team & MAFIA_TEAM_MAFIA) return FALSE - if(!validate_action_target(game, new_target)) + if(!validate_action_target(new_target)) return FALSE using_ability = TRUE - game.vote_for(host_role, new_target, "Mafia", MAFIA_TEAM_MAFIA) + host_role.mafia_game_controller.vote_for(host_role, new_target, "Mafia", MAFIA_TEAM_MAFIA) /** - * handle_message + * handle_speech * * During the night, Changelings talking will instead redirect it to Changeling chat. */ /datum/mafia_ability/changeling_kill/handle_speech(datum/source, list/speech_args) . = ..() - var/datum/mafia_controller/mafia_game = GLOB.mafia_game - if(!mafia_game) - return FALSE - if (mafia_game.phase != MAFIA_PHASE_NIGHT) + if (host_role.mafia_game_controller.phase != MAFIA_PHASE_NIGHT) return FALSE - var/phrase = html_decode(speech_args[SPEECH_MESSAGE]) - mafia_game.send_message(span_changeling("[host_role.body.real_name]: [phrase]"), MAFIA_TEAM_MAFIA) + var/message = span_changeling("\[CHANGELING CHAT\] [source]: [html_decode(speech_args[SPEECH_MESSAGE])]") + host_role.mafia_game_controller.send_message(message, MAFIA_TEAM_MAFIA) speech_args[SPEECH_MESSAGE] = "" return TRUE diff --git a/code/modules/mafia/controller.dm b/code/modules/mafia/controller.dm index 957f7f2bc42a..1d978be3dfe1 100644 --- a/code/modules/mafia/controller.dm +++ b/code/modules/mafia/controller.dm @@ -88,7 +88,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) /proc/setup_mafia_roles_by_name() var/list/rolelist_dict = list() for(var/datum/mafia_role/mafia_role as anything in typesof(/datum/mafia_role)) - rolelist_dict[initial(mafia_role.name) + " ([uppertext(initial(mafia_role.team))])"] = mafia_role + rolelist_dict[initial(mafia_role.name) + " ([uppertext(initial(mafia_role.role_type))])"] = mafia_role return rolelist_dict /proc/setup_mafia_role_by_alignment() @@ -170,11 +170,23 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) role.player_pda = selected_player ready_ghosts_and_pdas -= selected_player -///Sends a global message to all players, or just 'team' if set. +/** + * send_message + * By default, this will send a message to every single role in the game, and putting it in their role message history + * to view on their PDA/Mafia panel. + * Args: + * - msg: The message being sent. + * - team: A specific team flag that will receive the message, so people not part of it will not get it. Ex: Changeling-only messages. + * - log_only: Will not send the message to the player's chat, only their PDA/Mafia panel, for messages that aren't + * needed to be flooding their chat for people who are there physically, such as Day/Night starting. + */ /datum/mafia_controller/proc/send_message(msg, team, log_only = FALSE) for(var/datum/mafia_role/role as anything in all_roles) - if(team && role.team != team) + if(team && !(role.team & team)) continue + //people who can "hear" the dead, but are alive, can only hear at night. + if((team & MAFIA_TEAM_DEAD) && role.game_status == MAFIA_ALIVE && phase != MAFIA_PHASE_NIGHT) + return role.role_messages += msg if(!log_only) to_chat(role.body, msg) @@ -336,20 +348,21 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) var/town_can_kill = FALSE for(var/datum/mafia_role/R as anything in living_roles) - switch(R.team) - if(MAFIA_TEAM_MAFIA) - living_mafia += R - if(MAFIA_TEAM_TOWN) - living_town += R - anti_mafia_power += R.vote_power - //the game cannot autoresolve with killing roles (unless a solo wins anyways, like traitors who are immune) - if(R.role_flags & ROLE_CAN_KILL) - town_can_kill = TRUE - if(MAFIA_TEAM_SOLO) - living_neutrals += R - anti_mafia_power += R.vote_power - if(R.role_flags & ROLE_CAN_KILL) - neutral_killers += R + if(R.team & MAFIA_TEAM_MAFIA) + living_mafia += R + else if(R.team & MAFIA_TEAM_TOWN) + living_town += R + anti_mafia_power += R.vote_power + //the game cannot autoresolve with killing roles (unless a solo wins anyways, like traitors who are immune) + if(R.role_flags & ROLE_CAN_KILL) + town_can_kill = TRUE + else if(R.team & MAFIA_TEAM_SOLO) + living_neutrals += R + anti_mafia_power += R.vote_power + if(R.role_flags & ROLE_CAN_KILL) + neutral_killers += R + else + stack_trace("[R] somehow lacks a faction while alive in a Mafia match!") if(living_mafia.len && living_town.len && living_neutrals.len) return FALSE @@ -581,7 +594,7 @@ GLOBAL_LIST_INIT(mafia_role_by_alignment, setup_mafia_role_by_alignment()) if(phase != MAFIA_PHASE_VOTING) return - var/v = get_vote_count(get_role_player(source),"Day") + var/v = get_vote_count(get_role_player(source), "Day") var/mutable_appearance/MA = mutable_appearance('icons/obj/mafia.dmi',"vote_[v > 12 ? "over_12" : v]") overlay_list += MA diff --git a/code/modules/mafia/controller_ui.dm b/code/modules/mafia/controller_ui.dm index 83857f668373..ceeea9e7ce18 100644 --- a/code/modules/mafia/controller_ui.dm +++ b/code/modules/mafia/controller_ui.dm @@ -17,6 +17,7 @@ "desc" = user_role.desc, "hud_icon" = user_role.hud_icon, "revealed_icon" = user_role.revealed_icon, + "role_dead" = (user_role.game_status == MAFIA_DEAD), ) return data @@ -68,7 +69,7 @@ if(user_role) //not observer player_info["is_you"] = (role.body.real_name == user_role.body.real_name) for(var/datum/mafia_ability/action as anything in user_role.role_unique_actions) - if(action.validate_action_target(src, potential_target = role, silent = TRUE)) + if(action.validate_action_target(potential_target = role, silent = TRUE)) player_info["possible_actions"] += list(list("name" = action, "ref" = REF(action))) data["players"] += list(player_info) @@ -88,6 +89,7 @@ var/obj/item/modular_computer/modpc = ui.src_object if(!istype(modpc)) modpc = null + //Admin actions if(ui.user.client.holder) switch(action) @@ -147,21 +149,10 @@ if("start_now") forced_setup() - switch(action) //both living and dead - if("mf_lookup") - var/role_lookup = params["role_name"] - var/datum/mafia_role/helper - for(var/datum/mafia_role/role as anything in all_roles) - if(role_lookup == role.name) - helper = role - break - helper.show_help(usr) - - if(!user_role)//just the dead + if(!user_role) // non-player & pre-game actions. switch(action) if("mf_signup") - if(signup_mafia(usr, ui.user.client, modpc)) - return TRUE + signup_mafia(ui.user, ui.user.client, modpc) if("vote_to_start") var/client/ghost_client = ui.user.client if(phase != MAFIA_PHASE_SETUP) @@ -191,35 +182,41 @@ to_chat(usr, span_notice("You vote to start the game early ([length(GLOB.mafia_early_votes)] out of [max(round(length(GLOB.mafia_signup + GLOB.pda_mafia_signup) / 2), round(MAFIA_MIN_PLAYER_COUNT / 2))]).")) if(check_start_votes()) //See if we have enough votes to start forced_setup() - return TRUE - - if(user_role && user_role.game_status == MAFIA_DEAD) - return + return TRUE - //User actions (just living) - switch(action) + switch(action) //actions that both living and dead players can perform. + if("mf_lookup") + var/role_lookup = params["role_name"] + var/datum/mafia_role/helper + for(var/datum/mafia_role/role as anything in all_roles) + if(role_lookup == role.name) + helper = role + break + helper.show_help(usr) if("change_notes") - if(user_role.game_status == MAFIA_DEAD) - return TRUE user_role.written_notes = sanitize_text(params["new_notes"]) user_role.send_message_to_player("notes saved", balloon_alert = TRUE) return TRUE - if("send_message_to_chat") - if(user_role.game_status == MAFIA_DEAD) - return TRUE - var/message_said = sanitize_text(params["message"]) - user_role.body.say(message_said, forced = "mafia chat (sent by [ui.user.client])") - return TRUE if("send_notes_to_chat") - if(user_role.game_status == MAFIA_DEAD || !user_role.written_notes) - return TRUE - if(phase == MAFIA_PHASE_NIGHT) + if(!user_role.written_notes) return TRUE if(!COOLDOWN_FINISHED(user_role, note_chat_sending_cooldown)) return FALSE COOLDOWN_START(user_role, note_chat_sending_cooldown, MAFIA_NOTE_SENDING_COOLDOWN) - user_role.body.say("[user_role.written_notes]", forced = "mafia notes sending") + var/list/message_mods = list() + message_mods[MANNEQUIN_CONTROLLED] = ui.user + user_role.body.say("[user_role.written_notes]", forced = "mafia notes sending", message_mods = message_mods) return TRUE + if("send_message_to_chat") + var/message_said = sanitize_text(params["message"]) + var/list/message_mods = list() + message_mods[MANNEQUIN_CONTROLLED] = ui.user + user_role.body.say(message_said, forced = "mafia chat (sent by [ui.user.client])", message_mods = message_mods) + + if(user_role.game_status == MAFIA_DEAD) + return TRUE + + switch(action) //actions that only living players can perform. if("perform_action") var/datum/mafia_role/target = locate(params["target"]) in all_roles if(!istype(target)) @@ -232,11 +229,11 @@ used_action.using_ability = TRUE used_action.perform_action_target(src, target) if(MAFIA_PHASE_NIGHT) - used_action.set_target(src, target) + used_action.set_target(target) return TRUE if(user_role != on_trial) - switch(action) + switch(action) // actions that can only be done while someone is on stand (that isn't you) if("vote_abstain") if(phase != MAFIA_PHASE_JUDGEMENT || (user_role in judgement_abstain_votes)) return diff --git a/code/modules/mafia/map_pieces.dm b/code/modules/mafia/map_pieces.dm index 78b2b284061c..62f0fd2ca40a 100644 --- a/code/modules/mafia/map_pieces.dm +++ b/code/modules/mafia/map_pieces.dm @@ -1,10 +1,8 @@ /obj/effect/landmark/mafia_game_area //locations where mafia will be loaded by the datum name = "Mafia Area Spawn" - var/game_id = "mafia" /obj/effect/landmark/mafia name = "Mafia Player Spawn" - var/game_id = "mafia" /obj/effect/landmark/mafia/town_center name = "Mafia Town Center" @@ -15,7 +13,6 @@ icon = 'icons/obj/mafia.dmi' icon_state = "board" anchored = TRUE - var/game_id = "mafia" var/datum/mafia_controller/MF /obj/mafia_game_board/attack_ghost(mob/user) diff --git a/code/modules/mafia/outfits.dm b/code/modules/mafia/outfits.dm index 2fbd07d516a6..f82f9de40cb4 100644 --- a/code/modules/mafia/outfits.dm +++ b/code/modules/mafia/outfits.dm @@ -77,6 +77,7 @@ name = "Mafia Chaplain" uniform = /obj/item/clothing/under/rank/civilian/chaplain + shoes = /obj/item/clothing/shoes/sneakers/black /datum/outfit/mafia/md name = "Mafia Medical Doctor" @@ -101,6 +102,14 @@ suit = /obj/item/clothing/suit/toggle/lawyer shoes = /obj/item/clothing/shoes/laceup +/datum/outfit/mafia/coroner + name = "Mafia Coroner" + + gloves = /obj/item/clothing/gloves/latex/coroner + head = /obj/item/clothing/head/utility/surgerycap/black + uniform = /obj/item/clothing/under/rank/medical/scrubs/coroner + shoes = /obj/item/clothing/shoes/sneakers/black + /datum/outfit/mafia/hop name = "Mafia Head of Personnel" diff --git a/code/modules/mafia/roles/changelings/changeling.dm b/code/modules/mafia/roles/changelings/changeling.dm index 8e650515ffbc..cf9039fa5005 100644 --- a/code/modules/mafia/roles/changelings/changeling.dm +++ b/code/modules/mafia/roles/changelings/changeling.dm @@ -1,6 +1,6 @@ /datum/mafia_role/mafia name = "Changeling" - desc = "You're a member of the changeling hive. You may speak with your fellow Changelings at night." + desc = "You're a member of the changeling hive. Talk during the Night period to coordinate with your allies, and kill all non-Changelings." team = MAFIA_TEAM_MAFIA role_type = MAFIA_REGULAR role_flags = ROLE_CAN_KILL @@ -25,10 +25,10 @@ /datum/mafia_role/mafia/thoughtfeeder name = "Thoughtfeeder" - desc = "You're a changeling variant that feeds on the memories of others. Use ':j' talk prefix to talk to your fellow lings, and visit people at night to learn their role." + desc = "You're a changeling variant that feeds on the memories of others. Talk during the Night period to coordinate with your allies, \ + and kill all non-Changelings, using your ability to learn people's roles to your advantage." role_type = MAFIA_SPECIAL hud_icon = "hudthoughtfeeder" - revealed_icon = "thoughtfeeder" winner_award = /datum/award/achievement/mafia/thoughtfeeder role_unique_actions = list(/datum/mafia_ability/changeling_kill, /datum/mafia_ability/thoughtfeeder) diff --git a/code/modules/mafia/roles/neutral/neutral_chaos.dm b/code/modules/mafia/roles/neutral/neutral_chaos.dm index de2c7fc4833a..64ce9cf4252c 100644 --- a/code/modules/mafia/roles/neutral/neutral_chaos.dm +++ b/code/modules/mafia/roles/neutral/neutral_chaos.dm @@ -23,7 +23,7 @@ var/list/all_roles_shuffle = shuffle(game.living_roles) - src for(var/datum/mafia_role/possible as anything in all_roles_shuffle) - if(possible.team == MAFIA_TEAM_TOWN) + if(possible.team & MAFIA_TEAM_TOWN) obsession = possible break if(!obsession) @@ -59,7 +59,7 @@ team = MAFIA_TEAM_SOLO role_type = NEUTRAL_DISRUPT special_ui_theme = "neutral" - hud_icon = "hudclown" + hud_icon = SECHUD_CLOWN revealed_icon = "clown" winner_award = /datum/award/achievement/mafia/clown diff --git a/code/modules/mafia/roles/roles.dm b/code/modules/mafia/roles/roles.dm index 85d1170d1a96..5f22153a03e7 100644 --- a/code/modules/mafia/roles/roles.dm +++ b/code/modules/mafia/roles/roles.dm @@ -7,6 +7,8 @@ var/role_type = TOWN_OVERFLOW ///role flags (special status of roles like detection immune) var/role_flags = NONE + ///The mafia controller board this mafia role is tied to, in case there's several Mafia games at once. + var/datum/mafia_controller/mafia_game_controller ///The mafia popup we edit text to give different alerts for (such as when to vote). var/atom/movable/screen/mafia_popup/mafia_alert @@ -41,7 +43,7 @@ var/game_status = MAFIA_ALIVE ///icon state in the mafia dmi of the hud of the role, used in the mafia ui - var/hud_icon = "hudassistant" + var/hud_icon = SECHUD_ASSISTANT ///icon state in the mafia dmi of the hud of the role, used in the mafia ui var/revealed_icon = "assistant" ///set this to something cool for antagonists and their window will look different @@ -50,15 +52,16 @@ ///The cooldown between being able to send your will in chat. COOLDOWN_DECLARE(note_chat_sending_cooldown) -/datum/mafia_role/New(datum/mafia_controller/game) +/datum/mafia_role/New(datum/mafia_controller/new_game) . = ..() - mafia_panel = new(null, game) + src.mafia_game_controller = new_game + mafia_panel = new(null, new_game) for(var/datum/mafia_ability/abilities as anything in role_unique_actions + /datum/mafia_ability/voting) - role_unique_actions += new abilities(game, src) + role_unique_actions += new abilities(src) role_unique_actions -= abilities /datum/mafia_role/Destroy(force) - UnregisterSignal(body, COMSIG_MOB_SAY) + UnregisterSignal(body, list(COMSIG_MOB_SAY, COMSIG_MOB_DEADSAY)) QDEL_NULL(mafia_alert) QDEL_NULL(mafia_panel) QDEL_LIST(role_unique_actions) @@ -70,10 +73,11 @@ /datum/mafia_role/proc/register_body(mob/living/carbon/human/new_body) if(body) - UnregisterSignal(new_body, COMSIG_MOB_SAY) + UnregisterSignal(new_body, list(COMSIG_MOB_SAY, COMSIG_MOB_DEADSAY)) mafia_panel.Remove(body) body = new_body RegisterSignal(new_body, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + RegisterSignal(new_body, COMSIG_MOB_DEADSAY, PROC_REF(handle_speech_dead)) mafia_panel.Grant(new_body) /** @@ -97,19 +101,25 @@ * handle_speech * * Handles Mafia roles talking in chat. - * First it will go through their abilities for Ability-specific speech, - * if none affects it, we will go to day chat. + * First we'll go through their abilities for Ability-specific speech, + * if none affects it, we will go to day chat (if it is indeed day). */ /datum/mafia_role/proc/handle_speech(datum/source, list/speech_args) SIGNAL_HANDLER for(var/datum/mafia_ability/abilities as anything in role_unique_actions) if(abilities.handle_speech(source, speech_args)) return - var/datum/mafia_controller/mafia_game = GLOB.mafia_game - if(!mafia_game || mafia_game.phase == MAFIA_PHASE_NIGHT) + if(mafia_game_controller.phase == MAFIA_PHASE_NIGHT) return var/message = "[source]: [html_decode(speech_args[SPEECH_MESSAGE])]" - mafia_game.send_message(message, log_only = TRUE) + mafia_game_controller.send_message(message, log_only = TRUE) + +///Same as handle_speech, but for dead players. +/datum/mafia_role/proc/handle_speech_dead(datum/source, message) + SIGNAL_HANDLER + var/message_sent = span_changeling("\[DEAD CHAT\] [source]: [message]") + mafia_game_controller.send_message(message_sent, team = MAFIA_TEAM_DEAD) + return MOB_DEADSAY_SIGNAL_INTERCEPT /** * Puts the player in their body and keeps track of their previous one to put them back in later. @@ -123,6 +133,7 @@ old_body = player.mob.mind.current, \ ) body.PossessByPlayer(player.key) + ADD_TRAIT(body, TRAIT_CORPSELOCKED, MAFIA_TRAIT) /** * Tests kill immunities, if nothing prevents the kill, kills this role. @@ -137,6 +148,8 @@ if(SEND_SIGNAL(src, COMSIG_MAFIA_ON_KILL, game, attacker, lynch) & MAFIA_PREVENT_KILL) return FALSE game_status = MAFIA_DEAD + //can now hear dead chat speaking. + team |= MAFIA_TEAM_DEAD body.death() if(lynch) reveal_role(game, verbose = TRUE) diff --git a/code/modules/mafia/roles/town/town_investigative.dm b/code/modules/mafia/roles/town/town_investigative.dm index 76b81eab3bd1..003d911612b9 100644 --- a/code/modules/mafia/roles/town/town_investigative.dm +++ b/code/modules/mafia/roles/town/town_investigative.dm @@ -5,7 +5,7 @@ role_type = TOWN_INVEST winner_award = /datum/award/achievement/mafia/detective - hud_icon = "huddetective" + hud_icon = SECHUD_DETECTIVE revealed_icon = "detective" role_unique_actions = list(/datum/mafia_ability/investigate) @@ -17,18 +17,18 @@ role_type = TOWN_INVEST winner_award = /datum/award/achievement/mafia/psychologist - hud_icon = "hudpsychologist" + hud_icon = SECHUD_PSYCHOLOGIST revealed_icon = "psychologist" role_unique_actions = list(/datum/mafia_ability/reveal_role) -/datum/mafia_role/chaplain - name = "Chaplain" - desc = "You can communicate with spirits of the dead each night to discover dead crewmember roles." - revealed_outfit = /datum/outfit/mafia/chaplain +/datum/mafia_role/coroner + name = "Coroner" + desc = "You can perform autopsies on the dead each night to discover their role." + revealed_outfit = /datum/outfit/mafia/coroner role_type = TOWN_INVEST - hud_icon = "hudchaplain" - revealed_icon = "chaplain" - winner_award = /datum/award/achievement/mafia/chaplain + hud_icon = SECHUD_CORONER + revealed_icon = "coroner" + winner_award = /datum/award/achievement/mafia/coroner - role_unique_actions = list(/datum/mafia_ability/seance) + role_unique_actions = list(/datum/mafia_ability/autopsy) diff --git a/code/modules/mafia/roles/town/town_killing.dm b/code/modules/mafia/roles/town/town_killing.dm index 777581d04022..ea0211028749 100644 --- a/code/modules/mafia/roles/town/town_killing.dm +++ b/code/modules/mafia/roles/town/town_killing.dm @@ -5,7 +5,7 @@ role_flags = ROLE_CAN_KILL | ROLE_UNIQUE revealed_outfit = /datum/outfit/mafia/hos revealed_icon = "headofsecurity" - hud_icon = "hudheadofsecurity" + hud_icon = SECHUD_HEAD_OF_SECURITY winner_award = /datum/award/achievement/mafia/hos role_unique_actions = list(/datum/mafia_ability/attack_player/execution) @@ -18,7 +18,7 @@ role_flags = ROLE_CAN_KILL revealed_outfit = /datum/outfit/mafia/warden revealed_icon = "warden" - hud_icon = "hudwarden" + hud_icon = SECHUD_WARDEN winner_award = /datum/award/achievement/mafia/warden role_unique_actions = list(/datum/mafia_ability/attack_visitors) diff --git a/code/modules/mafia/roles/town/town_protective.dm b/code/modules/mafia/roles/town/town_protective.dm index 53e01c43418d..a8433779991d 100644 --- a/code/modules/mafia/roles/town/town_protective.dm +++ b/code/modules/mafia/roles/town/town_protective.dm @@ -3,7 +3,7 @@ desc = "You can protect a single person each night from killing. You can heal yourself once." revealed_outfit = /datum/outfit/mafia/md role_type = TOWN_PROTECT - hud_icon = "hudmedicaldoctor" + hud_icon = SECHUD_MEDICAL_DOCTOR revealed_icon = "medicaldoctor" winner_award = /datum/award/achievement/mafia/md @@ -14,7 +14,7 @@ desc = "You can protect a single person each night. If they are attacked, you will retaliate, killing yourself and the attacker. You can protect yourself once." revealed_outfit = /datum/outfit/mafia/security revealed_icon = "securityofficer" - hud_icon = "hudsecurityofficer" + hud_icon = SECHUD_SECURITY_OFFICER role_type = TOWN_PROTECT role_flags = ROLE_CAN_KILL winner_award = /datum/award/achievement/mafia/officer diff --git a/code/modules/mafia/roles/town/town_support.dm b/code/modules/mafia/roles/town/town_support.dm index f508831720e7..c95f93fcebd8 100644 --- a/code/modules/mafia/roles/town/town_support.dm +++ b/code/modules/mafia/roles/town/town_support.dm @@ -3,7 +3,7 @@ desc = "You can choose a person to provide extensive legal advice to, preventing night actions." revealed_outfit = /datum/outfit/mafia/lawyer role_type = TOWN_SUPPORT - hud_icon = "hudlawyer" + hud_icon = SECHUD_LAWYER revealed_icon = "lawyer" winner_award = /datum/award/achievement/mafia/lawyer @@ -15,9 +15,21 @@ role_type = TOWN_SUPPORT role_flags = ROLE_UNIQUE role_flags = ROLE_CAN_KILL - hud_icon = "hudheadofpersonnel" + hud_icon = SECHUD_HEAD_OF_PERSONNEL revealed_icon = "headofpersonnel" revealed_outfit = /datum/outfit/mafia/hop winner_award = /datum/award/achievement/mafia/hop role_unique_actions = list(/datum/mafia_ability/self_reveal) + +/datum/mafia_role/chaplain + name = "Chaplain" + desc = "You can communicate with spirits of the dead each night to discover dead crewmember roles." + role_type = TOWN_INVEST + team = MAFIA_TEAM_TOWN | MAFIA_TEAM_DEAD + hud_icon = SECHUD_CHAPLAIN + revealed_icon = "chaplain" + revealed_outfit = /datum/outfit/mafia/chaplain + winner_award = /datum/award/achievement/mafia/chaplain + + role_unique_actions = list(/datum/mafia_ability/seance) diff --git a/code/modules/manufactorio/machines/lathe.dm b/code/modules/manufactorio/machines/lathe.dm index 351e5c25030a..d2a4e65f677a 100644 --- a/code/modules/manufactorio/machines/lathe.dm +++ b/code/modules/manufactorio/machines/lathe.dm @@ -143,7 +143,14 @@ var/atom/movable/created if(is_stack) var/obj/item/stack/stack_item = initial(design.build_path) - created = new stack_item(null, 1) + var/max_stack_amount = initial(stack_item.max_amount) + var/amount = initial(stack_item.amount) + while(amount > max_stack_amount) + var/obj/item/stack/new_stack = new stack_item(null, max_stack_amount) + if(!send_resource(new_stack, dir)) + withheld = new_stack + amount -= max_stack_amount + created = new stack_item(null, amount) else created = new design.build_path(null) split_materials_uniformly(materials_needed, target_object = created) @@ -155,7 +162,6 @@ if(!send_resource(created, dir)) withheld = created - /obj/machinery/power/manufacturing/lathe/proc/finalize_build() print_sound.stop() deltimer(busy) diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/roroco.dm b/code/modules/mapfluff/ruins/icemoonruin_code/roroco.dm new file mode 100644 index 000000000000..0c8f54cfbd1a --- /dev/null +++ b/code/modules/mapfluff/ruins/icemoonruin_code/roroco.dm @@ -0,0 +1,83 @@ +/obj/machinery/door/puzzle/keycard/roro + name = "Fabric Processing" + desc = "A dusty, scratched door with a thick lock attached." + puzzle_id = "roroco" + +/obj/item/keycard/roro + name = "Fabric Processing keycard" + desc = "" + color = "#b1634c" + puzzle_id = "roroco" + +/area/ruin/roroco + name = "\improper RoroCo Primary Hallway" + +/area/ruin/roroco/management + name = "\improper RoroCo Management Office" + +/area/ruin/roroco/packing + name = "\improper RoroCo Packing Room" + +/area/ruin/roroco/extraction + name = "\improper RoroCo Product Extraction" + +/area/ruin/roroco/harvesting + name = "\improper RoroCo Harvesting Room" + +/area/ruin/roroco/maintenance + name = "\improper RoroCo Maintenance Hallway" + +/area/ruin/roroco/janitor + name = "\improper RoroCo Janitor's Closet" + +/obj/item/card/id/away/roroco + name = "\improper RoroCo ID Card" + desc = "A plastic card that identifies its bearer as an employee of RoroCo. There are electronic chips embedded to communicate with airlocks and other machines. It does not have a name attached." + icon_state = "card_roro" + trim = /datum/id_trim/away/roroco + +/obj/item/card/id/away/roroco/boss + desc = "A plastic card that identifies its bearer as a senior employee of RoroCo with enhanced access to secure areas. There are electronic chips embedded to communicate with airlocks and other machines. It does not have a name attached." + icon_state = "card_roroboss" + trim = /datum/id_trim/away/roroco/boss + +/obj/structure/closet/cardboard/roroco + icon_state = "cardboard_roroco" + +/obj/item/clothing/suit/toggle/labcoat/roroco + name = "\improper RoroCo labcoat" + desc = "A suit that protects against minor chemical spills, though the deep red colour makes them hard to see. Great for hiding blood stains, though..." + icon = 'icons/map_icons/clothing/suit/_suit.dmi' + icon_state = "/obj/item/clothing/suit/toggle/labcoat/roroco" + post_init_icon_state = "labcoat_job" + greyscale_config = /datum/greyscale_config/labcoat + greyscale_config_worn = /datum/greyscale_config/labcoat/worn + greyscale_colors = "#88242D#39393F#39393F#39393F" + +/obj/item/clothing/under/costume/buttondown/slacks/roroco + icon_state = "/obj/item/clothing/under/costume/buttondown/slacks/roroco" + greyscale_colors = "#FFCCCC#17171B#17171B#88242D" + +/datum/outfit/roroco + name = "RoroCo Glove Packer" + gloves = /obj/item/clothing/gloves/cargo_gauntlet + shoes = /obj/item/clothing/shoes/workboots + uniform = /obj/item/clothing/under/costume/buttondown/slacks/roroco + suit = /obj/item/clothing/suit/hazardvest + +/datum/outfit/roroco/processing + name = "Roroco Fabric Technician" + glasses = /obj/item/clothing/glasses/science + gloves = /obj/item/clothing/gloves/latex/nitrile + suit = /obj/item/clothing/suit/toggle/labcoat/roroco + id = /obj/item/card/id/away/roroco/boss + +/obj/effect/mob_spawn/corpse/human/roroco_packing + name = "Dead RoroCo Glove Packer" + mob_name = "Nameless Glove Packer" + outfit = /datum/outfit/roroco + +/obj/effect/mob_spawn/corpse/human/roroco_processing + name = "Dead Roroco Fabric Technician" + mob_name = "Nameless Fabric Technician" + outfit = /datum/outfit/roroco/processing diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/syndicate_base.dm b/code/modules/mapfluff/ruins/lavalandruin_code/syndicate_base.dm index 3ff54df736c4..01d4ccf6f92b 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/syndicate_base.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/syndicate_base.dm @@ -1,25 +1,4 @@ //lavaland_surface_syndicate_base1.dmm and it's modules - -/obj/machinery/vending/syndichem - name = "\improper SyndiChem" - desc = "A vending machine full of grenades and grenade accessories. Sponsored by Donk Co." - products = list(/obj/item/stack/cable_coil = 5, - /obj/item/assembly/igniter = 20, - /obj/item/assembly/prox_sensor = 5, - /obj/item/assembly/signaler = 5, - /obj/item/assembly/timer = 5, - /obj/item/assembly/voice = 5, - /obj/item/assembly/health = 5, - /obj/item/assembly/infra = 5, - /obj/item/grenade/chem_grenade = 5, - /obj/item/grenade/chem_grenade/large = 5, - /obj/item/grenade/chem_grenade/pyro = 5, - /obj/item/grenade/chem_grenade/cryo = 5, - /obj/item/grenade/chem_grenade/adv_release = 5, - /obj/item/reagent_containers/cup/glass/bottle/holywater = 1) - product_slogans = "It's not pyromania if you're getting paid!;You smell that? Plasma, son. Nothing else in the world smells like that.;I love the smell of Plasma in the morning." - resistance_flags = FIRE_PROOF - /obj/modular_map_root/syndicatebase config_file = "strings/modular_maps/syndicatebase.toml" diff --git a/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.dm b/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.dm index cad1c8488f91..46f2b0c3d77a 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/cyborgmothership.dm @@ -15,7 +15,7 @@ width = 23 height = 23 launch_status = 0 - callTime = 250 + callTime = 25 SECONDS movement_force = list("KNOCKDOWN" = 0,"THROW" = 0) /obj/item/circuitboard/computer/cyborg_mothership diff --git a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm index b11a1d3deecb..71a14d8a97d0 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/hilbertshotel.dm @@ -378,7 +378,7 @@ GLOBAL_VAR_INIT(hhMysteryRoomNumber, rand(1, 999999)) desc = "Stop looking through the bluespace peephole." button_icon_state = "cancel_peephole" -/datum/action/peephole_cancel/Trigger(trigger_flags) +/datum/action/peephole_cancel/Trigger(mob/clicker, trigger_flags) . = ..() to_chat(owner, span_warning("You move away from the peephole.")) owner.reset_perspective() diff --git a/code/modules/mapping/space_management/space_level.dm b/code/modules/mapping/space_management/space_level.dm index 1747806cb216..5e555ebb41ad 100644 --- a/code/modules/mapping/space_management/space_level.dm +++ b/code/modules/mapping/space_management/space_level.dm @@ -18,5 +18,4 @@ else // in case a single trait is passed in SSmapping.z_trait_levels[new_traits] += list(new_z) - set_linkage(new_traits[ZTRAIT_LINKAGE]) diff --git a/code/modules/mapping/space_management/space_transition.dm b/code/modules/mapping/space_management/space_transition.dm index e5db045e92d2..7f2eafe00990 100644 --- a/code/modules/mapping/space_management/space_transition.dm +++ b/code/modules/mapping/space_management/space_transition.dm @@ -60,39 +60,23 @@ /datum/controller/subsystem/mapping/proc/setup_map_transitions() //listamania var/list/transition_levels = list() var/list/cached_z_list = z_list + var/linkage for(var/datum/space_level/level as anything in cached_z_list) - if (level.linkage == CROSSLINKED) - transition_levels.Add(level) + if(level.linkage != CROSSLINKED && level.linkage != GRIDLINKED) + continue - var/grid_diameter = (length(transition_levels) * 2) + 1 - var/list/grid = new /list(grid_diameter ** 2) + transition_levels.Add(level) - var/datum/space_transition_point/point - for(var/x in 1 to grid_diameter) - for(var/y in 1 to grid_diameter) - point = new/datum/space_transition_point(x, y, grid) - grid[CHORDS_TO_1D(x, y, grid_diameter)] = point - for(point as anything in grid) - point.set_neigbours(grid, grid_diameter) + if(!isnull(linkage) && level.linkage != linkage) + // Either you be gridlinked or crosslinked, both is uhhh... a headache + stack_trace("Mixed linkages detected in z-level neighbour transitions!") + continue + linkage = level.linkage - var/center = round(grid_diameter / 2) - point = grid[CHORDS_TO_1D(grid_diameter, center, center)] - grid.Cut() - - var/list/transition_pick = transition_levels.Copy() - var/list/possible_points = list() - var/list/used_points = list() - while(transition_pick.len) - var/datum/space_level/level = pick_n_take(transition_pick) - level.xi = point.x - level.yi = point.y - point.spl = level - possible_points |= point.neigbours - used_points |= point - possible_points.Remove(used_points) - level.set_neigbours(used_points) - point = pick(possible_points) - CHECK_TICK + if(linkage == CROSSLINKED) + set_cross_linkages(transition_levels) + else if(linkage == GRIDLINKED) + set_grid_linkages(transition_levels) // Now that we've handed out neighbors, we're gonna handle an edge case // Need to check if all our levels have neighbors in all directions @@ -141,7 +125,7 @@ var/datum/space_level/neighbor = level.neigbours["[dirside]"] var/zdestination = neighbor.z_value - for(var/turf/open/space/S in turfblock) + for(var/turf/open/S in turfblock) S.destination_x = x_target || S.x S.destination_y = y_target || S.y S.destination_z = zdestination @@ -162,4 +146,60 @@ var/turf/place = locate(S.destination_x, S.destination_y, zdestination) S.AddElement(/datum/element/mirage_border, place, mirage_dir, range_cached) +/// Construct linkages randomly to get maze-like space transitions +/// We do this by constructing a very large grid, and placing the levels randomly inside, and then filling out the empty spaces +/datum/controller/subsystem/mapping/proc/set_cross_linkages(list/transition_levels) + var/grid_diameter = (length(transition_levels) * 2) + 1 + var/list/grid = new /list(grid_diameter ** 2) + + var/datum/space_transition_point/point + for(var/x in 1 to grid_diameter) + for(var/y in 1 to grid_diameter) + point = new /datum/space_transition_point(x, y, grid) + grid[CHORDS_TO_1D(x, y, grid_diameter)] = point + for(point as anything in grid) + point.set_neigbours(grid, grid_diameter) + + var/center = round(grid_diameter / 2) + point = grid[CHORDS_TO_1D(grid_diameter, center, center)] + grid.Cut() + + var/list/transition_pick = transition_levels.Copy() + var/list/possible_points = list() + var/list/used_points = list() + + while(transition_pick.len) + var/datum/space_level/level = pick_n_take(transition_pick) + level.xi = point.x + level.yi = point.y + point.spl = level + possible_points |= point.neigbours + used_points |= point + possible_points.Remove(used_points) + level.set_neigbours(used_points) + point = pick(possible_points) + CHECK_TICK + +/// Connect the z-levels in a non-randomized grid +/datum/controller/subsystem/mapping/proc/set_grid_linkages(list/transition_levels) + var/grid_diameter = ceil(sqrt(length(transition_levels))) + var/list/grid = new /list(grid_diameter ** 2) + + // Construct an imaginary grid with the right neighbours etc for our grid + var/datum/space_transition_point/point + for(var/x in 1 to grid_diameter) + for(var/y in 1 to grid_diameter) + point = new /datum/space_transition_point(x, y, grid) + grid[CHORDS_TO_1D(x, y, grid_diameter)] = point + + // Translate the grid we made to the z-levels + var/list/used_points = list() + for(var/i in 1 to transition_levels.len) + var/datum/space_level/level = transition_levels[i] + point = grid[i] + level.xi = point.x + level.yi = point.y + point.spl = level + used_points += point //this used_points list is kinda lame, you can remove it if you can find out what the slice function in byond is + level.set_neigbours(used_points) #undef CHORDS_TO_1D diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 89fd3361a06b..bbec54ed3561 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -38,6 +38,8 @@ var/length_input = length(input) for(var/i = 1, i <= length_input, i += length(char)) //put the guess into a list char = input[i] + if(!(char >= "0" && char <= "9")) + sanitycheck = FALSE //if a non-digit is found, reject the input sanitised += text2num(char) for(var/i in 1 to length(sanitised) - 1) //compare each digit in the guess to all those following it for(var/j in i + 1 to length(sanitised)) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index fa2717ca5d13..4c3a9cb529bc 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -205,7 +205,7 @@ desc = "An intimidating tribal helmet, it doesn't look very comfortable." icon_state = "skull" inhand_icon_state = null - strip_delay = 100 + strip_delay = 10 SECONDS flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDESNOUT flags_cover = HEADCOVERSEYES cold_protection = HEAD diff --git a/code/modules/mining/equipment/kinetic_crusher/trophies_fauna.dm b/code/modules/mining/equipment/kinetic_crusher/trophies_fauna.dm index 2f5e4b8302bc..c8bc6404fdb0 100644 --- a/code/modules/mining/equipment/kinetic_crusher/trophies_fauna.dm +++ b/code/modules/mining/equipment/kinetic_crusher/trophies_fauna.dm @@ -138,7 +138,7 @@ /obj/item/crusher_trophy/brimdemon_fang/on_mark_detonation(mob/living/target, mob/living/user) . = ..() - target.balloon_alert_to_viewers("[pick(comic_phrases)]!") + target.loc.balloon_alert_to_viewers("[pick(comic_phrases)]!") playsound(target, 'sound/mobs/non-humanoids/brimdemon/brimdemon_crush.ogg', 100) // Bileworm diff --git a/code/modules/mining/equipment/kinetic_crusher/trophies_megafauna.dm b/code/modules/mining/equipment/kinetic_crusher/trophies_megafauna.dm index 56444d71dd9e..0c5393d154bd 100644 --- a/code/modules/mining/equipment/kinetic_crusher/trophies_megafauna.dm +++ b/code/modules/mining/equipment/kinetic_crusher/trophies_megafauna.dm @@ -220,7 +220,7 @@ . = ..() if(!prob(bonus_value) || target.stat == DEAD) return - var/mob/living/basic/legion_brood/minion = new (user.loc) + var/mob/living/basic/mining/legion_brood/minion = new (user.loc) minion.assign_creator(user) minion.ai_controller.set_blackboard_key(BB_BASIC_MOB_CURRENT_TARGET, target) @@ -234,7 +234,7 @@ return LivingUser.visible_message(span_boldwarning("[LivingUser] shakes the [src] and summons a legion skull!")) - var/mob/living/basic/legion_brood/minion = new (LivingUser.loc) + var/mob/living/basic/mining/legion_brood/minion = new (LivingUser.loc) minion.assign_creator(LivingUser) next_use_time = world.time + 4 SECONDS diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index bfb709912e10..b662242fb84b 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -70,15 +70,12 @@ var/turf/t = get_turf(src) mineral_scan_pulse(t, range, src) -/proc/mineral_scan_pulse(turf/T, range = world.view, obj/item/scanner) - var/list/minerals = list() +/proc/mineral_scan_pulse(turf/start_turf, range = world.view, obj/item/scanner) var/vents_nearby = FALSE var/undiscovered = FALSE var/radar_volume = 30 - for(var/turf/closed/mineral/mineral in RANGE_TURFS(range, T)) - if(mineral.scan_state) - minerals += mineral - for(var/obj/structure/ore_vent/vent in range(range, T)) + + for(var/obj/structure/ore_vent/vent in range(range, start_turf)) if(!vents_nearby && (!vent.discovered || !vent.tapped)) vents_nearby = TRUE if(vent.discovered) @@ -87,27 +84,33 @@ radar_volume = max(potential_volume, radar_volume) vent.add_mineral_overlays() - if(LAZYLEN(minerals)) - for(var/turf/closed/mineral/M in minerals) - var/obj/effect/temp_visual/mining_overlay/oldC = locate(/obj/effect/temp_visual/mining_overlay) in M - if(oldC) - qdel(oldC) - var/obj/effect/temp_visual/mining_overlay/C = new /obj/effect/temp_visual/mining_overlay(M) - C.icon_state = M.scan_state + for(var/turf/closed/mineral/mineral in RANGE_TURFS(range, start_turf)) + if(!mineral.scan_state) + continue + + var/obj/effect/temp_visual/mining_overlay/scan_overlay = locate(/obj/effect/temp_visual/mining_overlay) in mineral + if(!scan_overlay) + scan_overlay = new(mineral) + scan_overlay.icon_state = mineral.scan_state + continue + + deltimer(scan_overlay.timerid) + scan_overlay.timerid = QDEL_IN_STOPPABLE(scan_overlay, scan_overlay.duration) + animate(scan_overlay, alpha = 0, time = scan_overlay.duration, easing = scan_overlay.easing_style) if(vents_nearby && scanner) if(undiscovered) playsound(scanner, 'sound/machines/radar-ping.ogg', radar_volume, FALSE) + scanner.balloon_alert_to_viewers("ore vent nearby") else playsound(scanner, 'sound/machines/sonar-ping.ogg', radar_volume, FALSE) - scanner.balloon_alert_to_viewers("ore vent nearby") scanner.spasm_animation(1.5 SECONDS) /obj/effect/temp_visual/mining_overlay plane = HIGH_GAME_PLANE layer = FLASH_LAYER icon = 'icons/effects/ore_visuals.dmi' - appearance_flags = 0 //to avoid having TILE_BOUND in the flags, so that the 480x480 icon states let you see it no matter where you are + appearance_flags = NONE // to avoid having TILE_BOUND in the flags, so that the 480x480 icon states let you see it no matter where you are duration = 35 pixel_x = -224 pixel_y = -224 diff --git a/code/modules/mining/equipment/monster_organs/monster_organ.dm b/code/modules/mining/equipment/monster_organs/monster_organ.dm index 01bf553c4ca2..a76002959a20 100644 --- a/code/modules/mining/equipment/monster_organs/monster_organ.dm +++ b/code/modules/mining/equipment/monster_organs/monster_organ.dm @@ -61,6 +61,7 @@ /obj/item/organ/monster_core/Initialize(mapload) . = ..() decay_timer = addtimer(CALLBACK(src, PROC_REF(go_inert)), time_to_decay, TIMER_STOPPABLE) + AddElement(/datum/element/above_mob_drop) /obj/item/organ/monster_core/examine(mob/user) . = ..() diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 909e3985a625..0de408c43ad2 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -50,7 +50,7 @@ to_chat(user, span_notice("\The [src] found no beacons in the world to anchor a wormhole to.")) else visible_message(span_notice("\The [src] found no beacons in the world to anchor a wormhole to!")) - return TRUE // used for chasm code + return FALSE var/list/destinations = get_destinations() var/chosen_beacon = pick(destinations) @@ -62,7 +62,7 @@ try_move_adjacent(tunnel) qdel(src) - return FALSE // used for chasm code + return TRUE /obj/item/wormhole_jaunter/emp_act(power) . = ..() @@ -77,20 +77,32 @@ var/mob/M = loc if(istype(M) && triggered) - M.visible_message(span_warning("Your [src.name] overloads and activates!")) + M.visible_message(span_userdanger("Your [src.name] overloads and activates!")) SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation activate(M, FALSE, TRUE) else if(triggered) visible_message(span_warning("\The [src] overloads and activates!")) activate() -/obj/item/wormhole_jaunter/proc/chasm_react(mob/user) - var/fall_into_chasm = activate(user, FALSE, TRUE) +/obj/item/wormhole_jaunter/equipped(mob/user, slot, initial) + . = ..() + if (slot & ITEM_SLOT_BELT) + RegisterSignal(user, COMSIG_MOVABLE_CHASM_DROPPED, PROC_REF(chasm_react)) + +/obj/item/wormhole_jaunter/dropped(mob/user, silent) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_CHASM_DROPPED) + +/obj/item/wormhole_jaunter/proc/chasm_react(mob/living/user, turf/chasm) + SIGNAL_HANDLER + + if(!activate(user, FALSE, TRUE)) + return - if(!fall_into_chasm) - to_chat(user, span_notice("Your [src.name] activates, saving you from the chasm!")) - SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation - return fall_into_chasm + to_chat(user, span_userdanger("Your [src] activates, saving you from \the [chasm]!")) + chasm.visible_message(span_boldwarning("[user] falls into \the [chasm]!")) // To freak out any bystanders + SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // Chasm automatic activation + return COMPONENT_NO_CHASM_DROP //jaunter tunnel /obj/effect/portal/jaunt_tunnel diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 4aa17da2b6e6..e5d6e82cf747 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -377,7 +377,7 @@ name = "Mushroom Bowl" result = /obj/item/reagent_containers/cup/bowl/mushroom_bowl reqs = list(/obj/item/food/grown/ash_flora/shavings = 5) - time = 30 + time = 3 SECONDS category = CAT_CONTAINERS /obj/item/reagent_containers/cup/bowl/mushroom_bowl diff --git a/code/modules/mining/lavaland/mining_loot/clothing.dm b/code/modules/mining/lavaland/mining_loot/clothing.dm index f64bda23672d..360388b61b6c 100644 --- a/code/modules/mining/lavaland/mining_loot/clothing.dm +++ b/code/modules/mining/lavaland/mining_loot/clothing.dm @@ -95,8 +95,8 @@ icon_state = "concussive_gauntlets" inhand_icon_state = null toolspeed = 0.1 - strip_delay = 40 - equip_delay_other = 20 + strip_delay = 4 SECONDS + equip_delay_other = 2 SECONDS cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS diff --git a/code/modules/mining/lavaland/mining_loot/godslayer.dm b/code/modules/mining/lavaland/mining_loot/godslayer.dm index ba5dbaa6813a..724aa212c675 100644 --- a/code/modules/mining/lavaland/mining_loot/godslayer.dm +++ b/code/modules/mining/lavaland/mining_loot/godslayer.dm @@ -21,10 +21,10 @@ var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) /datum/armor/cloak_godslayer - melee = 50 - bullet = 25 - laser = 25 - energy = 25 + melee = 70 + bullet = 50 + laser = 30 + energy = 40 bomb = 50 bio = 50 fire = 100 diff --git a/code/modules/mining/lavaland/mining_loot/megafauna/colossus.dm b/code/modules/mining/lavaland/mining_loot/megafauna/colossus.dm index 5460287ac561..4215f6c1a53f 100644 --- a/code/modules/mining/lavaland/mining_loot/megafauna/colossus.dm +++ b/code/modules/mining/lavaland/mining_loot/megafauna/colossus.dm @@ -417,7 +417,7 @@ /datum/action/exit_possession/IsAvailable(feedback = FALSE) return ..() && isfloorturf(owner.loc) -/datum/action/exit_possession/Trigger(trigger_flags) +/datum/action/exit_possession/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return FALSE diff --git a/code/modules/mining/lavaland/mining_loot/megafauna/the_thing.dm b/code/modules/mining/lavaland/mining_loot/megafauna/the_thing.dm index d96bd6b02801..cea00930325a 100644 --- a/code/modules/mining/lavaland/mining_loot/megafauna/the_thing.dm +++ b/code/modules/mining/lavaland/mining_loot/megafauna/the_thing.dm @@ -4,7 +4,7 @@ button_icon = 'icons/mob/actions/actions_AI.dmi' button_icon_state = "ai_core" -/datum/action/innate/brain_undeployment/Trigger(trigger_flags) +/datum/action/innate/brain_undeployment/Trigger(mob/clicker, trigger_flags) if(!..()) return FALSE var/obj/item/organ/brain/cybernetic/ai/shell_to_disconnect = owner.get_organ_by_type(/obj/item/organ/brain/cybernetic/ai) diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index 3271f316df52..467b7786e083 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -207,6 +207,7 @@ if(!islist(user_data)) // Just allow to salvage the situation . = COMPONENT_ORE_SILO_ALLOW + user_data = ID_DATA(null) CRASH("Invalid data passed to check_permitted") if(user_data[SILICON_OVERRIDE] || user_data[CHAMELEON_OVERRIDE] || astype(user_data["accesses"], /list)?.Find(ACCESS_QM)) return COMPONENT_ORE_SILO_ALLOW diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index bc8ef95ef2f3..599f446017d7 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -77,7 +77,7 @@ mats_per_unit = list(/datum/material/uranium=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/uranium mine_experience = 6 - scan_state = "rock_Uranium" + scan_state = "rock_uranium" spreadChance = 5 merge_type = /obj/item/stack/ore/uranium @@ -89,7 +89,7 @@ mats_per_unit = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/iron mine_experience = 1 - scan_state = "rock_Iron" + scan_state = "rock_iron" spreadChance = 20 merge_type = /obj/item/stack/ore/iron @@ -153,7 +153,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mats_per_unit = list(/datum/material/plasma=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/plasma mine_experience = 5 - scan_state = "rock_Plasma" + scan_state = "rock_plasma" spreadChance = 8 merge_type = /obj/item/stack/ore/plasma @@ -169,7 +169,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mine_experience = 3 mats_per_unit = list(/datum/material/silver=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/silver - scan_state = "rock_Silver" + scan_state = "rock_silver" spreadChance = 5 merge_type = /obj/item/stack/ore/silver @@ -181,7 +181,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mine_experience = 5 mats_per_unit = list(/datum/material/gold=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/gold - scan_state = "rock_Gold" + scan_state = "rock_gold" spreadChance = 5 merge_type = /obj/item/stack/ore/gold @@ -193,7 +193,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mats_per_unit = list(/datum/material/diamond=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/diamond mine_experience = 10 - scan_state = "rock_Diamond" + scan_state = "rock_diamond" merge_type = /obj/item/stack/ore/diamond /obj/item/stack/ore/diamond/five @@ -207,7 +207,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mats_per_unit = list(/datum/material/bananium=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/bananium mine_experience = 15 - scan_state = "rock_Bananium" + scan_state = "rock_bananium" merge_type = /obj/item/stack/ore/bananium /obj/item/stack/ore/titanium @@ -218,7 +218,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mats_per_unit = list(/datum/material/titanium=SHEET_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/titanium mine_experience = 3 - scan_state = "rock_Titanium" + scan_state = "rock_titanium" spreadChance = 5 merge_type = /obj/item/stack/ore/titanium diff --git a/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm b/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm index c49da9b36e74..0fe0a6fab67b 100644 --- a/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm +++ b/code/modules/mob/living/basic/bots/cleanbot/cleanbot.dm @@ -106,6 +106,7 @@ /obj/item/trash, /obj/item/food/deadmouse, /obj/effect/decal/remains, + /obj/item/cigbutt, )) ///drawings we hunt var/static/list/cleanable_drawings = typecacheof(list(/obj/effect/decal/cleanable/crayon)) @@ -305,9 +306,14 @@ return var/mob/living/carbon/stabbed_carbon = shanked_victim - var/assigned_role = stabbed_carbon.mind?.assigned_role.title - if(!isnull(assigned_role)) - update_title(assigned_role) + + if(ishuman(shanked_victim)) + var/mob/living/carbon/human/stabbed_human = shanked_victim + var/obj/item/card/id/id = stabbed_human.wear_id?.GetID() + if(!isnull(id)) + var/assigned_role = id.assignment + if(!isnull(assigned_role)) + update_title(assigned_role) zone_selected = pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) INVOKE_ASYNC(weapon, TYPE_PROC_REF(/obj/item, attack), stabbed_carbon, src) diff --git a/code/modules/mob/living/basic/bots/repairbot/repairbot_abilities.dm b/code/modules/mob/living/basic/bots/repairbot/repairbot_abilities.dm index 4d65c62216ff..c18562701c15 100644 --- a/code/modules/mob/living/basic/bots/repairbot/repairbot_abilities.dm +++ b/code/modules/mob/living/basic/bots/repairbot/repairbot_abilities.dm @@ -53,7 +53,7 @@ /obj/item/stack/rods, )) -/datum/action/repairbot_resources/Trigger(trigger_flags) +/datum/action/repairbot_resources/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/mob/living/basic/clown/clown.dm b/code/modules/mob/living/basic/clown/clown.dm index 4d891a4f7187..fb9e6caf995b 100644 --- a/code/modules/mob/living/basic/clown/clown.dm +++ b/code/modules/mob/living/basic/clown/clown.dm @@ -622,7 +622,7 @@ ///If we are currently activating our ability. var/activating = FALSE -/datum/action/cooldown/exquisite_bunch/Trigger(trigger_flags, atom/target) +/datum/action/cooldown/exquisite_bunch/Trigger(mob/clicker, trigger_flags, atom/target) if(activating) return var/bunch_turf = get_step(owner.loc, owner.dir) diff --git a/code/modules/mob/living/basic/drone/drone_say.dm b/code/modules/mob/living/basic/drone/drone_say.dm index af0bef41bb1c..3a006d8d1b2c 100644 --- a/code/modules/mob/living/basic/drone/drone_say.dm +++ b/code/modules/mob/living/basic/drone/drone_say.dm @@ -9,18 +9,24 @@ * * exact_faction_match - Passed to [/mob/proc/faction_check_atom] */ /proc/_alert_drones(msg, dead_can_hear = FALSE, atom/source, mob/living/faction_checked_mob, exact_faction_match) - if (dead_can_hear && source) - for (var/mob/dead_mob in GLOB.dead_mob_list) + if(dead_can_hear && source) + for(var/mob/dead_mob in GLOB.dead_mob_list) var/link = FOLLOW_LINK(dead_mob, source) to_chat(dead_mob, "[link] [msg]") for(var/global_drone in GLOB.drones_list) var/mob/living/basic/drone/drone = global_drone - if(istype(drone) && drone.stat != DEAD) - if(faction_checked_mob) - if(drone.faction_check_atom(faction_checked_mob, exact_faction_match)) - to_chat(drone, msg) - else - to_chat(drone, msg) + if(!istype(drone)) + continue + if(drone.stat == DEAD) + continue + if(faction_checked_mob && !drone.faction_check_atom(faction_checked_mob, exact_faction_match)) + continue + to_chat( + drone, + msg, + type = MESSAGE_TYPE_RADIO, + avoid_highlighting = (drone == source), + ) @@ -39,5 +45,7 @@ * * Shares the same radio code with binary */ -/mob/living/basic/drone/proc/drone_chat(msg) - alert_drones("Drone Chat: [span_name("[name]")] [say_quote(msg)]", TRUE) +/mob/living/basic/drone/proc/drone_chat(message, list/spans = list(), list/message_mods = list()) + log_sayverb_talk(message, message_mods, tag = "drone chat") + var/message_part = generate_messagepart(message, spans, message_mods) + alert_drones("Drone Chat: [span_name("[name]")] [message_part]", TRUE) diff --git a/code/modules/mob/living/basic/guardian/guardian_types/standard.dm b/code/modules/mob/living/basic/guardian/guardian_types/standard.dm index 9b4335898cfc..3e15caaa4274 100644 --- a/code/modules/mob/living/basic/guardian/guardian_types/standard.dm +++ b/code/modules/mob/living/basic/guardian/guardian_types/standard.dm @@ -54,7 +54,7 @@ return FALSE return ..() -/datum/action/select_guardian_battlecry/Trigger(trigger_flags) +/datum/action/select_guardian_battlecry/Trigger(mob/clicker, trigger_flags) . = ..() if (!.) return diff --git a/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.dm b/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.dm index 71e938c5164e..04961f7b2b52 100644 --- a/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.dm +++ b/code/modules/mob/living/basic/lavaland/basilisk/basilisk_overheat.dm @@ -52,7 +52,7 @@ qdel(src) /// Cool down if splashed with water -/datum/status_effect/basilisk_overheat/proc/on_splashed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) +/datum/status_effect/basilisk_overheat/proc/on_splashed(atom/source, list/reagents, datum/reagents/source_reagents, methods, show_message) SIGNAL_HANDLER if(!(methods & (TOUCH|VAPOR))) return diff --git a/code/modules/mob/living/basic/lavaland/bileworm/_bileworm.dm b/code/modules/mob/living/basic/lavaland/bileworm/_bileworm.dm index debd5a7480ca..0ed4359bf238 100644 --- a/code/modules/mob/living/basic/lavaland/bileworm/_bileworm.dm +++ b/code/modules/mob/living/basic/lavaland/bileworm/_bileworm.dm @@ -57,3 +57,9 @@ /datum/action/cooldown/mob_cooldown/resurface = BB_BILEWORM_RESURFACE, ) grant_actions_by_list(other_innate_actions) + update_appearance(UPDATE_OVERLAYS) + +/mob/living/basic/mining/bileworm/update_overlays() + . = ..() + if (stat != DEAD) + . += emissive_appearance(icon, "[icon_living]_e", src) diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm index 2daef4e1ae9a..e558939f8e30 100644 --- a/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimbeam.dm @@ -1,6 +1,6 @@ /// Fires a bloody beam. Brimdemon Blast! /datum/action/cooldown/mob_cooldown/brimbeam - name = "brimstone blast" + name = "Brimstone Blast" desc = "Unleash a barrage of infernal energies in the targeted direction." button_icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' button_icon_state = "brimdemon_firing" @@ -15,8 +15,6 @@ var/beam_duration = 2 SECONDS /// How long do we wind up before firing? var/charge_duration = 1 SECONDS - /// Overlay we show when we're about to fire - var/static/image/direction_overlay = image('icons/mob/simple/lavaland/lavaland_monsters.dmi', "brimdemon_telegraph_dir") /// A list of all the beam parts. var/list/beam_parts = list() @@ -29,11 +27,15 @@ owner.face_atom(target) owner.move_resist = MOVE_FORCE_VERY_STRONG - owner.add_overlay(direction_overlay) owner.balloon_alert_to_viewers("charging...") + var/mutable_appearance/direction_overlay = mutable_appearance('icons/mob/simple/lavaland/lavaland_monsters.dmi', "brimdemon_telegraph_dir") + var/mutable_appearance/direction_emissive = emissive_appearance('icons/mob/simple/lavaland/lavaland_monsters.dmi', "brimdemon_telegraph_dir", owner, alpha = 150, effect_type = EMISSIVE_NO_BLOOM) + owner.add_overlay(direction_overlay) + owner.add_overlay(direction_emissive) var/fully_charged = do_after(owner, delay = charge_duration, target = owner) owner.cut_overlay(direction_overlay) + owner.cut_overlay(direction_emissive) if (!fully_charged) StartCooldown() return TRUE @@ -44,6 +46,11 @@ StartCooldown() return TRUE + if (istype(owner, /mob/living/basic/mining/brimdemon)) + var/mob/living/basic/mining/brimdemon/demon = owner + demon.icon_state = demon.firing_icon_state + demon.update_appearance(UPDATE_OVERLAYS) + do_after(owner, delay = beam_duration, target = owner, hidden = TRUE) extinguish_laser() StartCooldown() @@ -88,6 +95,10 @@ return FALSE if (owner) owner.move_resist = initial(owner.move_resist) + if (istype(owner, /mob/living/basic/mining/brimdemon) && owner.stat != DEAD) + var/mob/living/basic/mining/brimdemon/demon = owner + demon.icon_state = demon.icon_living + demon.update_appearance(UPDATE_OVERLAYS) for(var/obj/effect/brimbeam/beam in beam_parts) beam.disperse() beam_parts = list() diff --git a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm index e314fe152caf..63e2190d0154 100644 --- a/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm +++ b/code/modules/mob/living/basic/lavaland/brimdemon/brimdemon.dm @@ -35,6 +35,8 @@ ) /// How we get blasting var/datum/action/cooldown/mob_cooldown/brimbeam/beam + /// Icon state used when the brimbeam ability is being fired + var/firing_icon_state = "brimdemon_firing" /mob/living/basic/mining/brimdemon/Initialize(mapload) . = ..() @@ -42,6 +44,11 @@ beam = new(src) beam.Grant(src) ai_controller.set_blackboard_key(BB_TARGETED_ACTION, beam) + update_appearance(UPDATE_OVERLAYS) + +/mob/living/basic/mining/brimdemon/Destroy(force) + QDEL_NULL(beam) + return ..() /mob/living/basic/mining/brimdemon/RangedAttack(atom/target, modifiers) beam.Trigger(target = target) @@ -53,6 +60,11 @@ var/obj/effect/temp_visual/brim_burst/bang = new(loc) forceMove(bang) +/mob/living/basic/mining/brimdemon/update_overlays() + . = ..() + if (stat != DEAD) + . += emissive_appearance(icon, "[icon_living]_e", src, effect_type = EMISSIVE_NO_BLOOM) + /// Show a funny animation before doing an explosion /obj/effect/temp_visual/brim_burst name = "bursting brimdemon" diff --git a/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm b/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm index f895e264db8e..d52cc1742c7f 100644 --- a/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm +++ b/code/modules/mob/living/basic/lavaland/goldgrub/goldgrub.dm @@ -38,6 +38,8 @@ /datum/pet_command/follow/start_active, /datum/pet_command/fetch, ) + /// Do we have emissives? + var/has_emissive = TRUE /mob/living/basic/mining/goldgrub/Initialize(mapload) . = ..() @@ -72,6 +74,8 @@ ADD_TRAIT(src, TRAIT_BOULDER_BREAKER, INNATE_TRAIT) ADD_TRAIT(src, TRAIT_INSTANTLY_PROCESSES_BOULDERS, INNATE_TRAIT) RegisterSignal(src, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(block_bullets)) + if(has_emissive) + update_appearance(UPDATE_OVERLAYS) /mob/living/basic/mining/goldgrub/proc/block_bullets(datum/source, obj/projectile/hitting_projectile) SIGNAL_HANDLER @@ -138,6 +142,11 @@ return new /obj/item/food/egg/green/grub_egg(get_turf(src)) +/mob/living/basic/mining/goldgrub/update_overlays() + . = ..() + if(has_emissive) + . += emissive_appearance(icon, "[icon_state]_e", src) + /mob/living/basic/mining/goldgrub/baby icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' name = "goldgrub baby" @@ -153,6 +162,7 @@ can_tame = FALSE can_lay_eggs = FALSE ai_controller = /datum/ai_controller/basic_controller/babygrub + has_emissive = FALSE /mob/living/basic/mining/goldgrub/baby/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/lavaland/goliath/goliath.dm b/code/modules/mob/living/basic/lavaland/goliath/goliath.dm index e1e55052edcd..1c9ab1f52d23 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/goliath.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/goliath.dm @@ -82,6 +82,7 @@ RegisterSignal(src, COMSIG_MOB_ABILITY_FINISHED, PROC_REF(used_ability)) ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(goliath_foods)) ai_controller.set_blackboard_key(BB_GOLIATH_TENTACLES, tentacles) + update_appearance(UPDATE_OVERLAYS) /mob/living/basic/mining/goliath/Destroy() QDEL_NULL(tentacles) @@ -166,6 +167,11 @@ /mob/living/basic/mining/goliath/ranged_secondary_attack(atom/atom_target, modifiers) tentacle_line?.Trigger(target = atom_target) +/mob/living/basic/mining/goliath/update_overlays() + . = ..() + if (stat != DEAD) + . += emissive_appearance(icon, "[icon_living]_e", src, effect_type = EMISSIVE_NO_BLOOM) + /// Version of the goliath that already starts saddled and doesn't require a lasso to be ridden. /mob/living/basic/mining/goliath/deathmatch saddled = TRUE diff --git a/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm b/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm index ba6346ea1915..5b275843f859 100644 --- a/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm +++ b/code/modules/mob/living/basic/lavaland/goliath/tentacle.dm @@ -27,6 +27,7 @@ return INITIALIZE_HINT_QDEL deltimer(action_timer) action_timer = addtimer(CALLBACK(src, PROC_REF(animate_grab)), 0.7 SECONDS, TIMER_STOPPABLE) + update_appearance(UPDATE_OVERLAYS) /obj/effect/goliath_tentacle/Destroy() deltimer(action_timer) @@ -35,6 +36,7 @@ /// Change to next icon state and set up grapple /obj/effect/goliath_tentacle/proc/animate_grab() icon_state = "goliath_tentacle_wiggle" + update_appearance(UPDATE_OVERLAYS) deltimer(action_timer) addtimer(CALLBACK(src, PROC_REF(grab)), 0.3 SECONDS, TIMER_STOPPABLE) @@ -64,9 +66,15 @@ SEND_SIGNAL(src, COMSIG_GOLIATH_TENTACLE_RETRACTING) unbuckle_all_mobs(force = TRUE) icon_state = "goliath_tentacle_retract" + update_appearance(UPDATE_OVERLAYS) deltimer(action_timer) action_timer = QDEL_IN_STOPPABLE(src, 0.7 SECONDS) +/obj/effect/goliath_tentacle/update_overlays() + . = ..() + . += emissive_appearance(icon, "[icon_state]_e", src, effect_type = EMISSIVE_NO_BLOOM) + . += emissive_appearance(icon, "[icon_state]_e_bloom", src) + /obj/effect/goliath_tentacle/attack_hand(mob/living/user, list/modifiers) . = ..() if (. || !has_buckled_mobs()) diff --git a/code/modules/mob/living/basic/lavaland/legion/legion.dm b/code/modules/mob/living/basic/lavaland/legion/legion.dm index 6a2d3840884a..26c909186726 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion.dm @@ -27,11 +27,13 @@ death_message = "wails in chorus and dissolves into quivering flesh." ai_controller = /datum/ai_controller/basic_controller/legion /// What kind of mob do we spawn? - var/brood_type = /mob/living/basic/legion_brood + var/brood_type = /mob/living/basic/mining/legion_brood /// What kind of corpse spawner do we leave behind on death? var/corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested /// Who is inside of us? - var/mob/living/stored_mob + var/mob/living/stored_mob = null + /// Do we have emissives? + var/has_emissive = TRUE /mob/living/basic/mining/legion/Initialize(mapload) . = ..() @@ -40,6 +42,8 @@ if (length(drops)) AddElement(/datum/element/death_drops, string_list(drops)) assign_abilities() + if (has_emissive) + update_appearance(UPDATE_OVERLAYS) /// Give the Legion its spells /mob/living/basic/mining/legion/proc/assign_abilities() @@ -68,6 +72,11 @@ new corpse_type(loc) return ..() +/mob/living/basic/mining/legion/update_overlays() + . = ..() + if (stat != DEAD && has_emissive) // Shouldn't really happen but just in case + . += emissive_appearance(icon, "[icon_living]_e", src, effect_type = EMISSIVE_NO_BLOOM) + /// Put a corpse in this guy /mob/living/basic/mining/legion/proc/consume(mob/living/carbon/human/consumed) new /obj/effect/gibspawner/generic(consumed.loc) @@ -110,8 +119,9 @@ icon_living = "snowlegion" // icon_aggro = "snowlegion_alive" icon_dead = "snowlegion" - brood_type = /mob/living/basic/legion_brood/snow + brood_type = /mob/living/basic/mining/legion_brood/snow corpse_type = /obj/effect/mob_spawn/corpse/human/legioninfested/snow + has_emissive = FALSE /mob/living/basic/mining/legion/snow/Initialize(mapload) . = ..() @@ -153,6 +163,7 @@ obj_damage = 30 pixel_x = -16 sentience_type = SENTIENCE_BOSS + has_emissive = FALSE /mob/living/basic/mining/legion/large/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm index e09a617f1221..bad0b34a2d00 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_brood.dm @@ -1,5 +1,5 @@ /// A spooky skull which heals lavaland mobs, attacks miners, and infests their bodies -/mob/living/basic/legion_brood +/mob/living/basic/mining/legion_brood name = "legion" desc = "One of many." icon = 'icons/mob/simple/lavaland/lavaland_monsters.dmi' @@ -10,6 +10,7 @@ basic_mob_flags = DEL_ON_DEATH mob_size = MOB_SIZE_SMALL pass_flags = PASSTABLE | PASSMOB + layer = MOB_UPPER_LAYER mob_biotypes = MOB_ORGANIC|MOB_UNDEAD|MOB_MINING faction = list(FACTION_MINING) unsuitable_atmos_damage = 0 @@ -29,23 +30,39 @@ attack_sound = 'sound/items/weapons/pierce.ogg' density = FALSE ai_controller = /datum/ai_controller/basic_controller/legion_brood + kill_count = FALSE /// Reference to a guy who made us var/datum/weakref/created_by + /// How many random icon_states we can pick from + var/random_states = 3 + /// Do we have emissives? + var/has_emissive = TRUE -/mob/living/basic/legion_brood/Initialize(mapload) +/mob/living/basic/mining/legion_brood/Initialize(mapload) . = ..() - add_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE, TRAIT_PERMANENTLY_MORTAL), INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_PERMANENTLY_MORTAL, INNATE_TRAIT) AddElement(/datum/element/simple_flying) - AddComponent(/datum/component/swarming) + AddComponent(/datum/component/swarming, max_x = 12, max_y = 12) AddComponent(/datum/component/clickbox, icon_state = "sphere", max_scale = 2) addtimer(CALLBACK(src, PROC_REF(death)), 10 SECONDS) + if (random_states <= 1) + if (has_emissive) + update_appearance(UPDATE_OVERLAYS) + return + icon_state = "[initial(icon_state)]_[rand(1, random_states)]" + icon_living = icon_state + icon_dead = icon_state + update_appearance() -/mob/living/basic/legion_brood/death(gibbed) +/mob/living/basic/mining/legion_brood/death(gibbed) if (!gibbed) new /obj/effect/temp_visual/despawn_effect(get_turf(src), /* copy_from = */ src) return ..() -/mob/living/basic/legion_brood/melee_attack(mob/living/target, list/modifiers, ignore_cooldown) +/mob/living/basic/mining/legion_brood/add_ranged_armour(list/vulnerable_projectiles) + return + +/mob/living/basic/mining/legion_brood/melee_attack(mob/living/target, list/modifiers, ignore_cooldown) if (ishuman(target) && target.stat > SOFT_CRIT) infest(target) return @@ -63,7 +80,7 @@ return ..() /// Turn the targeted mob into one of us -/mob/living/basic/legion_brood/proc/infest(mob/living/carbon/human/target) +/mob/living/basic/mining/legion_brood/proc/infest(mob/living/carbon/human/target) visible_message(span_warning("[name] burrows into the flesh of [target]!")) var/spawn_type = get_legion_type(target) var/mob/living/basic/mining/legion/new_legion = new spawn_type(loc) @@ -72,7 +89,7 @@ qdel(src) /// Returns the kind of legion we make out of the target -/mob/living/basic/legion_brood/proc/get_legion_type(mob/living/carbon/human/target) +/mob/living/basic/mining/legion_brood/proc/get_legion_type(mob/living/carbon/human/target) if (ismonkey(target)) return /mob/living/basic/mining/legion/monkey if (HAS_TRAIT(target, TRAIT_DWARF)) @@ -80,7 +97,7 @@ return /mob/living/basic/mining/legion /// Sets someone as our creator, mostly so you can't use skulls to heal yourself -/mob/living/basic/legion_brood/proc/assign_creator(mob/living/creator, copy_full_faction = TRUE) +/mob/living/basic/mining/legion_brood/proc/assign_creator(mob/living/creator, copy_full_faction = TRUE) if (copy_full_faction) faction = creator.faction.Copy() else @@ -90,23 +107,26 @@ RegisterSignal(creator, COMSIG_QDELETING, PROC_REF(creator_destroyed)) /// Reference handling -/mob/living/basic/legion_brood/proc/creator_destroyed() +/mob/living/basic/mining/legion_brood/proc/creator_destroyed() SIGNAL_HANDLER created_by = null +/mob/living/basic/mining/legion_brood/update_overlays() + . = ..() + if (has_emissive) + . += emissive_appearance(icon, "[icon_living]_e", src, effect_type = EMISSIVE_NO_BLOOM) + /// Like the Legion's summoned skull but funnier (it's snow now) -/mob/living/basic/legion_brood/snow +/mob/living/basic/mining/legion_brood/snow name = "snow legion" icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' icon_state = "snowlegion_head" icon_living = "snowlegion_head" icon_dead = "snowlegion_head" + random_states = 1 + has_emissive = FALSE -/mob/living/basic/legion_brood/snow/Initialize(mapload) - . = ..() - ADD_TRAIT(src, TRAIT_SNOWSTORM_IMMUNE, INNATE_TRAIT) - -/mob/living/basic/legion_brood/snow/get_legion_type(mob/living/target) +/mob/living/basic/mining/legion_brood/snow/get_legion_type(mob/living/target) if (ismonkey(target)) return /mob/living/basic/mining/legion/monkey/snow return /mob/living/basic/mining/legion/snow diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm b/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm index 87537480eaa6..1fc569e51f8f 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_monkey.dm @@ -34,6 +34,7 @@ desc = "You can see what was once a monkey under the densely packed snow. It doesn't look friendly." icon = 'icons/mob/simple/icemoon/icemoon_monsters.dmi' icon_state = "snow_monkey" + has_emissive = FALSE /mob/living/basic/mining/legion/monkey/snow/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm index 6be564ab4abb..3505f7a368a7 100644 --- a/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm +++ b/code/modules/mob/living/basic/lavaland/legion/legion_tumour.dm @@ -86,7 +86,7 @@ log_combat(user, target, "used a Legion Tumour on", src, "as they are in crit, this will turn them into a Legion.") target.visible_message(span_boldwarning("[user] splatters [target] with [src]... and it springs into horrible life!")) - var/mob/living/basic/legion_brood/skull = new(target.loc) + var/mob/living/basic/mining/legion_brood/skull = new(target.loc) skull.melee_attack(target) return TRUE @@ -125,7 +125,7 @@ if (prob(50)) var/turf/check_turf = get_step(owner.loc, owner.dir) var/atom/land_turf = (check_turf.is_blocked_turf()) ? owner.loc : check_turf - var/mob/living/basic/legion_brood/child = new(land_turf) + var/mob/living/basic/mining/legion_brood/child = new(land_turf) child.assign_creator(owner, copy_full_faction = FALSE) if(SPT_PROB(3, seconds_per_tick)) diff --git a/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm b/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm index 81691ff9135f..2f464fb08432 100644 --- a/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm +++ b/code/modules/mob/living/basic/lavaland/legion/spawn_legions.dm @@ -13,7 +13,7 @@ /// If a mob is not clicked directly, inherit targeting data from this blackboard key and setting it upon this target key var/ai_target_key = BB_BASIC_MOB_CURRENT_TARGET /// What are we actually spawning? - var/spawn_type = /mob/living/basic/legion_brood + var/spawn_type = /mob/living/basic/mining/legion_brood /// How far can we fire? var/max_range = 7 @@ -61,7 +61,7 @@ /// Actually create a mob /datum/action/cooldown/mob_cooldown/skull_launcher/proc/spawn_skull(turf/spawn_location, target) - var/mob/living/basic/legion_brood/brood = new spawn_type(spawn_location) + var/mob/living/basic/mining/legion_brood/brood = new spawn_type(spawn_location) if (istype(brood)) brood.assign_creator(owner) brood.ai_controller?.set_blackboard_key(ai_target_key, target) diff --git a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm index 3ef2b21cef8f..d2fee05e2c7a 100644 --- a/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm +++ b/code/modules/mob/living/basic/lavaland/lobstrosity/lobstrosity.dm @@ -59,11 +59,17 @@ ai_controller.set_blackboard_key(BB_TARGETED_ACTION, charge) var/static/list/fishable_turfs = typecacheof(list(/turf/open/lava)) ai_controller.set_blackboard_key(BB_FISHABLE_LIST, fishable_turfs) + update_appearance(UPDATE_OVERLAYS) /mob/living/basic/mining/lobstrosity/Destroy() QDEL_NULL(charge) return ..() +/mob/living/basic/mining/lobstrosity/update_overlays() + . = ..() + if (stat != DEAD) + . += emissive_appearance(icon, "[icon_living]_e", src, effect_type = EMISSIVE_NO_BLOOM) + /mob/living/basic/mining/lobstrosity/ranged_secondary_attack(atom/atom_target, modifiers) charge.Trigger(target = atom_target) diff --git a/code/modules/mob/living/basic/lavaland/mining.dm b/code/modules/mob/living/basic/lavaland/mining.dm index 53085668ea40..31184b0459e8 100644 --- a/code/modules/mob/living/basic/lavaland/mining.dm +++ b/code/modules/mob/living/basic/lavaland/mining.dm @@ -20,11 +20,14 @@ var/crusher_loot /// What is the chance the mob drops it if all their health was taken by crusher attacks var/crusher_drop_chance = 25 + /// Does this mob count for mining mob kills counter? + var/kill_count = TRUE /mob/living/basic/mining/Initialize(mapload) . = ..() add_traits(list(TRAIT_LAVA_IMMUNE, TRAIT_ASHSTORM_IMMUNE, TRAIT_SNOWSTORM_IMMUNE), INNATE_TRAIT) - AddElement(/datum/element/mob_killed_tally, "mobs_killed_mining") + if (kill_count) + AddElement(/datum/element/mob_killed_tally, "mobs_killed_mining") var/static/list/vulnerable_projectiles if(!vulnerable_projectiles) vulnerable_projectiles = string_list(MINING_MOB_PROJECTILE_VULNERABILITY) diff --git a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm index ad8dd30de5df..fac1b72df419 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/_raptor.dm @@ -56,7 +56,7 @@ GLOBAL_LIST_EMPTY(raptor_population) /datum/pet_command/move, /datum/pet_command/free, /datum/pet_command/attack, - /datum/pet_command/follow/start_active, + /datum/pet_command/follow, /datum/pet_command/fetch, ) ///things we inherited from our parent @@ -146,11 +146,22 @@ GLOBAL_LIST_EMPTY(raptor_population) adjust_offsets(new_dir) /mob/living/basic/raptor/proc/adjust_offsets(direction) - if(!change_offsets) + if (!change_offsets) return - pixel_x = (direction & EAST) ? -20 : 0 - pixel_y = (direction & NORTH) ? -5 : 0 + switch (direction) + if (NORTH) + pixel_x = -8 + pixel_y = -5 + if (SOUTH) + pixel_x = 0 + pixel_y = 0 + if (EAST, SOUTHEAST, NORTHEAST) + pixel_x = -20 + pixel_y = 0 + if (WEST, SOUTHWEST, NORTHWEST) + pixel_x = -5 + pixel_y = 0 /mob/living/basic/raptor/early_melee_attack(atom/target, list/modifiers, ignore_cooldown) . = ..() @@ -225,6 +236,7 @@ GLOBAL_LIST_EMPTY(raptor_population) melee_damage_lower = 15 melee_damage_upper = 20 raptor_color = RAPTOR_RED + ridable_component = /datum/component/riding/creature/raptor/combat dex_description = "A resilient breed of raptors, battle-tested and bred for the purpose of humbling its foes in combat, \ This breed demonstrates higher combat capabilities than its peers and oozes ruthless aggression." child_path = /mob/living/basic/raptor/baby_raptor/red diff --git a/code/modules/mob/living/basic/lavaland/watcher/watcher.dm b/code/modules/mob/living/basic/lavaland/watcher/watcher.dm index 5c4183b48ee6..80b815087ac6 100644 --- a/code/modules/mob/living/basic/lavaland/watcher/watcher.dm +++ b/code/modules/mob/living/basic/lavaland/watcher/watcher.dm @@ -30,7 +30,7 @@ /// What kind of beams we got? var/projectile_type = /obj/projectile/temp/watcher /// Icon state for our eye overlay - var/eye_glow = "ice_glow" + var/eye_glow = "watcher_glow" /// Sound to play when we shoot var/shoot_sound = 'sound/items/weapons/pierce.ogg' /// Typepath of our gaze ability @@ -71,7 +71,8 @@ . = ..() if (stat == DEAD) return - . += emissive_appearance(icon, "watcher_emissive", src) + . += emissive_appearance(icon, "watcher_emissive", src, effect_type = EMISSIVE_NO_BLOOM) + . += emissive_appearance(icon, "watcher_emissive_bloom", src) /// I love eating diamonds yum /mob/living/basic/mining/watcher/proc/consume(atom/movable/thing) @@ -100,6 +101,7 @@ icon_state = "watcher_icewing" icon_living = "watcher_icewing" icon_dead = "watcher_icewing_dead" + eye_glow = "ice_glow" maxHealth = 130 health = 130 projectile_type = /obj/projectile/temp/watcher/ice_wing diff --git a/code/modules/mob/living/basic/pets/gondolas/gondolapod.dm b/code/modules/mob/living/basic/pets/gondolas/gondolapod.dm index da051f18b571..11cb75895d06 100644 --- a/code/modules/mob/living/basic/pets/gondolas/gondolapod.dm +++ b/code/modules/mob/living/basic/pets/gondolas/gondolapod.dm @@ -70,7 +70,7 @@ button_icon_state = "arrow" check_flags = AB_CHECK_PHASED -/datum/action/innate/deliver_gondola_package/Trigger(trigger_flags) +/datum/action/innate/deliver_gondola_package/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -90,7 +90,7 @@ button_icon_state = "storage" check_flags = AB_CHECK_PHASED -/datum/action/innate/check_gondola_contents/Trigger(trigger_flags) +/datum/action/innate/check_gondola_contents/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm b/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm index 2de366674720..67016611fd18 100644 --- a/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm +++ b/code/modules/mob/living/basic/ruin_defender/mimic/mimic.dm @@ -366,7 +366,7 @@ GLOBAL_LIST_INIT(animatable_blacklist, typecacheof(list( /mob/living/basic/mimic/copy/machine ai_controller = /datum/ai_controller/basic_controller/mimic_copy/machine - faction = list(FACTION_MIMIC, FACTION_SILICON) + faction = list(FACTION_MIMIC, FACTION_SILICON, FACTION_TURRET) /mob/living/basic/mimic/copy/ranged icon = 'icons/turf/floors.dmi' diff --git a/code/modules/mob/living/basic/slime/slime.dm b/code/modules/mob/living/basic/slime/slime.dm index 6a54ddc1871c..1b9dd8566586 100644 --- a/code/modules/mob/living/basic/slime/slime.dm +++ b/code/modules/mob/living/basic/slime/slime.dm @@ -83,8 +83,10 @@ ///Has a mutator been used on the slime? Only one is allowed var/mutator_used = FALSE - //The datum that handles the slime colour's core and possible mutations - var/datum/slime_type/slime_type + // The datum that handles the slime colour's core and possible mutations + var/datum/slime_type/slime_type = null + // After a slime is initialized, a list of all possible initialized datums of slime_types + var/static/list/possible_slime_types = null //CORE-CROSSING CODE @@ -108,7 +110,7 @@ /// Our reproduction action var/datum/action/innate/slime/reproduce/reproduce_action -/mob/living/basic/slime/Initialize(mapload, new_type=/datum/slime_type/grey, new_life_stage=SLIME_LIFE_STAGE_BABY) +/mob/living/basic/slime/Initialize(mapload, new_type = /datum/slime_type/grey, new_life_stage = SLIME_LIFE_STAGE_BABY) . = ..() @@ -118,11 +120,13 @@ reproduce_action = new (src) reproduce_action.Grant(src) + if(isnull(possible_slime_types)) + possible_slime_types = list() + for(var/datum/slime_type/slime_type as anything in subtypesof(/datum/slime_type)) + possible_slime_types[slime_type] = new slime_type + set_slime_type(new_type) set_life_stage(new_life_stage) - update_name() - regenerate_icons() - set_nutrition(SLIME_STARTING_NUTRITION) AddComponent(/datum/component/health_scaling_effects, min_health_slowdown = 2) @@ -143,9 +147,9 @@ ai_controller.set_blackboard_key(BB_SLIME_REPRODUCE, reproduce_action) /mob/living/basic/slime/Destroy() - QDEL_NULL(evolve_action) QDEL_NULL(reproduce_action) + slime_type = null return ..() @@ -153,7 +157,7 @@ /mob/living/basic/slime/random /mob/living/basic/slime/random/Initialize(mapload, new_colour, new_life_stage) - return ..(mapload, pick(subtypesof(/datum/slime_type)), prob(50) ? SLIME_LIFE_STAGE_ADULT : SLIME_LIFE_STAGE_BABY) + return ..(mapload, null, prob(50) ? SLIME_LIFE_STAGE_ADULT : SLIME_LIFE_STAGE_BABY) ///Friendly docile subtype /mob/living/basic/slime/pet @@ -273,13 +277,13 @@ ai_controller.set_blackboard_key(BB_SLIME_LIFE_STAGE, life_stage) update_mob_action_buttons() -///Sets the slime's type, name and its icons -/mob/living/basic/slime/proc/set_slime_type(new_type) - slime_type = new new_type +/// Sets the slime's type, name and its icons. +/// If not provided with a type it will instead be random +/mob/living/basic/slime/proc/set_slime_type(new_type = null) + if(isnull(new_type)) + new_type = pick(subtypesof(/datum/slime_type)) -///randomizes the colour of a slime -/mob/living/basic/slime/proc/random_colour() - set_slime_type(pick(subtypesof(/datum/slime_type))) + slime_type = possible_slime_types[new_type] update_name() regenerate_icons() diff --git a/code/modules/mob/living/basic/slime/slime_type.dm b/code/modules/mob/living/basic/slime/slime_type.dm index 048f861eeb08..3dfce88b1c83 100644 --- a/code/modules/mob/living/basic/slime/slime_type.dm +++ b/code/modules/mob/living/basic/slime/slime_type.dm @@ -10,6 +10,12 @@ ///The hexcode used by the slime to colour their victims var/rgb_code +/datum/slime_type/Destroy(force) + if(!force) + stack_trace("Something tried to delete a \"/datum/slime_type\", this should never happen as could lead to slime colors being broken!") + return QDEL_HINT_LETMELIVE + return ..() + //TIER 0 /datum/slime_type/grey diff --git a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm index 3405b6e9bd76..d958da623a75 100644 --- a/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm +++ b/code/modules/mob/living/basic/space_fauna/netherworld/migo.dm @@ -33,6 +33,8 @@ var/static/list/migo_sounds /// Odds migo will dodge var/dodge_prob = 10 + /// Are we dodging an attack during this move? + var/dodging = FALSE /mob/living/basic/migo/Initialize(mapload) . = ..() @@ -68,7 +70,7 @@ make_migo_sound() /mob/living/basic/migo/Move(atom/newloc, dir, step_x, step_y) - if(!ckey && prob(dodge_prob) && moving_diagonally == 0 && isturf(loc) && isturf(newloc)) + if(!dodging && !ckey && prob(dodge_prob) && moving_diagonally == 0 && isturf(loc) && isturf(newloc)) return dodge(newloc, dir) else return ..() @@ -77,9 +79,11 @@ //Assuming we move towards the target we want to swerve toward them to get closer var/cdir = turn(move_direction, 45) var/ccdir = turn(move_direction, -45) + dodging = TRUE . = Move(get_step(loc,pick(cdir, ccdir))) if(!.)//Can't dodge there so we just carry on . = Move(moving_to, move_direction) + dodging = FALSE /// The special hatsune miku themed mi-go. /mob/living/basic/migo/hatsune diff --git a/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm b/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm index b2d8a6bac221..5751a354b4b9 100644 --- a/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm +++ b/code/modules/mob/living/basic/space_fauna/revenant/revenant_abilities.dm @@ -192,7 +192,7 @@ if(window.fulltile) new /obj/effect/temp_visual/revenant/cracks(window.loc) for(var/obj/machinery/light/light in victim) - light.flicker(20) //spooky + light.flicker(rand(3, 5)) //spooky //Malfunction: Makes bad stuff happen to robots and machines. /datum/action/cooldown/spell/aoe/revenant/malfunction diff --git a/code/modules/mob/living/basic/space_fauna/roro.dm b/code/modules/mob/living/basic/space_fauna/roro.dm new file mode 100644 index 000000000000..5cb306d62927 --- /dev/null +++ b/code/modules/mob/living/basic/space_fauna/roro.dm @@ -0,0 +1,68 @@ +/mob/living/basic/roro + name = "roro" + desc = "A little round, sharp beaked alien. It bears a striking resemblance to insulated gloves." + icon_state = "roro" + icon_living = "roro" + icon_dead = "roro_dead" + mob_biotypes = MOB_ORGANIC + speed = 0.5 + maxHealth = 50 + health = 50 + + butcher_results = list( + /obj/item/clothing/gloves/color/yellow = 1 + ) + + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + + melee_damage_lower = 1 + melee_damage_upper = 4 + attack_verb_continuous = "nips" + attack_verb_simple = "nip" + attack_sound = 'sound/items/weapons/bite.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + + melee_attack_cooldown = 0.5 SECONDS + speak_emote = list("warbles") + + unsuitable_atmos_damage = 0 + unsuitable_cold_damage = 0 + unsuitable_heat_damage = 0 + + faction = list(FACTION_HOSTILE) + + ai_controller = /datum/ai_controller/basic_controller/simple/simple_retaliate + +/datum/emote/roro + mob_type_allowed_typecache = /mob/living/basic/roro + mob_type_blacklist_typecache = list() + +/datum/emote/roro/warble + key = "warble" + key_third_person = "warbles" + message = "warbles happily!" + emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE + vary = TRUE + sound = SFX_RORO_WARBLE + +/mob/living/basic/roro/Initialize(mapload) + . = ..() + AddElement(/datum/element/pet_bonus, "warble") + AddElement(/datum/element/ai_retaliate) + +/datum/ai_controller/basic_controller/roro + blackboard = list( + BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic, + ) + + ai_traits = DEFAULT_AI_FLAGS | STOP_MOVING_WHEN_PULLED + ai_movement = /datum/ai_movement/basic_avoidance + idle_behavior = /datum/idle_behavior/idle_random_walk + + planning_subtrees = list( + /datum/ai_planning_subtree/target_retaliate, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) diff --git a/code/modules/mob/living/basic/trader/trader_actions.dm b/code/modules/mob/living/basic/trader/trader_actions.dm index ded9fbd46d0d..2e21f9630bcf 100644 --- a/code/modules/mob/living/basic/trader/trader_actions.dm +++ b/code/modules/mob/living/basic/trader/trader_actions.dm @@ -34,7 +34,7 @@ src.shop_sound = sell_sound src.opening_lines = opening_lines -/datum/action/setup_shop/Trigger(trigger_flags) +/datum/action/setup_shop/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 5b547e4ec177..c1721fbba6e6 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -28,8 +28,7 @@ //Bloodloss from wounds var/temp_bleed = 0 for(var/obj/item/bodypart/iter_part as anything in bodyparts) - var/iter_bleed_rate = iter_part.get_modified_bleed_rate() - temp_bleed += iter_bleed_rate * seconds_per_tick + temp_bleed += iter_part.cached_bleed_rate * seconds_per_tick if(iter_part.generic_bleedstacks) // If you don't have any bleedstacks, don't try and heal them iter_part.adjustBleedStacks(-1, 0) @@ -145,7 +144,7 @@ var/bleed_amt = 0 for(var/X in bodyparts) var/obj/item/bodypart/iter_bodypart = X - bleed_amt += iter_bodypart.get_modified_bleed_rate() + bleed_amt += iter_bodypart.cached_bleed_rate return bleed_amt /mob/living/carbon/human/get_bleed_rate() @@ -477,6 +476,9 @@ if (!splatter_turf) splatter_turf = get_turf(src) + if (!splatter_turf) + return + // Check for husking and TRAIT_NOBLOOD switch (can_bleed(BLOOD_COVER_TURFS)) if (BLEED_NONE) diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 2aa65797fa1c..4136c917ee29 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -44,11 +44,17 @@ var/can_smoothen_out = TRUE /// We got smooth from being washed var/smooth_brain = FALSE + /// Variance in brain traits added by subtypes + var/variant_traits_added + /// Variance in brain traits removed by subtypes + var/variant_traits_removed /obj/item/organ/brain/Initialize(mapload) . = ..() // Brain size logic transform = transform.Scale(brain_size) + organ_traits.Remove(variant_traits_removed) + organ_traits |= variant_traits_added /obj/item/organ/brain/on_mob_insert(mob/living/carbon/brain_owner, special = FALSE, movement_flags) . = ..() @@ -337,9 +343,15 @@ /obj/item/organ/brain/check_damage_thresholds(mob/M) . = ..() - //if we're not more injured than before, return without gambling for a trauma + // If we crossed blinking brain damage thresholds either way, update our blinking + if (owner && ((prev_damage > BRAIN_DAMAGE_ASYNC_BLINKING && damage < BRAIN_DAMAGE_ASYNC_BLINKING) || (prev_damage < BRAIN_DAMAGE_ASYNC_BLINKING && damage > BRAIN_DAMAGE_ASYNC_BLINKING))) + var/obj/item/organ/eyes/eyes = owner.get_organ_slot(ORGAN_SLOT_EYES) + eyes?.animate_eyelids(owner) + + // If we're not more injured than before, return without gambling for a trauma if(damage <= prev_damage) return + damage_delta = damage - prev_damage if(damage > BRAIN_DAMAGE_MILD) if(prob(damage_delta * (1 + max(0, (damage - BRAIN_DAMAGE_MILD)/100)))) //Base chance is the hit damage; for every point of damage past the threshold the chance is increased by 1% //learn how to do your bloody math properly goddamnit @@ -353,20 +365,22 @@ else gain_trauma_type(BRAIN_TRAUMA_SEVERE, natural_gain = TRUE) - if (owner) - if(owner.stat < UNCONSCIOUS) //conscious or soft-crit - var/brain_message - if(prev_damage < BRAIN_DAMAGE_MILD && damage >= BRAIN_DAMAGE_MILD) - brain_message = span_warning("You feel lightheaded.") - else if(prev_damage < BRAIN_DAMAGE_SEVERE && damage >= BRAIN_DAMAGE_SEVERE) - brain_message = span_warning("You feel less in control of your thoughts.") - else if(prev_damage < (BRAIN_DAMAGE_DEATH - 20) && damage >= (BRAIN_DAMAGE_DEATH - 20)) - brain_message = span_warning("You can feel your mind flickering on and off...") - - if(.) - . += "\n[brain_message]" - else - return brain_message + if (!owner || owner.stat > UNCONSCIOUS) + return + + // Conscious or soft-crit + var/brain_message + if(prev_damage < BRAIN_DAMAGE_MILD && damage >= BRAIN_DAMAGE_MILD) + brain_message = span_warning("You feel lightheaded.") + else if(prev_damage < BRAIN_DAMAGE_SEVERE && damage >= BRAIN_DAMAGE_SEVERE) + brain_message = span_warning("You feel less in control of your thoughts.") + else if(prev_damage < (BRAIN_DAMAGE_DEATH - 20) && damage >= (BRAIN_DAMAGE_DEATH - 20)) + brain_message = span_warning("You can feel your mind flickering on and off...") + + if(.) + . += "\n[brain_message]" + else + return brain_message /obj/item/organ/brain/before_organ_replacement(obj/item/organ/replacement) . = ..() @@ -423,25 +437,26 @@ name = "zombie brain" desc = "This glob of green mass can't have much intelligence inside it." icon_state = "brain-x" - organ_traits = list(TRAIT_CAN_STRIP, TRAIT_PRIMITIVE) + variant_traits_added = list(TRAIT_PRIMITIVE) + variant_traits_removed = list(TRAIT_LITERATE, TRAIT_ADVANCEDTOOLUSER) /obj/item/organ/brain/alien name = "alien brain" desc = "We barely understand the brains of terrestial animals. Who knows what we may find in the brain of such an advanced species?" icon_state = "brain-x" - organ_traits = list(TRAIT_CAN_STRIP) + variant_traits_removed = list(TRAIT_LITERATE, TRAIT_ADVANCEDTOOLUSER) /obj/item/organ/brain/primitive //No like books and stompy metal men name = "primitive brain" desc = "This juicy piece of meat has a clearly underdeveloped frontal lobe." - organ_traits = list( - TRAIT_ADVANCEDTOOLUSER, - TRAIT_CAN_STRIP, + variant_traits_removed = list(TRAIT_LITERATE) + variant_traits_added = list( TRAIT_PRIMITIVE, // No literacy TRAIT_FORBID_MINING_SHUTTLE_CONSOLE_OUTSIDE_STATION, TRAIT_EXPERT_FISHER, // live off land, fish from river TRAIT_ROUGHRIDER, // ride beast, chase down prey, flee from danger TRAIT_BEAST_EMPATHY, // know the way of beast, calm with food + TRAIT_TACKLING_TAILED_DEFENDER, ) /obj/item/organ/brain/golem @@ -451,14 +466,13 @@ can_smoothen_out = FALSE color = COLOR_GOLEM_GRAY organ_flags = ORGAN_MINERAL - organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP, TRAIT_ROCK_METAMORPHIC) + variant_traits_added = list(TRAIT_ROCK_METAMORPHIC) /obj/item/organ/brain/lustrous name = "lustrous brain" desc = "This is your brain on bluespace dust. Not even once." icon_state = "random_fly_4" can_smoothen_out = FALSE - organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP) // This fixes an edge case from species/regenerate_organs that would transfer the brain trauma before organ/on_mob_remove can remove it // Prevents wizards from using the magic mirror to gain bluespace_prophet trauma and then switching to another race @@ -492,7 +506,7 @@ /obj/item/organ/brain/lizard name = "lizard brain" desc = "This juicy piece of meat has a oversized brain stem and cerebellum, with not much of a limbic system to speak of at all. You would expect its owner to be pretty cold blooded." - organ_traits = list(TRAIT_TACKLING_TAILED_DEFENDER) + variant_traits_added = list(TRAIT_TACKLING_TAILED_DEFENDER) /obj/item/organ/brain/ghost name = "ghost brain" @@ -506,7 +520,7 @@ desc = "A piece of juicy meat found in an ayy lmao's head." icon_state = "brain-x" brain_size = 1.3 - organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_CAN_STRIP, TRAIT_LITERATE, TRAIT_REMOTE_TASTING) + variant_traits_added = list(TRAIT_REMOTE_TASTING) ////////////////////////////////////TRAUMAS//////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/alien/adult/adult.dm b/code/modules/mob/living/carbon/alien/adult/adult.dm index d09c196ec543..0ae07a4d3a1e 100644 --- a/code/modules/mob/living/carbon/alien/adult/adult.dm +++ b/code/modules/mob/living/carbon/alien/adult/adult.dm @@ -13,7 +13,7 @@ var/alt_icon = 'icons/mob/nonhuman-player/alienleap.dmi' //used to switch between the two alien icon files. var/leap_on_click = 0 var/pounce_cooldown = 0 - var/pounce_cooldown_time = 30 + var/pounce_cooldown_time = 3 SECONDS death_sound = 'sound/mobs/non-humanoids/hiss/hiss6.ogg' bodyparts = list( /obj/item/bodypart/chest/alien, diff --git a/code/modules/mob/living/carbon/alien/alien_say.dm b/code/modules/mob/living/carbon/alien/alien_say.dm index 43317ff59e7f..21655bfa1622 100644 --- a/code/modules/mob/living/carbon/alien/alien_say.dm +++ b/code/modules/mob/living/carbon/alien/alien_say.dm @@ -1,10 +1,10 @@ -/mob/living/proc/alien_talk(message, shown_name = real_name, big_voice = FALSE) - src.log_talk(message, LOG_SAY) +/mob/living/proc/alien_talk(message, list/spans = list(), list/message_mods = list(), shown_name = real_name, big_voice = FALSE) + log_sayverb_talk(message, message_mods, tag = "alien hivemind") message = trim(message) if(!message) return - var/message_a = say_quote(message) + var/message_a = generate_messagepart(message, spans, message_mods) var/hivemind_spans = "alien" if(big_voice) hivemind_spans += " big" @@ -16,8 +16,8 @@ var/link = FOLLOW_LINK(player, src) to_chat(player, "[link] [rendered]", type = MESSAGE_TYPE_RADIO) -/mob/living/carbon/alien/adult/royal/queen/alien_talk(message, shown_name = name) - ..(message, shown_name, TRUE) +/mob/living/carbon/alien/adult/royal/queen/alien_talk(message, list/spans = list(), list/message_mods = list(), shown_name = name, big_voice = TRUE) + ..(message, spans, message_mods, shown_name, TRUE) /mob/living/carbon/hivecheck() var/obj/item/organ/alien/hivenode/N = get_organ_by_type(/obj/item/organ/alien/hivenode) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 0d7d7a196fbb..6a16b8ea879f 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -247,7 +247,6 @@ W.layer = initial(W.layer) SET_PLANE_EXPLICIT(W, initial(W.plane), src) changeNext_move(0) - update_equipment_speed_mods() // In case cuffs ever change speed /mob/living/carbon/proc/clear_cuffs(obj/item/I, cuff_break) if(!I.loc || buckled) @@ -1142,14 +1141,14 @@ /// if any of our bodyparts are bleeding /mob/living/carbon/proc/is_bleeding() for(var/obj/item/bodypart/part as anything in bodyparts) - if(part.get_modified_bleed_rate()) + if(part.cached_bleed_rate) return TRUE /// get our total bleedrate /mob/living/carbon/proc/get_total_bleed_rate() var/total_bleed_rate = 0 for(var/obj/item/bodypart/part as anything in bodyparts) - total_bleed_rate += part.get_modified_bleed_rate() + total_bleed_rate += part.cached_bleed_rate return total_bleed_rate diff --git a/code/modules/mob/living/carbon/carbon_context.dm b/code/modules/mob/living/carbon/carbon_context.dm index b376ea3e113f..ca9e518c1d9f 100644 --- a/code/modules/mob/living/carbon/carbon_context.dm +++ b/code/modules/mob/living/carbon/carbon_context.dm @@ -15,7 +15,7 @@ else if (human_user == src) context[SCREENTIP_CONTEXT_LMB] = "Check injuries" - if (get_bodypart(human_user.zone_selected)?.get_modified_bleed_rate()) + if (get_bodypart(human_user.zone_selected)?.cached_bleed_rate) context[SCREENTIP_CONTEXT_CTRL_LMB] = "Grab limb" if (human_user != src) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 1a3629883b25..8315e470f7b4 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -508,28 +508,29 @@ var/ear_safety = get_ear_protection() var/obj/item/organ/ears/ears = get_organ_slot(ORGAN_SLOT_EARS) var/effect_amount = intensity - ear_safety - if(effect_amount > 0) - if(stun_pwr) - Paralyze((stun_pwr*effect_amount)*0.1) - Knockdown(stun_pwr*effect_amount) - - if(ears && (deafen_pwr || damage_pwr)) - var/ear_damage = damage_pwr * effect_amount - var/deaf = deafen_pwr * effect_amount - ears.adjustEarDamage(ear_damage,deaf) - - if(ears.damage >= 15) - to_chat(src, span_warning("Your ears start to ring badly!")) - if(prob(ears.damage - 5)) - to_chat(src, span_userdanger("You can't hear anything!")) - // Makes you deaf, enough that you need a proper source of healing, it won't self heal - // you need earmuffs, inacusiate, or replacement - ears.set_organ_damage(ears.maxHealth) - else if(ears.damage >= 5) - to_chat(src, span_warning("Your ears start to ring!")) - SEND_SOUND(src, sound('sound/items/weapons/flash_ring.ogg',0,1,0,250)) - return effect_amount //how soundbanged we are + if(effect_amount <= 0) + return FALSE + + if(stun_pwr) + Paralyze((stun_pwr*effect_amount)*0.1) + Knockdown(stun_pwr*effect_amount) + + if(ears && (deafen_pwr || damage_pwr)) + var/ear_damage = damage_pwr * effect_amount + var/deaf = deafen_pwr * effect_amount + ears.adjustEarDamage(ear_damage,deaf) + . = effect_amount //how soundbanged we are + SEND_SOUND(src, sound('sound/items/weapons/flash_ring.ogg',0,1,0,250)) + + if(ears.damage < 5) + return + if(ears.damage >= 15 && prob(ears.damage - 5)) + to_chat(src, span_userdanger("You can't hear anything!")) + // Makes you deaf, enough that you need a proper source of healing, it won't self heal + // you need earmuffs, inacusiate, or replacement + ears.set_organ_damage(ears.maxHealth) + to_chat(src, span_warning("Your ears start to ring[ears.damage >= 15 ? " badly!":"!"]")) /mob/living/carbon/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) if(damage_type != BRUTE && damage_type != BURN) @@ -601,7 +602,7 @@ to_chat(src, span_danger("You can't grasp your [grasped_part.name] with itself!")) return - var/bleed_rate = grasped_part.get_modified_bleed_rate() + var/bleed_rate = grasped_part.cached_bleed_rate var/bleeding_text = (bleed_rate ? ", trying to stop the bleeding" : "") to_chat(src, span_warning("You try grasping at your [grasped_part.name][bleeding_text]...")) if(!do_after(src, 0.75 SECONDS)) @@ -617,7 +618,7 @@ /// If TRUE, the owner of this bodypart can try grabbing it to slow bleeding, as well as various other effects. /obj/item/bodypart/proc/can_be_grasped() - if (get_modified_bleed_rate()) + if (cached_bleed_rate) return TRUE for (var/datum/wound/iterated_wound as anything in wounds) @@ -670,7 +671,7 @@ RegisterSignal(user, COMSIG_QDELETING, PROC_REF(qdel_void)) RegisterSignals(grasped_part, list(COMSIG_CARBON_REMOVE_LIMB, COMSIG_QDELETING), PROC_REF(qdel_void)) - var/bleed_rate = grasped_part.get_modified_bleed_rate() + var/bleed_rate = grasped_part.cached_bleed_rate var/bleeding_text = (bleed_rate ? ", trying to stop the bleeding" : "") user.visible_message(span_danger("[user] grasps at [user.p_their()] [grasped_part.name][bleeding_text]."), span_notice("You grab hold of your [grasped_part.name] tightly."), vision_distance=COMBAT_MESSAGE_RANGE) playsound(get_turf(src), 'sound/items/weapons/thudswoosh.ogg', 50, TRUE, -1) diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm index c53410461157..a7b22ed39b5b 100644 --- a/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -466,7 +466,7 @@ . = list() if(blocks_emissive != EMISSIVE_BLOCK_NONE) - . += emissive_blocker(standing.icon, standing.icon_state, src, alpha = standing.alpha) + . += emissive_blocker(standing.icon, standing.icon_state, src) SEND_SIGNAL(src, COMSIG_ITEM_GET_WORN_OVERLAYS, ., standing, isinhands, icon_file) /// worn_overlays to use when you'd want to use KEEP_APART. Don't use KEEP_APART neither there nor here, as it would break floating overlays diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index cb10924be78c..04cc20fc3dc8 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -94,6 +94,37 @@ amount += bodypart.burn_dam return round(amount, DAMAGE_PRECISION) + +/** + * Returns the amount of bruteloss across all bodyparts meeting the matching bodytype. + * Useful for if you would like to check the bruteloss for only organic bodyparts, for example. + * + * Arguments: + * * required_bodytype - The bodytype(s) to match against. + */ +/mob/living/carbon/proc/getBruteLossForType(required_bodytype = ALL) + var/amount = 0 + for(var/obj/item/bodypart/bodypart as anything in bodyparts) + if(!(bodypart.bodytype & required_bodytype)) + continue + amount += bodypart.brute_dam + return round(amount, DAMAGE_PRECISION) + +/** + * Returns the amount of fireloss across all bodyparts meeting the matching bodytype. + * Useful for if you would like to check the fireloss for only organic bodyparts, for example. + * + * Arguments: + * * required_bodytype - The bodytype(s) to match against. + */ +/mob/living/carbon/proc/getFireLossForType(required_bodytype = ALL) + var/amount = 0 + for(var/obj/item/bodypart/bodypart as anything in bodyparts) + if(!(bodypart.bodytype & required_bodytype)) + continue + amount += bodypart.burn_dam + return round(amount, DAMAGE_PRECISION) + /mob/living/carbon/adjustBruteLoss(amount, updating_health = TRUE, forced = FALSE, required_bodytype) if(!can_adjust_brute_loss(amount, forced, required_bodytype)) return 0 @@ -194,10 +225,13 @@ * * Arguments: * * slot - organ slot, like [ORGAN_SLOT_HEART] + * * required_organ_flag - if you only want to check the damage of organs with the specified organ_flag(s) then you can use this. */ -/mob/living/carbon/get_organ_loss(slot) +/mob/living/carbon/get_organ_loss(slot, required_organ_flag = NONE) var/obj/item/organ/affected_organ = get_organ_slot(slot) if(affected_organ) + if(required_organ_flag && !(affected_organ.organ_flags & required_organ_flag)) + return return affected_organ.damage //////////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 5921ac63caef..8e1c9d91fbf3 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -161,7 +161,7 @@ var/list/obj/item/bodypart/grasped_limbs = list() for(var/obj/item/bodypart/body_part as anything in bodyparts) - if(body_part.get_modified_bleed_rate()) + if(body_part.cached_bleed_rate) bleeding_limbs += body_part.plaintext_zone if(body_part.grasped_by) grasped_limbs += body_part.plaintext_zone diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index e908b050111b..3483e5b4f2be 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -627,8 +627,6 @@ GLOBAL_LIST_EMPTY(features_by_species) /datum/species/proc/spec_life(mob/living/carbon/human/H, seconds_per_tick, times_fired) SHOULD_CALL_PARENT(TRUE) - if(H.stat == DEAD) - return if(HAS_TRAIT(H, TRAIT_NOBREATH) && (H.health < H.crit_threshold) && !HAS_TRAIT(H, TRAIT_NOCRITDAMAGE)) H.adjustBruteLoss(0.5 * seconds_per_tick) @@ -748,15 +746,14 @@ GLOBAL_LIST_EMPTY(features_by_species) if(!disable_warning) to_chat(H, span_warning("You need a suit before you can attach this [I.name]!")) return FALSE - if(!H.wear_suit.allowed) - if(!disable_warning) - to_chat(H, span_warning("You somehow have a suit with no defined allowed items for suit storage, stop that.")) - return FALSE + var/any_suit_storage = (is_type_in_typecache(I, GLOB.any_suit_storage) || I.w_class == WEIGHT_CLASS_TINY) + if(any_suit_storage) + return TRUE if(I.w_class > WEIGHT_CLASS_BULKY) if(!disable_warning) to_chat(H, span_warning("\The [I] is too big to attach!")) //should be src? return FALSE - if( istype(I, /obj/item/modular_computer/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, H.wear_suit.allowed) ) + if( is_type_in_list(I, H.wear_suit.allowed) ) return TRUE return FALSE if(ITEM_SLOT_HANDCUFFED) @@ -819,7 +816,7 @@ GLOBAL_LIST_EMPTY(features_by_species) if(time_since_irradiated > RAD_MOB_HAIRLOSS && SPT_PROB(RAD_MOB_HAIRLOSS_PROB, seconds_per_tick)) var/obj/item/bodypart/head/head = source.get_bodypart(BODY_ZONE_HEAD) - if(!(source.hairstyle == "Bald") && (head?.head_flags & HEAD_HAIR|HEAD_FACIAL_HAIR)) + if(!(source.hairstyle == "Bald") && (head?.head_flags & (HEAD_HAIR|HEAD_FACIAL_HAIR))) to_chat(source, span_danger("Your hair starts to fall out in clumps...")) addtimer(CALLBACK(src, PROC_REF(go_bald), source), 5 SECONDS) @@ -858,11 +855,7 @@ GLOBAL_LIST_EMPTY(features_by_species) return FALSE var/obj/item/organ/brain/brain = user.get_organ_slot(ORGAN_SLOT_BRAIN) - var/obj/item/bodypart/attacking_bodypart - if(brain) - attacking_bodypart = brain.get_attacking_limb(target) - if(!attacking_bodypart) - attacking_bodypart = user.get_active_hand() + var/obj/item/bodypart/attacking_bodypart = attacker_style?.get_attacking_limb(user, target) || brain?.get_attacking_limb(target) || user.get_active_hand() // Whether or not we get some protein for a successful attack. Nom. var/biting = FALSE @@ -1008,6 +1001,7 @@ GLOBAL_LIST_EMPTY(features_by_species) tasty_meal.trans_to(user, tasty_meal.total_volume, transferred_by = user, methods = INGEST) SEND_SIGNAL(target, COMSIG_HUMAN_GOT_PUNCHED, user, damage, attack_type, affecting, final_armor_block, kicking, limb_sharpness) + SEND_SIGNAL(user, COMSIG_HUMAN_PUNCHED, target, damage, attack_type, affecting, final_armor_block, kicking, limb_sharpness) // If our target is staggered and has sustained enough damage, we can apply a randomly determined status effect to inflict when we punch them. // The effects are based on the punching effectiveness of our attacker. Some effects are not reachable by the average human, and require augmentation to reach or being a species with a heavy punch effectiveness. @@ -1129,19 +1123,19 @@ GLOBAL_LIST_EMPTY(features_by_species) * * humi (required)(type: /mob/living/carbon/human) The mob we will target */ /datum/species/proc/handle_body_temperature(mob/living/carbon/human/humi, seconds_per_tick, times_fired) - //when in a cryo unit we suspend all natural body regulation + // When in a cryo unit we suspend all natural body regulation if(istype(humi.loc, /obj/machinery/cryo_cell)) return - //Only stabilise core temp when alive and not in statis + // Only stabilise core temp when alive and not in statis if(humi.stat < DEAD && !HAS_TRAIT(humi, TRAIT_STASIS)) body_temperature_core(humi, seconds_per_tick, times_fired) - //These do run in statis + // These do run in statis body_temperature_skin(humi, seconds_per_tick, times_fired) body_temperature_alerts(humi, seconds_per_tick, times_fired) - //Do not cause more damage in statis + // Do not cause more damage in statis if(!HAS_TRAIT(humi, TRAIT_STASIS)) body_temperature_damage(humi, seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6f1e83bb474c..d2c86f4da5f7 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -23,7 +23,6 @@ . = ..() - RegisterSignal(src, COMSIG_COMPONENT_CLEAN_FACE_ACT, PROC_REF(clean_face)) AddComponent(/datum/component/personal_crafting, ui_human_crafting) AddElement(/datum/element/footstep, FOOTSTEP_MOB_HUMAN, 1, -6) AddComponent(/datum/component/bloodysoles/feet) @@ -75,7 +74,7 @@ //Update med hud images... ..() //...sec hud images... - sec_hud_set_ID() + update_ID_card() sec_hud_set_implants() sec_hud_set_security_status() //...fan gear @@ -902,7 +901,7 @@ var/carrydelay = 5 SECONDS //if you have latex you are faster at grabbing var/skills_space var/fitness_level = mind?.get_skill_level(/datum/skill/athletics) - 1 - var/experience_reward = 5 + var/experience_reward = ATHLETICS_SKILL_MISC_EXP if(HAS_TRAIT(src, TRAIT_QUICKER_CARRY)) carrydelay -= 2 SECONDS experience_reward *= 3 @@ -934,7 +933,7 @@ visible_message(span_warning("[src] fails to fireman carry [target]!")) return - mind?.adjust_experience(/datum/skill/athletics, experience_reward) //Get a bit fitter every time we fireman carry successfully. Deadlift your friends for gains! + mind?.adjust_experience(/datum/skill/athletics, round(experience_reward/(fitness_level || 1), 1)) //Get a bit fitter every time we fireman carry successfully. Deadlift your friends for gains! return buckle_mob(target, TRUE, TRUE, CARRIER_NEEDS_ARM) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 8e5903b1d969..5c4140223be8 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -34,7 +34,12 @@ return pda.saved_identification return if_no_id -//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere +/// Used to update our name based on whether our face is obscured/disfigured +/mob/living/carbon/human/proc/update_visible_name() + SIGNAL_HANDLER + name = get_visible_name() + +/// Combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a separate proc as it'll be useful elsewhere /mob/living/carbon/human/get_visible_name(add_id_name = TRUE, force_real_name = FALSE) var/list/identity = list(null, null, null) SEND_SIGNAL(src, COMSIG_HUMAN_GET_VISIBLE_NAME, identity) @@ -99,7 +104,7 @@ else var/obj/item/card/id/id = astype(wear_id, /obj/item/card/id) \ || astype(wear_id, /obj/item/storage/wallet)?.front_id \ - || astype(wear_id, /obj/item/modular_computer)?.computer_id_slot + || astype(wear_id, /obj/item/modular_computer)?.stored_id . = id?.registered_name if(!.) . = if_no_id //to prevent null-names making the mob unclickable diff --git a/code/modules/mob/living/carbon/human/init_signals.dm b/code/modules/mob/living/carbon/human/init_signals.dm index 8e6465cf0f3f..4bea0e925eac 100644 --- a/code/modules/mob/living/carbon/human/init_signals.dm +++ b/code/modules/mob/living/carbon/human/init_signals.dm @@ -1,7 +1,7 @@ /mob/living/carbon/human/register_init_signals() . = ..() - RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_UNKNOWN), SIGNAL_REMOVETRAIT(TRAIT_UNKNOWN)), PROC_REF(on_unknown_trait)) + RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_UNKNOWN), SIGNAL_REMOVETRAIT(TRAIT_UNKNOWN)), PROC_REF(update_ID_card)) RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_DWARF), SIGNAL_REMOVETRAIT(TRAIT_DWARF)), PROC_REF(on_dwarf_trait)) RegisterSignals(src, list(SIGNAL_ADDTRAIT(TRAIT_TOO_TALL), SIGNAL_REMOVETRAIT(TRAIT_TOO_TALL)), PROC_REF(on_tootall_trait)) RegisterSignal(src, COMSIG_MOVABLE_MESSAGE_GET_NAME_PART, PROC_REF(get_name_part)) @@ -11,12 +11,17 @@ RegisterSignal(src, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, PROC_REF(check_pocket_weght)) -/// Gaining or losing [TRAIT_UNKNOWN] updates our name and our sechud -/mob/living/carbon/human/proc/on_unknown_trait(datum/source) - SIGNAL_HANDLER + RegisterSignal(src, COMSIG_COMPONENT_CLEAN_FACE_ACT, PROC_REF(clean_face)) - name = get_visible_name() - sec_hud_set_ID() + // List of signals which force a visible name update + // TRAIT_UNKNOWN is excluded as it calls update_ID_card which also calls update_visible_name + var/static/list/name_update_signals = list( + SIGNAL_ADDTRAIT(TRAIT_INVISIBLE_MAN), + SIGNAL_REMOVETRAIT(TRAIT_INVISIBLE_MAN), + SIGNAL_ADDTRAIT(TRAIT_DISFIGURED), + SIGNAL_REMOVETRAIT(TRAIT_DISFIGURED), + ) + RegisterSignals(src, name_update_signals, PROC_REF(update_visible_name)) /// Gaining or losing [TRAIT_DWARF] updates our height and grants passtable /mob/living/carbon/human/proc/on_dwarf_trait(datum/source) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 3dec8022e58e..0805e2a11694 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -148,7 +148,7 @@ if(wear_id) return wear_id = equipping - sec_hud_set_ID() + update_ID_card() update_worn_id() if(ITEM_SLOT_EARS) if(ears) @@ -265,7 +265,7 @@ update_worn_belt() else if(item_dropping == wear_id) wear_id = null - sec_hud_set_ID() + update_ID_card() if(!QDELETED(src)) update_worn_id() else if(item_dropping == r_store) @@ -420,3 +420,9 @@ new_bodypart.try_attach_limb(src, TRUE) hand_bodyparts[i] = new_bodypart ..() //Don't redraw hands until we have organs for them + +/mob/living/carbon/human/update_equipment(obj/item/source) + . = ..() + // If the item we equipped/unequipped hides our face, we (potentially) need to update our name + if (source.flags_inv & HIDEFACE) + update_visible_name() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index de8b87733ea0..7990bbb3219c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -23,33 +23,31 @@ return . = ..() + if(QDELETED(src)) return FALSE - //Body temperature stability and damage + // Body temperature stability and damage dna.species.handle_body_temperature(src, seconds_per_tick, times_fired) - if(!HAS_TRAIT(src, TRAIT_STASIS)) - if(stat != DEAD) - //handle active mutations - for(var/datum/mutation/mutation as anything in dna.mutations) - mutation.on_life(seconds_per_tick, times_fired) - //heart attack stuff - handle_heart(seconds_per_tick, times_fired) - //handles liver failure effects, if we lack a liver - handle_liver(seconds_per_tick, times_fired) - - // for special species interactions - dna.species.spec_life(src, seconds_per_tick, times_fired) - else + if(HAS_TRAIT(src, TRAIT_STASIS)) for(var/datum/wound/iter_wound as anything in all_wounds) iter_wound.on_stasis(seconds_per_tick, times_fired) + return stat != DEAD - //Update our name based on whether our face is obscured/disfigured - name = get_visible_name() - - if(stat != DEAD) - return TRUE + if(stat == DEAD) + return FALSE + // Handle active mutations + for(var/datum/mutation/mutation as anything in dna.mutations) + mutation.on_life(seconds_per_tick, times_fired) + + // Heart attack stuff + handle_heart(seconds_per_tick, times_fired) + // Handles liver failure effects, if we lack a liver + handle_liver(seconds_per_tick, times_fired) + // For special species interactions + dna.species.spec_life(src, seconds_per_tick, times_fired) + return stat != DEAD /mob/living/carbon/human/calculate_affecting_pressure(pressure) var/chest_covered = !get_bodypart(BODY_ZONE_CHEST) diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index d3fabb91bc84..8fb2cb52c68c 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -260,7 +260,7 @@ hearers += owner ///Stops dullahans from gibbing when regenerating limbs -/obj/item/dullahan_relay/proc/unlist_head(datum/source, noheal = FALSE, list/excluded_zones) +/obj/item/dullahan_relay/proc/unlist_head(datum/source, list/excluded_zones) SIGNAL_HANDLER excluded_zones |= BODY_ZONE_HEAD diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index e165b472ecc2..e0f18165c3c1 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -19,6 +19,7 @@ ) mutanttongue = /obj/item/organ/tongue/lizard mutanteyes = /obj/item/organ/eyes/lizard + mutantbrain = /obj/item/organ/brain/lizard coldmod = 1.5 heatmod = 0.67 payday_modifier = 1.0 diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 38ef68e5272a..6cf669ec83ac 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -135,6 +135,8 @@ /datum/species/zombie/infectious/on_species_gain(mob/living/carbon/human/new_zombie, datum/species/old_species, pref_load, regenerate_icons) . = ..() new_zombie.set_combat_mode(TRUE) + // Needs to be added after combat mode is set + ADD_TRAIT(new_zombie, TRAIT_COMBAT_MODE_LOCK, SPECIES_TRAIT) // Deal with the source of this zombie corruption // Infection organ needs to be handled separately from mutant_organs @@ -160,6 +162,7 @@ /datum/species/zombie/infectious/on_species_loss(mob/living/carbon/human/was_zombie, datum/species/new_species, pref_load) . = ..() + REMOVE_TRAIT(was_zombie, TRAIT_COMBAT_MODE_LOCK, SPECIES_TRAIT) qdel(was_zombie.GetComponent(/datum/component/mutant_hands)) qdel(was_zombie.GetComponent(/datum/component/regenerator)) @@ -171,8 +174,6 @@ /datum/species/zombie/infectious/spec_life(mob/living/carbon/carbon_mob, seconds_per_tick, times_fired) . = ..() - carbon_mob.set_combat_mode(TRUE) // THE SUFFERING MUST FLOW - if(!HAS_TRAIT(carbon_mob, TRAIT_CRITICAL_CONDITION) && SPT_PROB(2, seconds_per_tick)) playsound(carbon_mob, pick(spooks), 50, TRUE, 10) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 672914f5c43f..02e67d04d16b 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -485,13 +485,17 @@ if(blood_type.reagent_type != chem.type) return + var/blood_stream_volume = min(round(reac_volume, CHEMICAL_VOLUME_ROUNDING), BLOOD_VOLUME_MAXIMUM - blood_volume) + if(blood_stream_volume > 0) //remove reagents from mob that has now entered the bloodstream + reagents.remove_reagent(chem.type, blood_stream_volume) + blood_volume += blood_stream_volume + if(chem.data?["blood_type"]) var/datum/blood_type/donor_type = chem.data["blood_type"] if(!(donor_type.type_key() in blood_type.compatible_types)) reagents.add_reagent(/datum/reagent/toxin, reac_volume * 0.5) return COMPONENT_NO_EXPOSE_REAGENTS - blood_volume = min(blood_volume + round(reac_volume, 0.1), BLOOD_VOLUME_MAXIMUM) return COMPONENT_NO_EXPOSE_REAGENTS /mob/living/carbon/proc/handle_bodyparts(seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index f40f26f59e1f..fe2b3b92e960 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -439,7 +439,7 @@ /mob/living/proc/setOrganLoss(slot, amount, maximum, required_organ_flag) return -/mob/living/proc/get_organ_loss(slot) +/mob/living/proc/get_organ_loss(slot, required_organ_flag) return /mob/living/proc/getStaminaLoss() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 76a501ae7af2..45e3f8834829 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -42,19 +42,18 @@ return if(!HAS_TRAIT(src, TRAIT_STASIS)) - if(stat != DEAD) //Mutations and radiation handle_mutations(seconds_per_tick, times_fired) //Breathing, if applicable handle_breathing(seconds_per_tick, times_fired) - handle_diseases(seconds_per_tick, times_fired)// DEAD check is in the proc itself; we want it to spread even if the mob is dead, but to handle its disease-y properties only if you're not. + handle_diseases(seconds_per_tick, times_fired) // DEAD check is in the proc itself; we want it to spread even if the mob is dead, but to handle its disease-y properties only if you're not. - if (QDELETED(src)) // diseases can qdel the mob via transformations + if (QDELETED(src)) // Diseases can qdel the mob via transformations return - //Handle temperature/pressure differences between body and environment + // Handle temperature/pressure differences between body and environment var/datum/gas_mixture/environment = loc.return_air() if(environment) handle_environment(environment, seconds_per_tick, times_fired) @@ -67,7 +66,7 @@ living_flags &= ~QUEUE_NUTRITION_UPDATE if(stat != DEAD) - return 1 + return TRUE /mob/living/proc/handle_breathing(seconds_per_tick, times_fired) SEND_SIGNAL(src, COMSIG_LIVING_HANDLE_BREATHING, seconds_per_tick, times_fired) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3f2cc1b3b391..f0d3e1f249e9 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1170,6 +1170,8 @@ var/effective_grab_state = pulledby.grab_state //The amount of damage inflicted on a failed resist attempt. var/damage_on_resist_fail = rand(7, 13) + // Base chance to escape a grab. Divided by effective grab state + var/escape_chance = BASE_GRAB_RESIST_CHANCE if(body_position == LYING_DOWN) //If prone, treat the grab state as one higher effective_grab_state++ @@ -1194,13 +1196,19 @@ var/puller_drunkenness = human_puller.get_drunk_amount() if(puller_drunkenness && HAS_TRAIT(human_puller, TRAIT_DRUNKEN_BRAWLER)) damage_on_resist_fail += clamp((human_puller.getFireLoss() + human_puller.getBruteLoss()) / 10, 3, 20) - effective_grab_state ++ + effective_grab_state++ + + var/datum/martial_art/puller_art = GET_ACTIVE_MARTIAL_ART(human_puller) + if(puller_art?.can_use(human_puller)) + damage_on_resist_fail += puller_art.grab_damage_modifier + effective_grab_state += puller_art.grab_state_modifier + escape_chance += puller_art.grab_escape_chance_modifier //We only resist our grab state if we are currently in a grab equal to or greater than GRAB_AGGRESSIVE (1). Otherwise, break out immediately! if(effective_grab_state >= GRAB_AGGRESSIVE) // see defines/combat.dm, this should be baseline 60% // Resist chance divided by the value imparted by your grab state. It isn't until you reach neckgrab that you gain a penalty to escaping a grab. - var/resist_chance = clamp(BASE_GRAB_RESIST_CHANCE / effective_grab_state, 0, 100) + var/resist_chance = clamp(escape_chance / effective_grab_state, 0, 100) if(prob(resist_chance)) visible_message(span_danger("[src] breaks free of [pulledby]'s grip!"), \ span_danger("You break free of [pulledby]'s grip!"), null, null, pulledby) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 496dd0cf035f..04d72de80644 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -572,6 +572,9 @@ return FALSE if(!(flags & SHOCK_ILLUSION)) adjustFireLoss(shock_damage) + if(getFireLoss() > 100) + add_shared_particles(/particles/smoke/burning) + addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/movable, remove_shared_particles), /particles/smoke/burning), 10 SECONDS) else adjustStaminaLoss(shock_damage) if(!(flags & SHOCK_SUPPRESS_MESSAGE)) diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 59e8e68aca6f..7754593a4327 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -136,6 +136,8 @@ /// Cell tracker datum we use to manage the pipes around us, for faster ventcrawling /// Should only exist if you're in a pipe var/datum/cell_tracker/pipetracker + /// Cooldown for welded vent movement messages to prevent spam + COOLDOWN_DECLARE(welded_vent_message_cd) var/smoke_delay = 0 ///used to prevent spam with smoke reagent reaction on mob. diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index 37695af09c5e..69c548ab9379 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -116,8 +116,8 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( var/original_message = message message = get_message_mods(message, message_mods) - saymode = SSradio.saymodes[message_mods[RADIO_KEY]] - if (!forced && !saymode) + saymode = SSradio.get_available_say_mode(src, message_mods[RADIO_KEY]) + if(!forced && (isnull(saymode) || saymode.allows_custom_say_emotes)) message = check_for_custom_say_emote(message, message_mods) if(!message) @@ -152,7 +152,7 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( if(!message_mods[WHISPER_MODE]) return if(DEAD) - say_dead(original_message) + say_dead(original_message, message_mods[MANNEQUIN_CONTROLLED]) return if(HAS_TRAIT(src, TRAIT_SOFTSPOKEN) && !HAS_TRAIT(src, TRAIT_SIGN_LANG)) // softspoken trait only applies to spoken languages @@ -171,15 +171,10 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( var/succumbed = FALSE - // If there's a custom say emote it gets logged differently. - if(message_mods[MODE_CUSTOM_SAY_EMOTE]) - log_message(message_mods[MODE_CUSTOM_SAY_EMOTE], LOG_RADIO_EMOTE) - // If it's not erasing the input portion, then something is being said and this isn't a pure custom say emote. if(!message_mods[MODE_CUSTOM_SAY_ERASE_INPUT]) if(message_mods[WHISPER_MODE] == MODE_WHISPER) message_range = 1 - log_talk(message, LOG_WHISPER, forced_by = forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) if(stat == HARD_CRIT) var/health_diff = round(-HEALTH_THRESHOLD_DEAD + health) // If we cut our message short, abruptly end it with a-.. @@ -189,8 +184,8 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( last_words = message message_mods[WHISPER_MODE] = MODE_WHISPER_CRIT succumbed = TRUE - else - log_talk(message, LOG_SAY, forced_by = forced, custom_say_emote = message_mods[MODE_CUSTOM_SAY_EMOTE]) + + log_sayverb_talk(message, message_mods, forced_by = forced) #ifdef UNIT_TESTS // Saves a ref() to our arglist specifically. @@ -231,7 +226,7 @@ GLOBAL_LIST_INIT(message_modes_stat_limits, list( message_mods[SAY_MOD_VERB] = say_mod(message, message_mods) //This is before anything that sends say a radio message, and after all important message type modifications, so you can scumb in alien chat or something - if(saymode && !saymode.handle_message(src, message, language)) + if(saymode && (saymode.handle_message(src, message, spans, language, message_mods) & SAYMODE_MESSAGE_HANDLED)) return var/radio_return = radio(message, message_mods, spans, language)//roughly 27% of living/say()'s total cost diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 6cfdcc6ec9c9..75564b0448d4 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -91,11 +91,21 @@ RegisterSignal(alert_control.listener, COMSIG_ALARM_LISTENER_TRIGGERED, PROC_REF(alarm_triggered)) RegisterSignal(alert_control.listener, COMSIG_ALARM_LISTENER_CLEARED, PROC_REF(alarm_cleared)) + //Heads up to other binary chat listeners that a new AI is online and listening to Binary. + if(announce_init_to_others && !is_centcom_level(z)) //Skip new syndicate AIs and also new AIs on centcom Z + for(var/mob/McMobby as anything in GLOB.player_list) + if(McMobby == src) + continue + if(!McMobby.binarycheck()) + continue + to_chat(McMobby,span_binarysay("\[ SYSTEM \] NEW REMOTE HOST HAS CONNECTED TO THIS CHANNEL -- ID: [src]"), type = MESSAGE_TYPE_RADIO) + /mob/living/silicon/ai/weak_syndie radio = /obj/item/radio/headset/silicon/ai/evil radio_enabled = TRUE interaction_range = 1 sprint = 5 + announce_init_to_others = FALSE /mob/living/silicon/ai/key_down(_key, client/user) if(findtext(_key, "numpad")) //if it's a numpad number, we can convert it to just the number @@ -797,7 +807,7 @@ /mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, list/message_mods = list()) var/raw_translation = translate_language(speaker, message_language, raw_message, spans, message_mods) var/atom/movable/source = speaker.GetSource() || speaker // is the speaker virtual/radio - var/treated_message = source.say_quote(raw_translation, spans, message_mods) + var/treated_message = source.generate_messagepart(raw_translation, spans, message_mods) var/start = "Relayed Speech: " var/namepart @@ -989,7 +999,7 @@ button_icon = 'icons/mob/actions/actions_AI.dmi' button_icon_state = "ai_shell" -/datum/action/innate/deploy_shell/Trigger(trigger_flags) +/datum/action/innate/deploy_shell/Trigger(mob/clicker, trigger_flags) var/mob/living/silicon/ai/AI = owner if(!AI) return @@ -1002,7 +1012,7 @@ button_icon_state = "ai_last_shell" var/mob/living/silicon/robot/last_used_shell -/datum/action/innate/deploy_last_shell/Trigger(trigger_flags) +/datum/action/innate/deploy_last_shell/Trigger(mob/clicker, trigger_flags) if(!owner) return if(last_used_shell) diff --git a/code/modules/mob/living/silicon/ai/ai_defines.dm b/code/modules/mob/living/silicon/ai/ai_defines.dm index 2f63a0f9bb31..2ce27d098a84 100644 --- a/code/modules/mob/living/silicon/ai/ai_defines.dm +++ b/code/modules/mob/living/silicon/ai/ai_defines.dm @@ -24,6 +24,8 @@ var/explodes_on_death = FALSE /// Whether its MMI is a posibrain or regular MMI, used when being [obj/structure/ai_core][deconstructed] var/posibrain_inside = TRUE + /// Whether other AIs get a "new host" announcement text. Syndicate AIs get to be sneaky and won't send the message. + var/announce_init_to_others = TRUE /* STATE */ diff --git a/code/modules/mob/living/silicon/ai/ai_say.dm b/code/modules/mob/living/silicon/ai/ai_say.dm index b6f4d4ded368..26f2cc2f64a5 100644 --- a/code/modules/mob/living/silicon/ai/ai_say.dm +++ b/code/modules/mob/living/silicon/ai/ai_say.dm @@ -42,25 +42,24 @@ return FALSE //For holopads only. Usable by AI. -/mob/living/silicon/ai/proc/holopad_talk(message, language) +/mob/living/silicon/ai/proc/holopad_talk(message, list/spans = list(), language, list/message_mods = list()) message = trim(message) if (!message) return var/obj/machinery/holopad/active_pad = current - if(istype(active_pad) && active_pad.masters[src])//If there is a hologram and its master is the user. - var/obj/effect/overlay/holo_pad_hologram/ai_holo = active_pad.masters[src] - var/turf/padturf = get_turf(active_pad) - var/padloc - if(padturf) - padloc = AREACOORD(padturf) - else - padloc = "(UNKNOWN)" - src.log_talk(message, LOG_SAY, tag="HOLOPAD in [padloc]") - ai_holo.say(message, sanitize = FALSE, language = language) - else + // Only continue if there is a hologram and its master is the user. + if(!istype(active_pad) || !active_pad.masters[src]) to_chat(src, span_alert("No holopad connected.")) + return + + var/obj/effect/overlay/holo_pad_hologram/ai_holo = active_pad.masters[src] + var/turf/pad_turf = get_turf(active_pad) + var/pad_loc = pad_turf ? AREACOORD(pad_turf) : "(UNKNOWN)" + + log_sayverb_talk(message, message_mods, tag = "HOLOPAD in [pad_loc]") + ai_holo.say(message, spans = spans, sanitize = FALSE, language = language, message_mods = message_mods) // Make sure that the code compiles with AI_VOX undefined diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm index 8f55a791e4f5..a2dcee69cd12 100644 --- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm +++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm @@ -70,6 +70,9 @@ /// The actual updating. It gathers the visible turfs from cameras and puts them into the appropiate lists. /// Accepts an optional partial_update argument, that blocks any calls out to chunks that could affect us, like above or below /datum/camerachunk/proc/update(partial_update = FALSE) + if(GLOB.block_camera_updates) + return + var/list/updated_visible_turfs = list() for(var/z_level in lower_z to upper_z) @@ -179,3 +182,8 @@ obscuredTurfs[obscured_turf] = new_static #undef UPDATE_BUFFER_TIME + +GLOBAL_VAR_INIT(block_camera_updates, FALSE) + +ADMIN_VERB(pause_camera_updates, R_ADMIN, "Toggle Camera Updates", "Stop security cameras from updating, meaning what they see now is what they will see forever.", ADMIN_CATEGORY_DEBUG) + GLOB.block_camera_updates = !GLOB.block_camera_updates diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 329b09282fe6..4f910463b9b3 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -908,7 +908,7 @@ button_icon = 'icons/mob/actions/actions_AI.dmi' button_icon_state = "ai_core" -/datum/action/innate/undeployment/Trigger(trigger_flags) +/datum/action/innate/undeployment/Trigger(mob/clicker, trigger_flags) if(!..()) return FALSE var/mob/living/silicon/robot/shell_to_disconnect = owner diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index b74a4ff05853..0306e8b56649 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -172,7 +172,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real balloon_alert(user, "toner filled") return ITEM_INTERACT_SUCCESS - if(istype(tool, /obj/item/flashlight)) + if(istype(tool, /obj/item/flashlight) && !istype(tool, /obj/item/flashlight/emp)) //subtypes my behated. OOP was a dumb idea if(user.combat_mode) return NONE if(!opened) diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index a2d74e6bd16e..d473cf205fd0 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -490,7 +490,7 @@ return FALSE return ..() -/datum/action/toggle_buffer/Trigger(trigger_flags) +/datum/action/toggle_buffer/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 89d687cfd77c..6fb367dc223c 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -109,9 +109,9 @@ return switch(severity) if(1) - src.take_bodypart_damage(20) + src.take_bodypart_damage(burn = 20) if(2) - src.take_bodypart_damage(10) + src.take_bodypart_damage(burn = 10) to_chat(src, span_userdanger("*BZZZT*")) for(var/mob/living/M in buckled_mobs) if(prob(severity*50)) @@ -121,12 +121,14 @@ flash_act(affect_silicon = 1) /mob/living/silicon/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit = FALSE) + if(hitting_projectile.damage_type == BURN) + hitting_projectile.damage_type = BRUTE //Burn is for wire damage. Brute is the outer chassis. . = ..() if(. != BULLET_ACT_HIT) return . var/prob_of_knocking_dudes_off = 0 - if(hitting_projectile.damage_type == BRUTE || hitting_projectile.damage_type == BURN) + if(hitting_projectile.damage_type == BRUTE) prob_of_knocking_dudes_off = hitting_projectile.damage * 1.5 if(hitting_projectile.stun || hitting_projectile.knockdown || hitting_projectile.paralyze) prob_of_knocking_dudes_off = 100 diff --git a/code/modules/mob/living/silicon/silicon_say.dm b/code/modules/mob/living/silicon/silicon_say.dm index d2b838901717..7e806bbdf8c9 100644 --- a/code/modules/mob/living/silicon/silicon_say.dm +++ b/code/modules/mob/living/silicon/silicon_say.dm @@ -1,8 +1,8 @@ -/mob/living/proc/robot_talk(message) - log_talk(message, LOG_SAY, tag="binary") +/mob/living/proc/robot_talk(message, list/spans = list(), list/message_mods = list()) + log_sayverb_talk(message, message_mods, tag="binary") var/designation = "Default Cyborg" - var/spans = list(SPAN_ROBOT) + spans |= SPAN_ROBOT if(issilicon(src)) var/mob/living/silicon/player = src @@ -15,9 +15,10 @@ // AIs are loud and ugly spans |= SPAN_COMMAND - var/quoted_message = say_quote( + var/messagepart = generate_messagepart( message, - spans + spans, + message_mods, ) var/namepart = name @@ -31,31 +32,31 @@ namepart = brain.mainframe.name designation = brain.mainframe.job - for(var/mob/M in GLOB.player_list) - if(M.binarycheck()) - if(isAI(M)) + for(var/mob/hearing_mob in GLOB.player_list) + if(hearing_mob.binarycheck()) + if(isAI(hearing_mob)) to_chat( - M, + hearing_mob, span_binarysay("\ Robotic Talk, \ - [span_name("[namepart] ([designation])")] \ - [quoted_message]\ + [span_name("[namepart] ([designation])")] \ + [messagepart]\ "), type = MESSAGE_TYPE_RADIO, - avoid_highlighting = src == M + avoid_highlighting = (src == hearing_mob) ) else to_chat( - M, + hearing_mob, span_binarysay("\ Robotic Talk, \ - [span_name("[namepart]")] [quoted_message]\ + [span_name("[namepart]")] [messagepart]\ "), type = MESSAGE_TYPE_RADIO, - avoid_highlighting = src == M + avoid_highlighting = (src == hearing_mob) ) - if(isobserver(M)) + if(isobserver(hearing_mob)) var/following = src // If the AI talks on binary chat, we still want to follow @@ -65,17 +66,17 @@ var/mob/living/silicon/ai/ai = src following = ai.eyeobj - var/follow_link = FOLLOW_LINK(M, following) + var/follow_link = FOLLOW_LINK(hearing_mob, following) to_chat( - M, + hearing_mob, span_binarysay("\ [follow_link] \ Robotic Talk, \ - [span_name("[namepart]")] [quoted_message]\ + [span_name("[namepart]")] [messagepart]\ "), type = MESSAGE_TYPE_RADIO, - avoid_highlighting = src == M + avoid_highlighting = (src == hearing_mob) ) /mob/living/silicon/binarycheck() diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index d55b6df01959..d2fb1785b868 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -93,7 +93,7 @@ desc = "It's Sergeant-At-Armsky! He's a disgruntled assistant to the warden that would probably shoot you if he had hands." health = 45 bot_mode_flags = ~(BOT_MODE_CAN_BE_SAPIENT|BOT_MODE_AUTOPATROL) - security_mode_flags = SECBOT_DECLARE_ARRESTS | SECBOT_CHECK_IDS | SECBOT_CHECK_RECORDS + security_mode_flags = SECBOT_DECLARE_ARRESTS | SECBOT_CHECK_IDS | SECBOT_CHECK_RECORDS | SECBOT_CHECK_WEAPONS /mob/living/simple_animal/bot/secbot/beepsky/jr name = "Officer Pipsqueak" diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 770cca76ea4a..c6e03028a263 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -48,7 +48,7 @@ ///What the current cooldown on ranged attacks is, generally world.time + ranged_cooldown_time var/ranged_cooldown = 0 ///How long, in deciseconds, the cooldown of ranged attacks is - var/ranged_cooldown_time = 30 + var/ranged_cooldown_time = 3 SECONDS ///if it'll fire ranged attacks even if it lacks vision on its target, only works with environment smash var/ranged_ignores_vision = FALSE ///Should the ranged mob check for friendlies when shooting @@ -71,7 +71,7 @@ ///Timer for regaining our old search_objects value after being attacked var/search_objects_timer_id ///The delay between being attacked and gaining our old search_objects value back - var/search_objects_regain_time = 30 + var/search_objects_regain_time = 3 SECONDS ///A typecache of objects types that will be checked against to attack, should we have search_objects enabled var/list/wanted_objects = list() ///Mobs ignore mob/living targets with a stat lower than that of stat_attack. If set to DEAD, then they'll include corpses in their targets, if to HARD_CRIT they'll keep attacking until they kill, and so on. @@ -90,7 +90,7 @@ ///id for a timer to call LoseTarget(), used to stop mobs fixating on a target they can't reach var/lose_patience_timer_id ///30 seconds by default, so there's no major changes to AI behaviour, beyond actually bailing if stuck forever - var/lose_patience_timeout = 300 + var/lose_patience_timeout = 30 SECONDS /mob/living/simple_animal/hostile/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 1af4234db356..4f07a92bec1f 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -46,7 +46,6 @@ Difficulty: Medium achievement_type = /datum/award/achievement/boss/blood_miner_kill crusher_achievement_type = /datum/award/achievement/boss/blood_miner_crusher score_achievement_type = /datum/award/score/blood_miner_score - var/obj/item/melee/cleaving_saw/miner/miner_saw death_message = "falls to the ground, decaying into glowing particles." death_sound = SFX_BODYFALL footstep_type = FOOTSTEP_MOB_HEAVY @@ -61,10 +60,13 @@ Difficulty: Medium var/datum/action/cooldown/mob_cooldown/dash_attack/dash_attack /// Transform weapon ability var/datum/action/cooldown/mob_cooldown/transform_weapon/transform_weapon + /// Their little saw + var/obj/item/melee/cleaving_saw/miner/miner_saw /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize(mapload) . = ..() miner_saw = new(src) + RegisterSignal(miner_saw, COMSIG_PREQDELETED, PROC_REF(on_saw_deleted)) ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, INNATE_TRAIT) dash = new /datum/action/cooldown/mob_cooldown/dash @@ -78,11 +80,20 @@ Difficulty: Medium AddComponent(/datum/component/boss_music, 'sound/music/boss/bdm_boss.ogg', 167 SECONDS) -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Destroy() +/// Block deletion of their saw under normal circumstances. It is fused to their hands as far as we're concerned. +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/on_saw_deleted(datum/source, force) + SIGNAL_HANDLER + + if(!force) + return TRUE + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Destroy(force) dash = null kinetic_accelerator = null dash_attack = null transform_weapon = null + UnregisterSignal(miner_saw, COMSIG_PREQDELETED) // unblock deletion, we are dead. + QDEL_NULL(miner_saw) return ..() /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire() diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index b2e3628d3157..185c208fd08e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -455,7 +455,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/hierophant/CanAttack(atom/the_target) . = ..() - if(istype(the_target, /mob/living/basic/legion_brood)) //ignore temporary targets in favor of more permanent targets + if(istype(the_target, /mob/living/basic/mining/legion_brood)) //ignore temporary targets in favor of more permanent targets return FALSE /mob/living/simple_animal/hostile/megafauna/hierophant/GiveTarget(new_target) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 17171fb91765..5f26b0730465 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -108,6 +108,15 @@ maxHealth = 200 size = LEGION_SMALL +/mob/living/simple_animal/hostile/megafauna/legion/small/Initialize(mapload) + . = ..() + update_appearance(UPDATE_OVERLAYS) + +/mob/living/simple_animal/hostile/megafauna/legion/small/update_overlays() + . = ..() + if (stat != DEAD) // Shouldn't really happen but just in case + . += emissive_appearance(icon, "[icon_state]_e", src, effect_type = EMISSIVE_NO_BLOOM) + /mob/living/simple_animal/hostile/megafauna/legion/OpenFire(the_target) if(client) return @@ -148,7 +157,7 @@ var/mob/living/living_target = target switch(living_target.stat) if(UNCONSCIOUS, HARD_CRIT) - var/mob/living/basic/legion_brood/legion = new(loc) + var/mob/living/basic/mining/legion_brood/legion = new(loc) legion.infest(living_target) ///Special snowflake death() here. Can only die if size is 1 or lower and HP is 0 or below. diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm index d829d704c008..9746fef46754 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/pandora.dm @@ -47,7 +47,7 @@ /datum/action/innate/elite_attack/aoe_squares) var/sing_shot_length = 8 - var/cooldown_time = 20 + var/cooldown_time = 2 SECONDS /datum/action/innate/elite_attack/singular_shot name = "Singular Shot" diff --git a/code/modules/mob/living/simple_animal/hostile/ooze.dm b/code/modules/mob/living/simple_animal/hostile/ooze.dm index 8f53f2066c00..511300d56ac9 100644 --- a/code/modules/mob/living/simple_animal/hostile/ooze.dm +++ b/code/modules/mob/living/simple_animal/hostile/ooze.dm @@ -221,7 +221,7 @@ RegisterSignal(owner, COMSIG_LIVING_DEATH, PROC_REF(stop_consuming)) ///Try to consume the pulled mob -/datum/action/consume/Trigger(trigger_flags) +/datum/action/consume/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 2fa18caf7bc2..af05778db43b 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -52,7 +52,10 @@ return if(ventcrawl_target.welded) if(provide_feedback) - to_chat(src, span_warning("You can't crawl around a welded vent!")) + // Add cooldown to prevent welded vent message spam during movement + if(COOLDOWN_FINISHED(src, welded_vent_message_cd)) + to_chat(src, span_warning("You can't crawl around a welded vent!")) + COOLDOWN_START(src, welded_vent_message_cd, 2 SECONDS) return if(!(vent_movement & VENTCRAWL_ENTRANCE_ALLOWED)) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index ef85ac35c409..a047f0dc1ed9 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1502,7 +1502,12 @@ else living_flags |= QUEUE_NUTRITION_UPDATE -///Apply a proper movespeed modifier based on items we have equipped +/// Update mob stats based on equipment we are wearing when an item is equipped/dropped, to be overriden by children +/// source - Item that caused the update by being equipped/dropped +/mob/proc/update_equipment(obj/item/source) + update_equipment_speed_mods() + +/// Apply a proper movespeed modifier based on items we have equipped /mob/proc/update_equipment_speed_mods() var/speedies = 0 var/immutable_speedies = 0 diff --git a/code/modules/mob/mob_say.dm b/code/modules/mob/mob_say.dm index 1a27f9f6c6bc..5442dddc72b6 100644 --- a/code/modules/mob/mob_say.dm +++ b/code/modules/mob/mob_say.dm @@ -108,8 +108,14 @@ return ..() -///Speak as a dead person (ghost etc) -/mob/proc/say_dead(message) +/** + * say_dead + * allows you to speak as a dead person + * Args: + * - message: The message you're sending to chat. + * - mannequin_controller: If someone else is forcing you to speak, this is the mob doing it. + */ +/mob/proc/say_dead(message, mob/mannequin_controller) var/name = real_name var/alt_name = "" @@ -117,7 +123,7 @@ to_chat(usr, span_danger("Speech is currently admin-disabled.")) return - var/jb = is_banned_from(ckey, "Deadchat") + var/jb = is_banned_from(mannequin_controller?.ckey || ckey, "Deadchat") if(QDELETED(src)) return @@ -150,7 +156,7 @@ if(name != real_name) alt_name = " (died as [real_name])" - var/spanned = say_quote(apply_message_emphasis(message)) + var/spanned = generate_messagepart(message) var/source = "DEAD: [name][alt_name]" var/rendered = " [emoji_parse(spanned)]" log_talk(message, LOG_SAY, tag="DEAD") diff --git a/code/modules/mob/say_readme.md b/code/modules/mob/say_readme.md index 5284012de297..e39dfb9fbcf3 100644 --- a/code/modules/mob/say_readme.md +++ b/code/modules/mob/say_readme.md @@ -53,7 +53,7 @@ global procs languages live either in datum/languages_holder or in the mind. verb_say/verb_ask/verb_exclaim/verb_yell/verb_sing - These determine what the verb is for their respective action. Used in say_quote(). + These determine what the verb is for their respective action. Used in generate_messagepart(). say(message, bubble_type, var/list/spans, sanitize, datum/language/language, ignore_spam, forced) Say() is the "mother-proc". It calls all the other procs required for speaking, but does little itself. @@ -82,8 +82,8 @@ global procs Modifies the message by comparing the languages of the speaker with the languages of the hearer. Called on the hearer. - say_quote(input, spans, list/message_mods) - Adds a verb and quotes to a message. Also attaches span classes to a message. + generate_messagepart(input, spans, list/message_mods) + Either adds a lone custom say verb, or a verb and quotes to a message. Also attaches span classes to a message. Verbs are determined by verb_say/verb_ask/verb_yell/verb_sing variables. Called on the speaker. /mob diff --git a/code/modules/mob_spawn/ghost_roles/unused_roles.dm b/code/modules/mob_spawn/ghost_roles/unused_roles.dm index df651eb29c77..18f5aabb7dba 100644 --- a/code/modules/mob_spawn/ghost_roles/unused_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/unused_roles.dm @@ -308,7 +308,7 @@ /datum/outfit/syndicatespace/syndicrew name = "Syndicate Ship Crew Member" - glasses = /obj/item/clothing/glasses/night/colorless + glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/syndicate l_pocket = /obj/item/gun/ballistic/automatic/pistol r_pocket = /obj/item/knife/combat/survival diff --git a/code/modules/mod/mod_link.dm b/code/modules/mod/mod_link.dm index 2002469a16ec..116a3caff8c5 100644 --- a/code/modules/mod/mod_link.dm +++ b/code/modules/mod/mod_link.dm @@ -28,12 +28,11 @@ setdir_callback.Invoke(user, user.dir, user.dir) mod_link.holder.RegisterSignal(mod_link.holder.loc, COMSIG_ATOM_DIR_CHANGE, proc_path) -/proc/delete_link_visual_generic(datum/mod_link/mod_link) - var/mob/living/user = mod_link.get_user_callback.Invoke() +/proc/delete_link_visual_generic(datum/mod_link/mod_link, mob/living/old_user) playsound(mod_link.get_other().holder, 'sound/machines/terminal/terminal_processing.ogg', 50, vary = TRUE, frequency = -1) LAZYREMOVE(mod_link.holder.update_on_z, mod_link.visual) mod_link.holder.lose_hearing_sensitivity(REF(mod_link)) - mod_link.holder.UnregisterSignal(user, list(COMSIG_CARBON_APPLY_OVERLAY, COMSIG_CARBON_REMOVE_OVERLAY, COMSIG_ATOM_DIR_CHANGE)) + mod_link.holder.UnregisterSignal(old_user, list(COMSIG_CARBON_APPLY_OVERLAY, COMSIG_CARBON_REMOVE_OVERLAY, COMSIG_ATOM_DIR_CHANGE)) QDEL_NULL(mod_link.visual) /proc/on_user_set_dir_generic(datum/mod_link/mod_link, newdir) @@ -115,14 +114,14 @@ /obj/item/mod/control/proc/get_link_visual(atom/movable/visuals) return get_link_visual_generic(mod_link, visuals, PROC_REF(on_wearer_set_dir)) -/obj/item/mod/control/proc/delete_link_visual() - return delete_link_visual_generic(mod_link) +/obj/item/mod/control/proc/delete_link_visual(mob/living/old_user) + return delete_link_visual_generic(mod_link, old_user) /obj/item/mod/control/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, radio_freq_name, radio_freq_color, list/spans, list/message_mods, message_range) . = ..() if(speaker != wearer && speaker != ai_assistant) return - mod_link.visual.say(raw_message, sanitize = FALSE, message_range = 2) + mod_link.visual.say(raw_message, spans = spans, sanitize = FALSE, language = message_language, message_range = 2, message_mods = message_mods) /obj/item/mod/control/proc/on_overlay_change(atom/source, cache_index, overlay) SIGNAL_HANDLER @@ -292,17 +291,16 @@ /obj/item/clothing/neck/link_scryer/proc/get_link_visual(atom/movable/visuals) return get_link_visual_generic(mod_link, visuals, PROC_REF(on_user_set_dir)) -/obj/item/clothing/neck/link_scryer/proc/delete_link_visual() - var/mob/living/user = mod_link.get_user_callback.Invoke() - if(!QDELETED(user)) - user.update_worn_neck() - return delete_link_visual_generic(mod_link) +/obj/item/clothing/neck/link_scryer/proc/delete_link_visual(mob/living/old_user) + if(!QDELETED(old_user)) + old_user.update_worn_neck() + return delete_link_visual_generic(mod_link, old_user) /obj/item/clothing/neck/link_scryer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, radio_freq_name, radio_freq_color, list/spans, list/message_mods, message_range) . = ..() if(speaker != loc) return - mod_link.visual.say(raw_message, sanitize = FALSE, message_range = 3) + mod_link.visual.say(raw_message, spans = spans, sanitize = FALSE, language = message_language, message_range = 3, message_mods = message_mods) /obj/item/clothing/neck/link_scryer/proc/on_overlay_change(atom/source, cache_index, overlay) SIGNAL_HANDLER @@ -346,6 +344,8 @@ var/list/visual_overlays = list() /// A reference to the call between two MODlinks. var/datum/mod_link_call/link_call + /// Weakref to the user that is involved in our current call, for cleaning up after ourselves. + var/datum/weakref/user_in_call_ref /// A callback that returns the user of the MODlink. var/datum/callback/get_user_callback /// A callback that returns whether the MODlink can currently call. @@ -435,6 +435,22 @@ /datum/mod_link/proc/end_call() QDEL_NULL(link_call) +/datum/mod_link/proc/entered_call(datum/mod_link/other_link) + var/mob/living/user = get_user_callback.Invoke() + user_in_call_ref = WEAKREF(user) + ADD_TRAIT(user, TRAIT_IN_CALL, REF(src)) + + var/other_visual = other_link.make_visual_callback.Invoke() + get_visual_callback.Invoke(other_visual) + +/datum/mod_link/proc/exiting_call() + var/mob/living/old_user = user_in_call_ref?.resolve() + user_in_call_ref = null + if(old_user) + REMOVE_TRAIT(old_user, TRAIT_IN_CALL, REF(src)) + + delete_visual_callback.Invoke(old_user) + /datum/mod_link/proc/on_holder_delete(atom/source) SIGNAL_HANDLER qdel(src) @@ -447,28 +463,20 @@ var/datum/mod_link/link_receiver /datum/mod_link_call/New(datum/mod_link/link_caller, datum/mod_link/link_receiver) - link_caller.link_call = src - link_receiver.link_call = src src.link_caller = link_caller src.link_receiver = link_receiver - var/mob/living/caller_mob = link_caller.get_user_callback.Invoke() - ADD_TRAIT(caller_mob, TRAIT_IN_CALL, REF(src)) - var/mob/living/receiver_mob = link_receiver.get_user_callback.Invoke() - ADD_TRAIT(receiver_mob, TRAIT_IN_CALL, REF(src)) - make_visuals() + link_caller.link_call = src + link_receiver.link_call = src + link_caller.entered_call(link_receiver) + link_receiver.entered_call(link_caller) START_PROCESSING(SSprocessing, src) /datum/mod_link_call/Destroy() - var/mob/living/caller_mob = link_caller.get_user_callback.Invoke() - if(!QDELETED(caller_mob)) - REMOVE_TRAIT(caller_mob, TRAIT_IN_CALL, REF(src)) - var/mob/living/receiver_mob = link_receiver.get_user_callback.Invoke() - if(!QDELETED(receiver_mob)) - REMOVE_TRAIT(receiver_mob, TRAIT_IN_CALL, REF(src)) - STOP_PROCESSING(SSprocessing, src) - clear_visuals() + link_caller.exiting_call() + link_receiver.exiting_call() link_caller.link_call = null link_receiver.link_call = null + STOP_PROCESSING(SSprocessing, src) return ..() /datum/mod_link_call/process(seconds_per_tick) @@ -479,16 +487,6 @@ /datum/mod_link_call/proc/can_continue_call() return link_caller.frequency == link_receiver.frequency && link_caller.can_call_callback.Invoke() && link_receiver.can_call_callback.Invoke() -/datum/mod_link_call/proc/make_visuals() - var/caller_visual = link_caller.make_visual_callback.Invoke() - var/receiver_visual = link_receiver.make_visual_callback.Invoke() - link_caller.get_visual_callback.Invoke(receiver_visual) - link_receiver.get_visual_callback.Invoke(caller_visual) - -/datum/mod_link_call/proc/clear_visuals() - link_caller.delete_visual_callback.Invoke() - link_receiver.delete_visual_callback.Invoke() - /proc/call_link(mob/user, datum/mod_link/calling_link) if(!calling_link.frequency) return diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index 2c8e2e7e0082..d8449338f7bf 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -465,7 +465,7 @@ device = /obj/item/gun/medbeam/mod incompatible_modules = list(/obj/item/mod/module/medbeam) removable = TRUE - cooldown_time = 0.5 + cooldown_time = 0.05 SECONDS required_slots = list(ITEM_SLOT_BACK) /obj/item/gun/medbeam/mod diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index b84cc43c4be9..422f4962aaed 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -997,7 +997,7 @@ var/obj/item/gloves = mod.get_part_from_slot(ITEM_SLOT_GLOVES) if(!gloves) return - gloves.AddComponent(/datum/component/adjust_fishing_difficulty, 5) + gloves.AddComponent(/datum/component/adjust_fishing_difficulty, -5) if(equipped) gloves.AddComponent(/datum/component/profound_fisher, equipped, delete_rod_when_deleted = FALSE) @@ -1044,7 +1044,7 @@ /obj/item/mod/module/hearing_protection/on_part_activation() var/obj/item/clothing/head_cover = mod.get_part_from_slot(ITEM_SLOT_HEAD) || mod.get_part_from_slot(ITEM_SLOT_MASK) || mod.get_part_from_slot(ITEM_SLOT_EYES) if(istype(head_cover)) - head_cover.AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_HEAD)) + head_cover.AddComponent(/datum/component/wearertargeting/earprotection) var/datum/component/wearertargeting/earprotection/protection = head_cover.GetComponent(/datum/component/wearertargeting/earprotection) protection.on_equip(src, mod.wearer, ITEM_SLOT_HEAD) diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm index 3d4f17b7f7ab..17804dcd4067 100644 --- a/code/modules/mod/modules/modules_maint.dm +++ b/code/modules/mod/modules/modules_maint.dm @@ -54,7 +54,7 @@ set_off = TRUE ///Calls snap_signal() when exposed to a reagent via VAPOR, PATCH or TOUCH -/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, volume_modifier, show_message) +/obj/item/mod/module/springlock/proc/on_wearer_exposed(atom/source, list/reagents, datum/reagents/source_reagents, methods, show_message) SIGNAL_HANDLER if(!(methods & (VAPOR|PATCH|TOUCH))) diff --git a/code/modules/mod/modules/modules_visor.dm b/code/modules/mod/modules/modules_visor.dm index 572094627326..7897ac404f27 100644 --- a/code/modules/mod/modules/modules_visor.dm +++ b/code/modules/mod/modules/modules_visor.dm @@ -92,9 +92,9 @@ required_slots = list(ITEM_SLOT_HEAD|ITEM_SLOT_EYES|ITEM_SLOT_MASK) /obj/item/mod/module/night/on_activation() - mod.wearer.add_traits(TRAIT_TRUE_NIGHT_VISION, REF(src)) + ADD_TRAIT(mod.wearer, TRAIT_TRUE_NIGHT_VISION, REF(src)) mod.wearer.update_sight() /obj/item/mod/module/night/on_deactivation(display_message = TRUE, deleting = FALSE) - mod.wearer.remove_traits(TRAIT_TRUE_NIGHT_VISION, REF(src)) + REMOVE_TRAIT(mod.wearer, TRAIT_TRUE_NIGHT_VISION, REF(src)) mod.wearer.update_sight() diff --git a/code/modules/modular_computers/computers/item/computer.dm b/code/modules/modular_computers/computers/item/computer.dm index a12935ca2b89..011484b5bb96 100644 --- a/code/modules/modular_computers/computers/item/computer.dm +++ b/code/modules/modular_computers/computers/item/computer.dm @@ -15,7 +15,9 @@ interaction_flags_mouse_drop = NEED_HANDS | ALLOW_RESTING ///The ID currently stored in the computer. - var/obj/item/card/id/computer_id_slot + var/obj/item/card/id/stored_id + ///The alt slot, only used by certain UIs like the access app. + var/obj/item/card/id/alt_stored_id ///The disk in this PDA. If set, this will be inserted on Initialize. var/obj/item/computer_disk/inserted_disk ///The power cell the computer uses to run on. @@ -189,8 +191,9 @@ QDEL_NULL(inserted_disk) if(istype(inserted_pai)) QDEL_NULL(inserted_pai) - if(computer_id_slot) - QDEL_NULL(computer_id_slot) + + QDEL_NULL(stored_id) + QDEL_NULL(alt_stored_id) shell = null physical = null @@ -230,7 +233,7 @@ if(issilicon(user)) return NONE - if(RemoveID(user)) + if(remove_id(user)) return CLICK_ACTION_SUCCESS if(istype(inserted_pai)) // Remove pAI @@ -239,22 +242,31 @@ return CLICK_ACTION_BLOCKING +/obj/item/modular_computer/click_alt_secondary(mob/user) + if(issilicon(user)) + return NONE + + if(remove_secondary_id(user)) + return CLICK_ACTION_SUCCESS + + return NONE + // Gets IDs/access levels from card slot. Would be useful when/if PDAs would become modular PCs. //guess what /obj/item/modular_computer/GetAccess() - if(computer_id_slot) - return computer_id_slot.GetAccess() + if(stored_id) + return stored_id.GetAccess() return ..() /obj/item/modular_computer/GetID() - if(computer_id_slot) - return computer_id_slot + if(stored_id) + return stored_id return ..() /obj/item/modular_computer/get_id_examine_strings(mob/user) . = ..() - if(computer_id_slot) - . += "[src] is displaying [computer_id_slot]:" - . += computer_id_slot.get_id_examine_strings(user) + if(stored_id) + . += "[src] is displaying [stored_id]:" + . += stored_id.get_id_examine_strings(user) /obj/item/modular_computer/proc/print_text(text_to_print, paper_title = "") if(!stored_paper) @@ -269,23 +281,23 @@ return TRUE /** - * InsertID * Attempt to insert the ID in either card slot, if ID is present - attempts swap + * * Args: * inserting_id - the ID being inserted * user - The person inserting the ID */ -/obj/item/modular_computer/InsertID(obj/item/card/inserting_id, mob/user) +/obj/item/modular_computer/insert_id(obj/item/card/inserting_id, mob/user) if(!isnull(user) && !user.transferItemToLoc(inserting_id, src)) return FALSE else inserting_id.forceMove(src) - if(!isnull(computer_id_slot)) - RemoveID(user, silent = TRUE) + if(!isnull(stored_id)) + remove_id(user, silent = TRUE) - computer_id_slot = inserting_id + stored_id = inserting_id if(!isnull(user)) to_chat(user, span_notice("You insert \the [inserting_id] into the card slot.")) @@ -296,42 +308,91 @@ if(ishuman(loc)) var/mob/living/carbon/human/human_wearer = loc if(human_wearer.wear_id == src) - human_wearer.sec_hud_set_ID() + human_wearer.update_ID_card() update_appearance() update_slot_icon() SEND_SIGNAL(src, COMSIG_MODULAR_COMPUTER_INSERTED_ID, inserting_id, user) return TRUE +/** + * Attempts to insert a secondary ID card into the computer. If there is already a secondary ID card, attempts to swap + * + * Args: + * * secondary_id - The ID card to insert into the secondary slot. + * * user - The mob trying to insert the ID, if there is one. + */ +/obj/item/modular_computer/proc/insert_secondary_id(obj/item/card/id/secondary_id, mob/user) + if(!isnull(alt_stored_id)) + remove_secondary_id(user, silent = TRUE) + + if(!user.transferItemToLoc(secondary_id, src)) + return FALSE + + alt_stored_id = secondary_id + if(!isnull(user)) + to_chat(user, span_notice("You insert \the [secondary_id] into the secondary card slot.")) + balloon_alert(user, "inserted secondary ID") + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) + + return TRUE + +/** + * Removes the alt ID card from the computer, and puts it in loc's hand if it's a mob + * + * Args: + * * user - The mob trying to remove the ID, if there is one + * * silent - Boolean, determines whether fluff text would be printed + */ +/obj/item/modular_computer/proc/remove_secondary_id(mob/user, silent = FALSE) + if(!alt_stored_id) + return FALSE + + if(!issilicon(user) && in_range(src, user)) + user.put_in_hands(alt_stored_id) + else + alt_stored_id.forceMove(drop_location()) + + var/obj/item/lost_id = alt_stored_id + alt_stored_id = null + + if(!silent && !isnull(user)) + to_chat(user, span_notice("You remove \the [lost_id] from the secondary card slot.")) + balloon_alert(user, "removed secondary ID") + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) + + return TRUE + /** * Removes the ID card from the computer, and puts it in loc's hand if it's a mob * Args: - * user - The mob trying to remove the ID, if there is one - * silent - Boolean, determines whether fluff text would be printed + * * user - The mob trying to remove the ID, if there is one + * * silent - Boolean, determines whether fluff text would be printed */ -/obj/item/modular_computer/RemoveID(mob/user, silent = FALSE) - if(!computer_id_slot) +/obj/item/modular_computer/remove_id(mob/user, silent = FALSE) + if(!stored_id) return ..() if(crew_manifest_update) - GLOB.manifest.modify(computer_id_slot.registered_name, computer_id_slot.assignment, computer_id_slot.get_trim_assignment()) + GLOB.manifest.modify(stored_id.registered_name, stored_id.assignment, stored_id.get_trim_assignment()) if(user && !issilicon(user) && in_range(src, user)) - user.put_in_hands(computer_id_slot) + user.put_in_hands(stored_id) else - computer_id_slot.forceMove(drop_location()) + stored_id.forceMove(drop_location()) - computer_id_slot = null + var/obj/item/lost_id = stored_id + stored_id = null if(!silent && !isnull(user)) - to_chat(user, span_notice("You remove the card from the card slot.")) - playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) + to_chat(user, span_notice("You remove \the [lost_id] from the card slot.")) balloon_alert(user, "removed ID") + playsound(src, 'sound/machines/terminal/terminal_insert_disc.ogg', 50, FALSE) if(ishuman(loc)) var/mob/living/carbon/human/human_wearer = loc if(human_wearer.wear_id == src) - human_wearer.sec_hud_set_ID() + human_wearer.update_ID_card() update_slot_icon() update_appearance() @@ -391,15 +452,20 @@ . += "It is upgraded with an experimental long-ranged network capabilities, picking up NTNet frequencies while further away." . += span_notice("It has [max_capacity] GQ of storage capacity.") - if(computer_id_slot) + if(stored_id) if(Adjacent(user)) - . += "It has \the [computer_id_slot] card installed in its card slot." + . += "It has \the [stored_id] card inserted in its card slot.[alt_stored_id ? "" : " [span_info("Alt-click to eject it.")]"]" else . += "Its identification card slot is currently occupied." - . += span_info("Alt-click [src] to eject the identification card.") + + if(alt_stored_id) + if(Adjacent(user)) + . += "It has \the [alt_stored_id] card stored in its secondary card slot. [span_info("Alt-click to eject it.")]" + else + . += "Its secondary identification card slot is currently occupied." if(internal_cell) - . += span_info("Right-click it with a screwdriver to eject the [internal_cell]") + . += span_info("Right-click it with a screwdriver to eject the [internal_cell].") /obj/item/modular_computer/examine_more(mob/user) . = ..() @@ -415,8 +481,10 @@ /obj/item/modular_computer/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) . = ..() - if(computer_id_slot && isidcard(held_item)) - context[SCREENTIP_CONTEXT_LMB] = "Swap ID" + if(isidcard(held_item)) + context[SCREENTIP_CONTEXT_LMB] = stored_id ? "Swap ID" : "Insert ID" + if(HAS_TRAIT(src, TRAIT_MODPC_TWO_ID_SLOTS)) + context[SCREENTIP_CONTEXT_RMB] = alt_stored_id ? "Swap Secondary ID" : "Insert Secondary ID" . = CONTEXTUAL_SCREENTIP_SET if(held_item?.tool_behaviour == TOOL_SCREWDRIVER && internal_cell) @@ -426,7 +494,10 @@ context[SCREENTIP_CONTEXT_RMB] = "Deconstruct" . = CONTEXTUAL_SCREENTIP_SET - if(computer_id_slot) // ID get removed first before pAIs + if(alt_stored_id) + context[SCREENTIP_CONTEXT_ALT_RMB] = "Remove Secondary ID" + . = CONTEXTUAL_SCREENTIP_SET + if(stored_id) // ID get removed first before pAIs context[SCREENTIP_CONTEXT_ALT_LMB] = "Remove ID" . = CONTEXTUAL_SCREENTIP_SET else if(inserted_pai) @@ -457,12 +528,14 @@ internal_cell = null if(enabled && !use_energy()) shutdown_computer() - if(computer_id_slot == gone) - computer_id_slot = null + if(stored_id == gone) + stored_id = null update_slot_icon() if(ishuman(loc)) var/mob/living/carbon/human/human_wearer = loc - human_wearer.sec_hud_set_ID() + human_wearer.update_ID_card() + if(alt_stored_id == gone) + alt_stored_id = null if(inserted_pai == gone) update_appearance(UPDATE_ICON) if(inserted_disk == gone) @@ -718,8 +791,8 @@ ///Imprints name and job into the modular computer, and calls back to necessary functions. ///Acts as a replacement to directly setting the imprints fields. All fields are optional, the proc will try to fill in missing gaps. /obj/item/modular_computer/proc/imprint_id(name = null, job_name = null) - saved_identification = name || computer_id_slot?.registered_name || saved_identification - saved_job = job_name || computer_id_slot?.assignment || saved_job + saved_identification = name || stored_id?.registered_name || saved_identification + saved_job = job_name || stored_id?.assignment || saved_job SEND_SIGNAL(src, COMSIG_MODULAR_PDA_IMPRINT_UPDATED, saved_identification, saved_job) UpdateDisplay() @@ -823,9 +896,15 @@ update_appearance() return ITEM_INTERACT_SUCCESS +/obj/item/modular_computer/item_interaction_secondary(mob/living/user, obj/item/tool, list/modifiers) + if(isidcard(tool) && HAS_TRAIT(src, TRAIT_MODPC_TWO_ID_SLOTS)) + return insert_secondary_id(tool, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + + return item_interaction(user, tool, modifiers) + /obj/item/modular_computer/item_interaction(mob/living/user, obj/item/tool, list/modifiers) if(isidcard(tool)) - return InsertID(tool, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + return insert_id(tool, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING if(iscash(tool)) return money_act(user, tool) @@ -854,8 +933,10 @@ if(istype(tool, /obj/item/computer_disk)) return computer_disk_act(user, tool) + return NONE + /obj/item/modular_computer/proc/money_act(mob/user, obj/item/money) - var/obj/item/card/id/inserted_id = computer_id_slot?.GetID() + var/obj/item/card/id/inserted_id = stored_id?.GetID() if(!inserted_id) balloon_alert(user, "no ID!") return ITEM_INTERACT_BLOCKING @@ -934,16 +1015,16 @@ return ITEM_INTERACT_SUCCESS /obj/item/modular_computer/atom_deconstruct(disassembled = TRUE) + var/atom/droploc = drop_location() remove_pai() eject_aicard() - if (disassembled) - internal_cell?.forceMove(drop_location()) - computer_id_slot?.forceMove(drop_location()) - inserted_disk?.forceMove(drop_location()) - new /obj/item/stack/sheet/iron(drop_location(), steel_sheet_cost) - else + internal_cell?.forceMove(droploc) + stored_id?.forceMove(droploc) + alt_stored_id?.forceMove(droploc) + inserted_disk?.forceMove(droploc) + if (!disassembled) physical.visible_message(span_notice("\The [src] breaks apart!")) - new /obj/item/stack/sheet/iron(drop_location(), round(steel_sheet_cost * 0.5)) + new /obj/item/stack/sheet/iron(droploc, steel_sheet_cost * (disassembled ? 1 : 0.5)) relay_qdel() // Ejects the inserted intellicard, if one exists. Used when the computer is deconstructed. @@ -998,7 +1079,7 @@ if(SEC_LEVEL_RED) // all-hands-on-deck situations, everyone is responsible for combatting a threat return ALERT_RELEVANCY_PERTINENT if(SEC_LEVEL_BLUE) // suspected threat. security needs to be alert and possibly preparing for it, no further concerns - if(ACCESS_SECURITY in computer_id_slot?.access) + if(ACCESS_SECURITY in stored_id?.access) return ALERT_RELEVANCY_PERTINENT else return ALERT_RELEVANCY_WARN diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm index 3a260df77998..16a0a5915ffa 100644 --- a/code/modules/modular_computers/computers/item/computer_ui.dm +++ b/code/modules/modular_computers/computers/item/computer_ui.dm @@ -97,9 +97,9 @@ ) data["proposed_login"] = list( - IDInserted = computer_id_slot ? TRUE : FALSE, - IDName = computer_id_slot?.registered_name, - IDJob = computer_id_slot?.assignment, + IDInserted = stored_id ? TRUE : FALSE, + IDName = stored_id?.registered_name, + IDJob = stored_id?.assignment, ) data["removable_media"] = list() @@ -211,7 +211,7 @@ return TRUE if("ID") - if(RemoveID(user)) + if(remove_id(user)) playsound(src, 'sound/machines/card_slide.ogg', 50) return TRUE diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index 325907b0b71c..6d01aa7e3f5b 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -76,7 +76,7 @@ /obj/item/modular_computer/pda/update_overlays() . = ..() - if(computer_id_slot) + if(stored_id) . += mutable_appearance(overlays_icon, "id_overlay") if(light_on) . += mutable_appearance(overlays_icon, "light_overlay") diff --git a/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/code/modules/modular_computers/computers/item/role_tablet_presets.dm index 17eebde4cd44..43341cfbc16a 100644 --- a/code/modules/modular_computers/computers/item/role_tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/role_tablet_presets.dm @@ -337,7 +337,7 @@ lube_flags = NO_SLIP_WHEN_WALKING,\ on_slip_callback = CALLBACK(src, PROC_REF(AfterSlip)),\ can_slip_callback = CALLBACK(src, PROC_REF(try_slip)),\ - slot_whitelist = list(ITEM_SLOT_ID, ITEM_SLOT_BELT),\ + slot_whitelist = ITEM_SLOT_ID | ITEM_SLOT_BELT,\ ) AddComponent(/datum/component/wearertargeting/sitcomlaughter, CALLBACK(src, PROC_REF(after_sitcom_laugh))) @@ -394,6 +394,7 @@ starting_programs = list( /datum/computer_file/program/emojipedia, /datum/computer_file/program/newscaster, + /datum/computer_file/program/portrait_printer, ) /obj/item/modular_computer/pda/curator/Initialize(mapload) diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index cf68507adeb7..00411f280d2e 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -50,10 +50,16 @@ return ..() /obj/machinery/modular_computer/add_context(atom/source, list/context, obj/item/held_item, mob/user) - . = ..() + . = NONE + if(isnull(held_item)) context[SCREENTIP_CONTEXT_RMB] = "Toggle processor interaction" - return CONTEXTUAL_SCREENTIP_SET + . |= CONTEXTUAL_SCREENTIP_SET + + if(CPU_INTERACTABLE(user)) + . |= cpu?.add_context(source, context, held_item, user) + + return . /obj/machinery/modular_computer/attack_hand_secondary(mob/user, list/modifiers) . = ..() @@ -117,11 +123,17 @@ return update_icon(updates) /obj/machinery/modular_computer/click_alt(mob/user) - if(CPU_INTERACTABLE(user) || !can_interact(user)) + if(!CPU_INTERACTABLE(user) || !can_interact(user)) return NONE cpu.click_alt(user) return CLICK_ACTION_SUCCESS +/obj/machinery/modular_computer/click_alt_secondary(mob/user) + if(!CPU_INTERACTABLE(user) || !can_interact(user)) + return NONE + cpu.click_alt_secondary(user) + return CLICK_ACTION_SUCCESS + //ATTACK HAND IGNORING PARENT RETURN VALUE // On-click handling. Turns on the computer if it's off and opens the GUI. /obj/machinery/modular_computer/interact(mob/user) @@ -157,6 +169,9 @@ /obj/machinery/modular_computer/item_interaction(mob/living/user, obj/item/tool, list/modifiers) return (CPU_INTERACTABLE(user) && !user.combat_mode) ? cpu.item_interaction(user, tool, modifiers) : ..() +/obj/machinery/modular_computer/item_interaction_secondary(mob/living/user, obj/item/tool, list/modifiers) + return (CPU_INTERACTABLE(user) && !user.combat_mode) ? cpu.item_interaction_secondary(user, tool, modifiers) : ..() + /obj/machinery/modular_computer/attacked_by(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) return CPU_INTERACTABLE(user) ? cpu.attacked_by(attacking_item, user, modifiers, attack_modifiers) : ..() diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm index 64516fa30bdf..eed37d68cde2 100644 --- a/code/modules/modular_computers/file_system/program.dm +++ b/code/modules/modular_computers/file_system/program.dm @@ -173,7 +173,7 @@ if(!length(access)) var/obj/item/card/id/accesscard if(computer) - accesscard = computer.computer_id_slot?.GetID() + accesscard = computer.stored_id?.GetID() if(!accesscard) if(loud && user) @@ -202,7 +202,7 @@ if(!can_run(user, loud = TRUE)) return FALSE if(program_flags & PROGRAM_REQUIRES_NTNET) - var/obj/item/card/id/ID = computer.computer_id_slot?.GetID() + var/obj/item/card/id/ID = computer.stored_id?.GetID() generate_network_log("Connection opened -- Program ID:[filename] User:[ID?"[ID.registered_name]":"None"]") SEND_SIGNAL(src, COMSIG_COMPUTER_PROGRAM_START, user) return TRUE @@ -228,7 +228,7 @@ return FALSE if(program_flags & PROGRAM_REQUIRES_NTNET) - var/obj/item/card/id/ID = computer.computer_id_slot?.GetID() + var/obj/item/card/id/ID = computer.stored_id?.GetID() generate_network_log("Connection closed -- Program ID: [filename] User:[ID ? "[ID.registered_name]" : "None"]") computer.update_appearance(UPDATE_ICON) diff --git a/code/modules/modular_computers/file_system/programs/betting.dm b/code/modules/modular_computers/file_system/programs/betting.dm index 8d132e052172..d368d15e8e70 100644 --- a/code/modules/modular_computers/file_system/programs/betting.dm +++ b/code/modules/modular_computers/file_system/programs/betting.dm @@ -40,17 +40,17 @@ GLOBAL_LIST_EMPTY_TYPED(active_bets, /datum/active_bet) "description" = bets.description, "owner" = bets == created_bet, "creator" = bets.bet_owner, - "current_bets" = bets.get_bets(computer.computer_id_slot?.registered_account), + "current_bets" = bets.get_bets(computer.stored_id?.registered_account), "locked" = bets.locked, )) data["can_create_bet"] = !!isnull(created_bet) - if(isnull(computer.computer_id_slot)) + if(isnull(computer.stored_id)) data["bank_name"] = null data["bank_money"] = null else - data["bank_name"] = computer.computer_id_slot.registered_account.account_holder - data["bank_money"] = computer.computer_id_slot.registered_account.account_balance + data["bank_name"] = computer.stored_id.registered_account.account_holder + data["bank_money"] = computer.stored_id.registered_account.account_balance return data @@ -63,7 +63,7 @@ GLOBAL_LIST_EMPTY_TYPED(active_bets, /datum/active_bet) /datum/computer_file/program/betting/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() var/mob/user = ui.user - if(isnull(computer.computer_id_slot)) + if(isnull(computer.stored_id)) to_chat(user, span_danger("\The [computer] flashes an \"RFID Error - Unable to scan ID\" warning.")) return switch(action) @@ -102,14 +102,14 @@ GLOBAL_LIST_EMPTY_TYPED(active_bets, /datum/active_bet) var/option = params["option_selected"] if(isnull(bet_placed_on)) return - bet_placed_on.bet_money(computer.computer_id_slot.registered_account, money_betting, option) + bet_placed_on.bet_money(computer.stored_id.registered_account, money_betting, option) return TRUE if("cancel_bet") var/datum/active_bet/bet_cancelling for(var/datum/active_bet/bets as anything in GLOB.active_bets) if(bets.name == params["bet_selected"]) bet_cancelling = bets - bet_cancelling.cancel_bet(computer.computer_id_slot.registered_account) + bet_cancelling.cancel_bet(computer.stored_id.registered_account) return TRUE if("select_winner") var/datum/active_bet/bets_ending @@ -170,19 +170,32 @@ GLOBAL_LIST_EMPTY_TYPED(active_bets, /datum/active_bet) for(var/option in options) if(!length(options[option])) options[option] = list() - //we'll only advertise it on the first bet of the round, as to not make this overly annoying. - var/should_alert = FALSE - for(var/datum/feed_channel/FC in GLOB.news_network.network_channels) - if(FC.channel_name == NEWSCASTER_SPACE_BETTING) - if(!length(FC.messages)) - should_alert = TRUE - newscaster_message = GLOB.news_network.submit_article("The bet [name] has started, place your bets now!", "NtOS Space Betting App", NEWSCASTER_SPACE_BETTING, null, update_alert = should_alert) + advertise_bet() /datum/active_bet/Destroy(force) GLOB.active_bets -= src newscaster_message = null return ..() +/// Place a feed article advertising our bet. +/datum/active_bet/proc/advertise_bet() + var/datum/feed_channel/betting_channel = GLOB.news_network.network_channels_by_name[NEWSCASTER_SPACE_BETTING] + if(isnull(betting_channel)) + return + // We'll only advertise it on the first bet of the round, as to not make this overly annoying. + var/should_alert = !length(betting_channel.messages) + newscaster_message = GLOB.news_network.submit_article("The bet [name] has started, place your bets now!", "NtOS Space Betting App", NEWSCASTER_SPACE_BETTING, null, update_alert = should_alert) + +/// Reply to our previously placed advertisement feed article. +/datum/active_bet/proc/reply_to_feed(winning_option) + if(isnull(newscaster_message)) + return + GLOB.news_network.submit_comment( + comment_text = "The bet [name] has ended, the winner was [winning_option]!", + newscaster_username = "NtOS Betting Results", + current_message = newscaster_message, + ) + ///Returns how many bets there is per option /datum/active_bet/proc/get_bets(datum/bank_account/user_account) var/list/bets_per_option = list() @@ -206,11 +219,8 @@ GLOBAL_LIST_EMPTY_TYPED(active_bets, /datum/active_bet) var/datum/bank_account/refunded_account = existing_bets[1] refunded_account.adjust_money(text2num(existing_bets[2]), "Refund: [name] gamble cancelled.") return - GLOB.news_network.submit_comment( - comment_text = "The bet [name] has ended, the winner was [winning_option]!", - newscaster_username = "NtOS Betting Results", - current_message = newscaster_message, - ) + + reply_to_feed(winning_option) var/list/winners = options[winning_option] if(!length(winners)) return diff --git a/code/modules/modular_computers/file_system/programs/bounty_board.dm b/code/modules/modular_computers/file_system/programs/bounty_board.dm index da86b112689c..1b1320544731 100644 --- a/code/modules/modular_computers/file_system/programs/bounty_board.dm +++ b/code/modules/modular_computers/file_system/programs/bounty_board.dm @@ -39,8 +39,8 @@ if(!networked) GLOB.allbountyboards += computer networked = TRUE - if(computer.computer_id_slot) - current_user = computer.computer_id_slot?.registered_account + if(computer.stored_id) + current_user = computer.stored_id?.registered_account for(var/i in GLOB.request_list) if(!i) continue diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm index b05237436a13..38bfb3647449 100644 --- a/code/modules/modular_computers/file_system/programs/budgetordering.dm +++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm @@ -48,7 +48,7 @@ //Aquire access from the inserted ID card. if(!length(access)) - var/obj/item/card/id/D = computer?.computer_id_slot?.GetID() + var/obj/item/card/id/D = computer?.stored_id?.GetID() if(!D) return FALSE access = D.GetAccess() @@ -63,7 +63,7 @@ data["location"] = SSshuttle.supply.getStatusText() data["department"] = "Cargo" var/datum/bank_account/buyer = SSeconomy.get_dep_account(cargo_account) - var/obj/item/card/id/id_card = computer.computer_id_slot?.GetID() + var/obj/item/card/id/id_card = computer.stored_id?.GetID() if(id_card?.registered_account) if((ACCESS_COMMAND in id_card.access)) requestonly = FALSE @@ -109,7 +109,6 @@ )) //Data regarding the User's capability to buy things. - data["has_id"] = id_card data["away"] = SSshuttle.supply.getDockedId() == docking_away data["self_paid"] = self_paid data["docked"] = SSshuttle.supply.mode == SHUTTLE_IDLE @@ -188,7 +187,7 @@ usr.investigate_log("sent the supply shuttle away.", INVESTIGATE_CARGO) else usr.investigate_log("called the supply shuttle.", INVESTIGATE_CARGO) - computer.say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minutes.") + computer.say("The supply shuttle has been called and will arrive in [SSshuttle.supply.timeLeft(600)] minute\s.") SSshuttle.moveShuttle(cargo_shuttle, docking_home, TRUE) . = TRUE if("loan") @@ -244,7 +243,7 @@ return var/reason = "" - if((requestonly && !self_paid) || !(computer.computer_id_slot?.GetID())) + if((requestonly && !self_paid) || !(computer.stored_id?.GetID())) reason = tgui_input_text(usr, "Reason", name, max_length = MAX_MESSAGE_LEN) if(isnull(reason) || ..()) return @@ -260,13 +259,13 @@ return if(!requestonly && !self_paid && ishuman(usr) && !account) - var/obj/item/card/id/id_card = computer.computer_id_slot?.GetID() + var/obj/item/card/id/id_card = computer.stored_id?.GetID() account = SSeconomy.get_dep_account(id_card?.registered_account?.account_job.paycheck_department) var/turf/T = get_turf(computer) var/datum/supply_order/SO = new(pack, name, rank, ckey, reason, account) SO.generateRequisition(T) - if((requestonly && !self_paid) || !(computer.computer_id_slot?.GetID())) + if((requestonly && !self_paid) || !(computer.stored_id?.GetID())) SSshuttle.request_list += SO else SSshuttle.shopping_list += SO @@ -290,7 +289,7 @@ var/id = text2num(params["id"]) for(var/datum/supply_order/SO in SSshuttle.request_list) if(SO.id == id) - var/obj/item/card/id/id_card = computer.computer_id_slot?.GetID() + var/obj/item/card/id/id_card = computer.stored_id?.GetID() if(id_card && id_card?.registered_account) SO.paying_account = SSeconomy.get_dep_account(id_card?.registered_account?.account_job.paycheck_department) SSshuttle.request_list -= SO diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm index fe5fbbdfce10..e8dd5320fcb3 100644 --- a/code/modules/modular_computers/file_system/programs/card.dm +++ b/code/modules/modular_computers/file_system/programs/card.dm @@ -26,6 +26,15 @@ /// Which departments this program has access to. See region defines. var/target_dept +/datum/computer_file/program/card_mod/on_install(datum/computer_file/source, obj/item/modular_computer/computer_installing) + . = ..() + ADD_TRAIT(computer_installing, TRAIT_MODPC_TWO_ID_SLOTS, REF(src)) + +/datum/computer_file/program/card_mod/Destroy() + if(computer) + REMOVE_TRAIT(computer, TRAIT_MODPC_TWO_ID_SLOTS, REF(src)) + return ..() + /** * Authenticates the program based on the specific ID card. * @@ -80,24 +89,25 @@ /datum/computer_file/program/card_mod/kill_program(mob/user) computer.crew_manifest_update = FALSE - var/obj/item/card/id/inserted_auth_card = computer.computer_id_slot - if(inserted_auth_card) - GLOB.manifest.modify(inserted_auth_card.registered_name, inserted_auth_card.assignment, inserted_auth_card.get_trim_assignment()) + var/obj/item/card/id/modified_id = computer.alt_stored_id + if(modified_id) + GLOB.manifest.modify(modified_id.registered_name, modified_id.assignment, modified_id.get_trim_assignment()) return ..() /datum/computer_file/program/card_mod/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) . = ..() var/mob/user = usr - var/obj/item/card/id/inserted_auth_card = computer.computer_id_slot + var/obj/item/card/id/auth_card = computer.stored_id + var/obj/item/card/id/modified_id = computer.alt_stored_id switch(action) // Log in. if("PRG_authenticate") - if(!computer || !inserted_auth_card) + if(!computer || !auth_card) playsound(computer, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return TRUE - if(authenticate(user, inserted_auth_card)) + if(authenticate(user, auth_card)) playsound(computer, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) return TRUE // Log out. @@ -108,71 +118,61 @@ return TRUE // Print a report. if("PRG_print") - if(!computer) - return TRUE - if(!authenticated_card) + if(!computer || !authenticated_card || !modified_id) return TRUE var/contents = {"

Access Report

Prepared By: [authenticated_user]
- For: [inserted_auth_card.registered_name ? inserted_auth_card.registered_name : "Unregistered"]
+ For: [modified_id.registered_name || "Unregistered"]

- Assignment: [inserted_auth_card.assignment]
+ Assignment: [modified_id.assignment]
Access:
"} var/list/known_access_rights = SSid_access.get_region_access_list(list(REGION_ALL_STATION)) - for(var/A in inserted_auth_card.access) + for(var/A in modified_id.access) if(A in known_access_rights) contents += " [SSid_access.get_access_desc(A)]" - if(!computer.print_text(contents, "access report - [inserted_auth_card.registered_name ? inserted_auth_card.registered_name : "Unregistered"]")) + if(!computer.print_text(contents, "access report - [modified_id.registered_name || "Unregistered"]")) to_chat(usr, span_notice("Printer is out of paper.")) return TRUE else playsound(computer, 'sound/machines/terminal/terminal_on.ogg', 50, FALSE) computer.visible_message(span_notice("\The [computer] prints out a paper.")) return TRUE - if("PRG_eject_id") - if(inserted_auth_card) - return computer.RemoveID(usr) - else - var/obj/item/I = user.get_active_held_item() - if(isidcard(I)) - return computer.InsertID(I, user) - return TRUE // Used to fire someone. Wipes all access from their card and modifies their assignment. if("PRG_terminate") if(!computer || !authenticated_card) return TRUE if(minor) - if(!(inserted_auth_card.trim?.type in job_templates)) + if(!(modified_id.trim?.type in job_templates)) to_chat(usr, span_notice("Software error: You do not have the necessary permissions to demote this card.")) return TRUE // Set the new assignment then remove the trim. - inserted_auth_card.assignment = is_centcom ? "Fired" : "Demoted" - SSid_access.remove_trim_from_card(inserted_auth_card) + modified_id.assignment = is_centcom ? "Fired" : "Demoted" + SSid_access.remove_trim_from_card(modified_id) playsound(computer, 'sound/machines/terminal/terminal_prompt_deny.ogg', 50, FALSE) return TRUE // Change ID card assigned name. if("PRG_edit") - if(!computer || !authenticated_card || !inserted_auth_card) + if(!computer || !authenticated_card || !modified_id) return TRUE - var/old_name = inserted_auth_card.registered_name + var/old_name = modified_id.registered_name // Sanitize the name first. We're not using the full sanitize_name proc as ID cards can have a wider variety of things on them that // would not pass as a formal character name, but would still be valid on an ID card created by a player. var/new_name = sanitize(params["name"]) if(!new_name) - inserted_auth_card.registered_name = null + modified_id.registered_name = null playsound(computer, SFX_TERMINAL_TYPE, 50, FALSE) - inserted_auth_card.update_label() + modified_id.update_label() // We had a name before and now we have no name, so this will unassign the card and we update the icon. if(old_name) - inserted_auth_card.update_icon() + modified_id.update_icon() return TRUE // However, we are going to reject bad names overall including names with invalid characters in them, while allowing numbers. @@ -182,63 +182,63 @@ to_chat(usr, span_notice("Software error: The ID card rejected the new name as it contains prohibited characters.")) return TRUE - inserted_auth_card.registered_name = new_name + modified_id.registered_name = new_name playsound(computer, SFX_TERMINAL_TYPE, 50, FALSE) - inserted_auth_card.update_label() + modified_id.update_label() // Card wasn't assigned before and now it is, so update the icon accordingly. if(!old_name) - inserted_auth_card.update_icon() + modified_id.update_icon() return TRUE // Change age if("PRG_age") - if(!computer || !authenticated_card || !inserted_auth_card) + if(!computer || !authenticated_card || !modified_id) return TRUE var/new_age = params["id_age"] if(!isnum(new_age)) - stack_trace("[key_name(usr)] ([usr]) attempted to set invalid age \[[new_age]\] to [inserted_auth_card]") + stack_trace("[key_name(usr)] ([usr]) attempted to set invalid age \[[new_age]\] to [modified_id]") return TRUE - inserted_auth_card.registered_age = new_age + modified_id.registered_age = new_age playsound(computer, SFX_TERMINAL_TYPE, 50, FALSE) return TRUE // Change assignment if("PRG_assign") - if(!computer || !authenticated_card || !inserted_auth_card) + if(!computer || !authenticated_card || !modified_id) return TRUE var/new_asignment = trim(sanitize(params["assignment"]), MAX_NAME_LEN) - inserted_auth_card.assignment = new_asignment + modified_id.assignment = new_asignment playsound(computer, SFX_TERMINAL_TYPE, 50, FALSE) - inserted_auth_card.update_label() + modified_id.update_label() return TRUE // Add/remove access. if("PRG_access") - if(!computer || !authenticated_card || !inserted_auth_card) + if(!computer || !authenticated_card || !modified_id) return TRUE playsound(computer, SFX_TERMINAL_TYPE, 50, FALSE) var/access_type = params["access_target"] var/try_wildcard = params["access_wildcard"] if(!(access_type in valid_access)) - stack_trace("[key_name(usr)] ([usr]) attempted to add invalid access \[[access_type]\] to [inserted_auth_card]") + stack_trace("[key_name(usr)] ([usr]) attempted to add invalid access \[[access_type]\] to [modified_id]") return TRUE - if(access_type in inserted_auth_card.access) - inserted_auth_card.remove_access(list(access_type)) - LOG_ID_ACCESS_CHANGE(user, inserted_auth_card, "removed [SSid_access.get_access_desc(access_type)]") + if(access_type in modified_id.access) + modified_id.remove_access(list(access_type)) + LOG_ID_ACCESS_CHANGE(user, modified_id, "removed [SSid_access.get_access_desc(access_type)]") return TRUE - if(!inserted_auth_card.add_access(list(access_type), try_wildcard)) + if(!modified_id.add_access(list(access_type), try_wildcard)) to_chat(usr, span_notice("ID error: ID card rejected your attempted access modification.")) - LOG_ID_ACCESS_CHANGE(user, inserted_auth_card, "failed to add [SSid_access.get_access_desc(access_type)][try_wildcard ? " with wildcard [try_wildcard]" : ""]") + LOG_ID_ACCESS_CHANGE(user, modified_id, "failed to add [SSid_access.get_access_desc(access_type)][try_wildcard ? " with wildcard [try_wildcard]" : ""]") return TRUE if(access_type in ACCESS_ALERT_ADMINS) - message_admins("[ADMIN_LOOKUPFLW(user)] just added [SSid_access.get_access_desc(access_type)] to an ID card [ADMIN_VV(inserted_auth_card)] [(inserted_auth_card.registered_name) ? "belonging to [inserted_auth_card.registered_name]." : "with no registered name."]") - LOG_ID_ACCESS_CHANGE(user, inserted_auth_card, "added [SSid_access.get_access_desc(access_type)]") + message_admins("[ADMIN_LOOKUPFLW(user)] just added [SSid_access.get_access_desc(access_type)] to an ID card [ADMIN_VV(modified_id)] [(modified_id.registered_name) ? "belonging to [modified_id.registered_name]." : "with no registered name."]") + LOG_ID_ACCESS_CHANGE(user, modified_id, "added [SSid_access.get_access_desc(access_type)]") return TRUE // Apply template to ID card. if("PRG_template") - if(!computer || !authenticated_card || !inserted_auth_card) + if(!computer || !authenticated_card || !modified_id) return TRUE playsound(computer, SFX_TERMINAL_TYPE, 50, FALSE) @@ -252,18 +252,36 @@ if(trim.assignment != template_name) continue - SSid_access.add_trim_access_to_card(inserted_auth_card, trim_path) + SSid_access.add_trim_access_to_card(modified_id, trim_path) return TRUE - stack_trace("[key_name(usr)] ([usr]) attempted to apply invalid template \[[template_name]\] to [inserted_auth_card]") + stack_trace("[key_name(usr)] ([usr]) attempted to apply invalid template \[[template_name]\] to [modified_id]") return TRUE + if("PRG_insert_main_id") + var/obj/item/card/id/main_id = user.get_active_held_item() + if(!isidcard(main_id)) + return TRUE + computer.insert_id(main_id, user) + return TRUE + if("PRG_remove_main_id") + if(computer?.stored_id) + computer.remove_id(user) + return TRUE + if("PRG_insert_alt_id") + var/obj/item/card/id/alt_id = user.get_active_held_item() + if(!isidcard(alt_id)) + to_chat(user, span_notice("You must hold an ID card to insert it into the secondary slot.")) + return TRUE + computer.insert_secondary_id(alt_id, user) + return TRUE + if("PRG_remove_alt_id") + if(computer?.alt_stored_id) + computer.remove_secondary_id(user) + return TRUE /datum/computer_file/program/card_mod/ui_static_data(mob/user) var/list/data = list() - data["station_name"] = station_name() - data["centcom_access"] = is_centcom - data["minor"] = target_dept || minor ? TRUE : FALSE var/list/regions = list() var/list/tgui_region_data = SSid_access.all_region_access_tgui @@ -277,11 +295,10 @@ data["regions"] = regions - - data["accessFlags"] = SSid_access.flags_by_access - data["wildcardFlags"] = SSid_access.wildcard_flags_by_wildcard - data["accessFlagNames"] = SSid_access.access_flag_string_by_flag - data["showBasic"] = TRUE + data["access_flags"] = SSid_access.flags_by_access + data["wildcard_flags"] = SSid_access.wildcard_flags_by_wildcard + data["access_flag_names"] = SSid_access.access_flag_string_by_flag + data["show_basic"] = TRUE data["templates"] = job_templates return data @@ -289,27 +306,31 @@ /datum/computer_file/program/card_mod/ui_data(mob/user) var/list/data = list() - var/obj/item/card/id/inserted_id = computer.computer_id_slot - data["authIDName"] = inserted_id ? inserted_id.name : "-----" - data["authenticatedUser"] = authenticated_card - - data["has_id"] = !!inserted_id - data["id_name"] = inserted_id ? inserted_id.name : "-----" - if(inserted_id) - data["id_rank"] = inserted_id.assignment ? inserted_id.assignment : "Unassigned" - data["id_owner"] = inserted_id.registered_name ? inserted_id.registered_name : "-----" - data["access_on_card"] = inserted_id.access - data["wildcardSlots"] = inserted_id.wildcard_slots - data["id_age"] = inserted_id.registered_age - - if(inserted_id.trim) - var/datum/id_trim/card_trim = inserted_id.trim - data["hasTrim"] = TRUE - data["trimAssignment"] = card_trim.assignment ? card_trim.assignment : "" - data["trimAccess"] = card_trim.access ? card_trim.access : list() - else - data["hasTrim"] = FALSE - data["trimAssignment"] = "" - data["trimAccess"] = list() + data["authed_user"] = authenticated_card + + var/obj/item/card/id/auth_id = computer.stored_id + var/obj/item/card/id/modified_id = computer.alt_stored_id + + data["auth_card"] = auth_id ? get_id_ui_data(auth_id) : null + data["modified_card"] = modified_id ? get_id_ui_data(modified_id) : null + data["is_holding_id"] = isidcard(user.get_active_held_item()) + + return data + +/datum/computer_file/program/card_mod/proc/get_id_ui_data(obj/item/card/id/card) + var/list/data = list() + + var/datum/id_trim/card_trim = card.trim + + data["id_name"] = card.name + data["id_rank"] = card.assignment || "Unassigned" + data["id_owner"] = card.registered_name || "-----" + data["access_on_card"] = card.access || list() + data["wildcard_slots"] = card.wildcard_slots || list() + data["id_age"] = card.registered_age + + data["has_trim"] = !!card_trim + data["trim_assignment"] = card_trim?.assignment || "" + data["trim_access"] = card_trim?.access || list() return data diff --git a/code/modules/modular_computers/file_system/programs/cargoship.dm b/code/modules/modular_computers/file_system/programs/cargoship.dm index 9df7bbd56d3b..089bc334db84 100644 --- a/code/modules/modular_computers/file_system/programs/cargoship.dm +++ b/code/modules/modular_computers/file_system/programs/cargoship.dm @@ -19,26 +19,26 @@ /datum/computer_file/program/shipping/ui_data(mob/user) var/list/data = list() - data["has_id_slot"] = !!computer.computer_id_slot + data["has_id_slot"] = !!computer.stored_id data["paperamt"] = "[computer.stored_paper] / [computer.max_paper]" - data["card_owner"] = computer.computer_id_slot || "No Card Inserted." + data["card_owner"] = computer.stored_id || "No Card Inserted." data["current_user"] = payments_acc ? payments_acc.account_holder : null data["barcode_split"] = cut_multiplier * 100 return data /datum/computer_file/program/shipping/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() - if(!computer.computer_id_slot) //We need an ID to successfully run + if(!computer.stored_id) //We need an ID to successfully run return FALSE switch(action) if("ejectid") - computer.RemoveID(usr) + computer.remove_id(usr) if("selectid") - if(!computer.computer_id_slot.registered_account) + if(!computer.stored_id.registered_account) playsound(get_turf(computer.ui_host()), 'sound/machines/buzz/buzz-sigh.ogg', 50, TRUE, -1) return TRUE - payments_acc = computer.computer_id_slot.registered_account + payments_acc = computer.stored_id.registered_account playsound(get_turf(computer.ui_host()), 'sound/machines/ping.ogg', 50, TRUE, -1) if("resetid") payments_acc = null diff --git a/code/modules/modular_computers/file_system/programs/civilian_bounty.dm b/code/modules/modular_computers/file_system/programs/civilian_bounty.dm new file mode 100644 index 000000000000..55bd6969af6d --- /dev/null +++ b/code/modules/modular_computers/file_system/programs/civilian_bounty.dm @@ -0,0 +1,110 @@ +///Everything within this file is an edited form from this file, stripping it of some various components because they are not needed for the PDA app: code/game/machinery/civilian_bounties.dm + +///Percentage of a civilian bounty the civilian will make. +#define CIV_BOUNTY_SPLIT 30 + +/datum/computer_file/program/civilianbounties + filename = "bountyapp" + filedesc = "Civilian Bounties" + downloader_category = PROGRAM_CATEGORY_SUPPLY + program_open_overlay = "request" + extended_desc = "Nanotrasen Civilian Bounty Requisition Network interface for displaying wanted items." + program_flags = PROGRAM_ON_NTNET_STORE | PROGRAM_REQUIRES_NTNET + can_run_on_flags = PROGRAM_LAPTOP | PROGRAM_PDA + size = 5 + tgui_id = "NtosCivCargoHoldTerminal" + program_icon = FA_ICON_BOXES_STACKED + var/status_report = "Ready for delivery." + var/points = 0 + +/datum/computer_file/program/civilianbounties/ui_data(mob/user) + var/list/data = list() + data["points"] = points + data["status_report"] = status_report + data["id_inserted"] = computer.stored_id + if(computer.stored_id?.registered_account) + if(computer.stored_id.registered_account.civilian_bounty) + data["id_bounty_info"] = computer.stored_id.registered_account.civilian_bounty.description + data["id_bounty_num"] = computer.stored_id.registered_account.bounty_num() + data["id_bounty_value"] = (computer.stored_id.registered_account.civilian_bounty.reward) * (CIV_BOUNTY_SPLIT/100) + if(computer.stored_id.registered_account.bounties) + data["picking"] = TRUE + data["id_bounty_names"] = list(computer.stored_id.registered_account.bounties[1].name, + computer.stored_id.registered_account.bounties[2].name, + computer.stored_id.registered_account.bounties[3].name) + data["id_bounty_infos"] = list(computer.stored_id.registered_account.bounties[1].description, + computer.stored_id.registered_account.bounties[2].description, + computer.stored_id.registered_account.bounties[3].description) + data["id_bounty_values"] = list(computer.stored_id.registered_account.bounties[1].reward * (CIV_BOUNTY_SPLIT/100), + computer.stored_id.registered_account.bounties[2].reward * (CIV_BOUNTY_SPLIT/100), + computer.stored_id.registered_account.bounties[3].reward * (CIV_BOUNTY_SPLIT/100)) + else + data["picking"] = FALSE + + return data + +/datum/computer_file/program/civilianbounties/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + var/mob/user = ui.user + switch(action) + if("pick") + pick_bounty(params["value"]) + if("bounty") + add_bounties(user, 0) + +///Here is where cargo bounties are added to the player's bank accounts, then adjusted and scaled into a civilian bounty. +/datum/computer_file/program/civilianbounties/proc/add_bounties(mob/user, cooldown_reduction = 0) + var/datum/bank_account/id_account = computer.stored_id?.registered_account + if(!id_account) + return + if((id_account.civilian_bounty || id_account.bounties) && !COOLDOWN_FINISHED(id_account, bounty_timer)) + var/time_left = DisplayTimeText(COOLDOWN_TIMELEFT(id_account, bounty_timer), round_seconds_to = 1) + computer.balloon_alert(user, "try again in [time_left]!") + return FALSE + if(!id_account.account_job) + computer.say("Requesting ID card has no job assignment registered!") + return FALSE + + var/list/datum/bounty/crumbs = generate_bounty_list(id_account.account_job.bounty_types) + COOLDOWN_START(id_account, bounty_timer, (5 MINUTES) - cooldown_reduction) + id_account.bounties = crumbs + +/** + * Proc that assigned a civilian bounty to an ID card, from the list of potential bounties that that bank account currently has available. + * Available choices are assigned during add_bounties, and one is locked in here. + * + * @param choice The index of the bounty in the list of bounties that the player can choose from. + */ +/datum/computer_file/program/civilianbounties/proc/pick_bounty(datum/bounty/choice) + var/datum/bank_account/id_account = computer.stored_id?.registered_account + if(!id_account?.bounties?[choice]) + playsound(computer.loc, 'sound/machines/synth/synth_no.ogg', 40 , TRUE) + return + id_account.civilian_bounty = id_account.bounties[choice] + id_account.bounties = null + SSblackbox.record_feedback("tally", "bounties_assigned", 1, id_account.civilian_bounty.type) + return id_account.civilian_bounty + +/** + * Generates a list of bounties for use with the civilian bounty pad, this is virtually identical to the stuff contained within: code/game/machinery/civilian_bounties.dm + * @param bounty_types the define taken from a job for selection of a random_bounty() proc. + * @param bounty_rolls the number of bounties to be selected from. + * @param assistant_failsafe Do we guarentee one assistant bounty per generated list? Used for non-assistant jobs to give an easier alternative to that job's default bounties. + */ +/datum/computer_file/program/civilianbounties/proc/generate_bounty_list(bounty_types, bounty_rolls = 3, assistant_failsafe = TRUE) + var/list/rolling_list = list() + if(assistant_failsafe) + rolling_list += random_bounty(CIV_JOB_BASIC) + while(bounty_rolls > 1) + var/datum/bounty/potential_bounty = random_bounty(bounty_types) + var/repeats_bool = FALSE + for(var/datum/iterator in rolling_list) + if(iterator.type == potential_bounty.type) + repeats_bool = TRUE + if(repeats_bool) + continue + rolling_list += potential_bounty + bounty_rolls -= 1 + return rolling_list + +#undef CIV_BOUNTY_SPLIT diff --git a/code/modules/modular_computers/file_system/programs/coupon.dm b/code/modules/modular_computers/file_system/programs/coupon.dm index b5d49a258d89..53bc2b6fe232 100644 --- a/code/modules/modular_computers/file_system/programs/coupon.dm +++ b/code/modules/modular_computers/file_system/programs/coupon.dm @@ -30,7 +30,7 @@ data["printed_coupons"] = list() data["redeemed_coupons"] = list() data["valid_id"] = FALSE - var/obj/item/card/id/user_id = computer.computer_id_slot + var/obj/item/card/id/user_id = computer.stored_id if(user_id?.registered_account.add_to_accounts) for(var/datum/coupon_code/coupon as anything in user_id.registered_account.redeemed_coupons) var/list/coupon_data = list( @@ -46,7 +46,7 @@ /datum/computer_file/program/coupon/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) . = ..() - var/obj/item/card/id/user_id = computer.computer_id_slot + var/obj/item/card/id/user_id = computer.stored_id if(!(user_id?.registered_account.add_to_accounts)) return TRUE switch(action) @@ -91,7 +91,7 @@ /datum/computer_file/program/coupon/tap(atom/tapped_atom, mob/living/user, list/modifiers) if(!istype(tapped_atom, /obj/machinery/photocopier)) return FALSE - var/obj/item/card/id/user_id = computer.computer_id_slot + var/obj/item/card/id/user_id = computer.stored_id if(!(user_id?.registered_account)) computer.balloon_alert(user, "no bank account found!") return TRUE diff --git a/code/modules/modular_computers/file_system/programs/dept_order.dm b/code/modules/modular_computers/file_system/programs/dept_order.dm index d8f3377114b1..e640d5ecb371 100644 --- a/code/modules/modular_computers/file_system/programs/dept_order.dm +++ b/code/modules/modular_computers/file_system/programs/dept_order.dm @@ -64,7 +64,7 @@ GLOBAL_VAR(department_cd_override) /datum/computer_file/program/department_order/ui_data(mob/user) var/list/data = list() data["no_link"] = !linked_department - data["id_inside"] = !!computer.computer_id_slot + data["id_inside"] = !!computer.stored_id data["time_left"] = department_cooldowns[linked_department] ? DisplayTimeText(max(department_cooldowns[linked_department] - world.time, 0), 1) : null data["can_override"] = !!department_order return data @@ -142,7 +142,7 @@ GLOBAL_VAR(department_cd_override) if(!isnull(linked_department)) return TRUE - var/new_dept_type = find_department_to_link(computer.computer_id_slot) + var/new_dept_type = find_department_to_link(computer.stored_id) if(isnull(new_dept_type)) computer.physical.balloon_alert(orderer, "no department found!") playsound(computer, 'sound/machines/buzz/buzz-sigh.ogg', 30, TRUE) @@ -155,7 +155,7 @@ GLOBAL_VAR(department_cd_override) if(isnull(linked_department)) return TRUE - var/obj/item/card/id/id_card = computer.computer_id_slot || orderer.get_idcard(hand_first = TRUE) + var/obj/item/card/id/id_card = computer.stored_id || orderer.get_idcard(hand_first = TRUE) var/list/id_card_access = id_card?.GetAccess() || list() if(length(use_access & id_card_access) <= 0) diff --git a/code/modules/modular_computers/file_system/programs/jobmanagement.dm b/code/modules/modular_computers/file_system/programs/jobmanagement.dm index fefb76c7f84e..5f499c0a4961 100644 --- a/code/modules/modular_computers/file_system/programs/jobmanagement.dm +++ b/code/modules/modular_computers/file_system/programs/jobmanagement.dm @@ -55,7 +55,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) /datum/computer_file/program/job_management/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) . = ..() - var/obj/item/card/id/user_id = computer.computer_id_slot + var/obj/item/card/id/user_id = computer.stored_id if(!user_id || !(ACCESS_CHANGE_IDS in user_id.access)) return TRUE @@ -107,7 +107,7 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0) var/list/data = list() var/authed = FALSE - var/obj/item/card/id/user_id = computer.computer_id_slot + var/obj/item/card/id/user_id = computer.stored_id if(user_id && (ACCESS_CHANGE_IDS in user_id.access)) authed = TRUE diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_data.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_data.dm index 0b1514d4c04e..b8f4129400e6 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_data.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_data.dm @@ -1,5 +1,9 @@ /// A list of all active and visible messengers GLOBAL_LIST_EMPTY_TYPED(pda_messengers, /datum/computer_file/program/messenger) +/// A list of all active and visible messengers +GLOBAL_LIST_EMPTY_TYPED(pda_messengers_by_job, /datum/computer_file/program/messenger) +/// A list of all active and visible messengers +GLOBAL_LIST_EMPTY_TYPED(pda_messengers_by_name, /datum/computer_file/program/messenger) /// Registers an NTMessenger instance to the list of pda_messengers. /proc/add_messenger(datum/computer_file/program/messenger/messenger) @@ -16,6 +20,9 @@ GLOBAL_LIST_EMPTY_TYPED(pda_messengers, /datum/computer_file/program/messenger) return GLOB.pda_messengers[messenger_ref] = messenger + BINARY_INSERT_PROC_COMPARE(messenger, GLOB.pda_messengers_by_job, /datum/computer_file/program/messenger, messenger, compare_job, COMPARE_KEY) + BINARY_INSERT_PROC_COMPARE(messenger, GLOB.pda_messengers_by_name, /datum/computer_file/program/messenger, messenger, compare_name, COMPARE_KEY) + /// Unregisters an NTMessenger instance from the pda_messengers table. /proc/remove_messenger(datum/computer_file/program/messenger/messenger) @@ -26,15 +33,10 @@ GLOBAL_LIST_EMPTY_TYPED(pda_messengers, /datum/computer_file/program/messenger) if(!(messenger_ref in GLOB.pda_messengers)) return - GLOB.pda_messengers.Remove(messenger_ref) - -/// Gets all messengers, sorted by their name -/proc/get_messengers_sorted_by_name() - return sortTim(GLOB.pda_messengers.Copy(), GLOBAL_PROC_REF(cmp_pdaname_asc), associative = TRUE) + GLOB.pda_messengers -= messenger_ref + GLOB.pda_messengers_by_job -= messenger + GLOB.pda_messengers_by_name -= messenger -/// Gets all messengers, sorted by their job -/proc/get_messengers_sorted_by_job() - return sortTim(GLOB.pda_messengers.Copy(), GLOBAL_PROC_REF(cmp_pdajob_asc), associative = TRUE) /// Get the display name of a messenger instance /proc/get_messenger_name(datum/computer_file/program/messenger/messenger) diff --git a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm index 3b72d576f251..203261419220 100644 --- a/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm +++ b/code/modules/modular_computers/file_system/programs/messenger/messenger_program.dm @@ -88,10 +88,9 @@ /datum/computer_file/program/messenger/proc/get_messengers() var/list/dictionary = list() - var/list/messengers_sorted = sort_by_job ? get_messengers_sorted_by_job() : get_messengers_sorted_by_name() + var/list/messengers_sorted = sort_by_job ? GLOB.pda_messengers_by_job : GLOB.pda_messengers_by_name - for(var/messenger_ref in messengers_sorted) - var/datum/computer_file/program/messenger/messenger = messengers_sorted[messenger_ref] + for(var/datum/computer_file/program/messenger/messenger as anything in messengers_sorted) if(!istype(messenger) || !istype(messenger.computer)) continue if(messenger == src || messenger.invisible) @@ -759,6 +758,12 @@ var/obj/item/modular_computer/pda/comp = computer comp.explode(usr, from_message_menu = TRUE) +/datum/computer_file/program/messenger/proc/compare_name(datum/computer_file/program/messenger/rhs) + return sorttext(rhs.computer?.saved_identification, computer?.saved_identification) + +/datum/computer_file/program/messenger/proc/compare_job(datum/computer_file/program/messenger/rhs) + return sorttext(rhs.computer?.saved_job, computer?.saved_job) + #undef PDA_MESSAGE_TIMESTAMP_FORMAT #undef MAX_PDA_MESSAGE_LEN #undef TEMP_IMAGE_PATH diff --git a/code/modules/modular_computers/file_system/programs/nt_pay.dm b/code/modules/modular_computers/file_system/programs/nt_pay.dm index 4e3fa5d3fb71..200b2cee3378 100644 --- a/code/modules/modular_computers/file_system/programs/nt_pay.dm +++ b/code/modules/modular_computers/file_system/programs/nt_pay.dm @@ -42,7 +42,7 @@ /datum/computer_file/program/nt_pay/ui_data(mob/user) var/list/data = list() - current_user = computer.computer_id_slot?.registered_account || null + current_user = computer.stored_id?.registered_account || null if(!current_user) data["name"] = null else @@ -127,14 +127,14 @@ var/obj/item/modular_computer/modpc = associated_program.computer RegisterSignal(modpc, COMSIG_MODULAR_COMPUTER_NT_PAY_RESULT, PROC_REF(on_payment_done)) RegisterSignal(modpc, COMSIG_MODULAR_COMPUTER_INSERTED_ID, PROC_REF(register_id)) - if(modpc.computer_id_slot) - register_id(inserted_id = modpc.computer_id_slot) + if(modpc.stored_id) + register_id(inserted_id = modpc.stored_id) /obj/item/circuit_component/mod_program/nt_pay/unregister_shell() var/obj/item/modular_computer/modpc = associated_program.computer UnregisterSignal(modpc, list(COMSIG_MODULAR_COMPUTER_NT_PAY_RESULT, COMSIG_MODULAR_COMPUTER_INSERTED_ID)) - if(modpc.computer_id_slot) - UnregisterSignal(modpc.computer_id_slot, list(COMSIG_ID_CARD_NTPAY_MONEY_RECEIVED, COMSIG_MOVABLE_MOVED)) + if(modpc.stored_id) + UnregisterSignal(modpc.stored_id, list(COMSIG_ID_CARD_NTPAY_MONEY_RECEIVED, COMSIG_MOVABLE_MOVED)) return ..() /obj/item/circuit_component/mod_program/nt_pay/proc/register_id(datum/source, obj/item/card/inserted_id, mob/user) diff --git a/code/modules/modular_computers/file_system/programs/portrait_printer.dm b/code/modules/modular_computers/file_system/programs/portrait_printer.dm index 5285bbc09bd1..224e83bb8fd3 100644 --- a/code/modules/modular_computers/file_system/programs/portrait_printer.dm +++ b/code/modules/modular_computers/file_system/programs/portrait_printer.dm @@ -4,19 +4,17 @@ /** - * ## portrait printer! + * ## the art gallery viewer/printer! * - * Program that lets the curator browse all of the portraits in the database - * They are free to print them out as they please. + * Program that lets the curator (or anyone really) browse all of the portraits in the database + * Stationary consoles can also print them out as they please as long as they've enough paper */ /datum/computer_file/program/portrait_printer filename = "PortraitPrinter" filedesc = "Marlowe Treeby's Art Galaxy" downloader_category = PROGRAM_CATEGORY_EQUIPMENT program_open_overlay = "dummy" - extended_desc = "This program connects to a Spinward Sector community art site for viewing and printing art." - download_access = list(ACCESS_LIBRARY) - can_run_on_flags = PROGRAM_CONSOLE + extended_desc = "This program connects to a Spinward Sector community art site for viewing and printing art, the latter only available on stationary consoles." program_flags = PROGRAM_ON_NTNET_STORE | PROGRAM_REQUIRES_NTNET size = 9 tgui_id = "NtosPortraitPrinter" @@ -31,6 +29,10 @@ /// Stores the result of the search, for later access. var/list/matching_paintings +/datum/computer_file/program/portrait_printer/ui_static_data(mob/user) + . = ..() + .["is_console"] = computer.hardware_flag & PROGRAM_CONSOLE + /datum/computer_file/program/portrait_printer/ui_data(mob/user) var/list/data = list() data["paintings"] = matching_paintings || SSpersistent_paintings.painting_ui_data() @@ -65,6 +67,8 @@ matching_paintings = SSpersistent_paintings.painting_ui_data(filter = search_mode, search_text = search_string) /datum/computer_file/program/portrait_printer/proc/print_painting(selected_painting) + if(!(computer.hardware_flag & PROGRAM_CONSOLE)) + return if(computer.stored_paper < CANVAS_PAPER_COST) to_chat(usr, span_notice("Printing error: Your printer needs at least [CANVAS_PAPER_COST] paper to print a canvas.")) return diff --git a/code/modules/modular_computers/file_system/programs/restock_tracker.dm b/code/modules/modular_computers/file_system/programs/restock_tracker.dm index 8f2174ce97bb..c1e64d178284 100644 --- a/code/modules/modular_computers/file_system/programs/restock_tracker.dm +++ b/code/modules/modular_computers/file_system/programs/restock_tracker.dm @@ -14,16 +14,17 @@ var/list/data = list() var/list/vending_list = list() var/id_increment = 1 - for(var/obj/machinery/vending/vendor as anything in GLOB.vending_machines_to_restock) - var/stock = vendor.total_loaded_stock() - var/max_stock = vendor.total_max_stock() - if((max_stock == 0 || (stock >= max_stock)) && vendor.credits_contained == 0) + for(var/obj/machinery/vending/vendor as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/vending)) + if(vendor.all_products_free) + continue + var/list/total_legal_stock = vendor.total_stock(contrabrand = FALSE) + if((!total_legal_stock[2] || (total_legal_stock[1] >= total_legal_stock[2])) && !vendor.credits_contained) continue vending_list += list(list( "name" = vendor.name, "location" = get_area_name(vendor), "credits" = vendor.credits_contained, - "percentage" = (stock / max_stock) * 100, + "percentage" = (total_legal_stock[1] / total_legal_stock[2]) * 100, "id" = id_increment, )) id_increment++ diff --git a/code/modules/modular_computers/file_system/programs/robocontrol.dm b/code/modules/modular_computers/file_system/programs/robocontrol.dm index 75c6bb545f28..1176ce92114a 100644 --- a/code/modules/modular_computers/file_system/programs/robocontrol.dm +++ b/code/modules/modular_computers/file_system/programs/robocontrol.dm @@ -28,14 +28,14 @@ var/list/mulelist = list() if(computer) - data["id_owner"] = computer.computer_id_slot || "" + data["id_owner"] = computer.stored_id || "" botcount = 0 for(var/mob/living/simple_animal/bot/simple_bot as anything in GLOB.bots_list) if(!is_valid_z_level(current_turf, get_turf(simple_bot)) || !(simple_bot.bot_mode_flags & BOT_MODE_REMOTE_ENABLED)) //Only non-emagged bots on the same Z-level are detected! continue - if(!simple_bot.allowed(user) && !simple_bot.check_access(computer.computer_id_slot)) // Only check Bots we can access + if(!simple_bot.allowed(user) && !simple_bot.check_access(computer.stored_id)) // Only check Bots we can access continue var/list/newbot = list( "name" = simple_bot.name, @@ -86,7 +86,7 @@ /datum/computer_file/program/robocontrol/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() var/mob/current_user = ui.user - var/obj/item/card/id/id_card = computer?.computer_id_slot + var/obj/item/card/id/id_card = computer?.stored_id var/static/list/standard_actions = list( "patroloff", @@ -116,15 +116,15 @@ if("summon") simple_bot.bot_control(action, current_user, id_card ? id_card.access : id_card?.GetAccess()) if("ejectcard") - if(!computer || !computer.computer_id_slot) + if(!computer || !computer.stored_id) return if(id_card) GLOB.manifest.modify(id_card.registered_name, id_card.assignment, id_card.get_trim_assignment()) - computer.RemoveID(usr) + computer.remove_id(usr) else playsound(get_turf(computer.ui_host()) , 'sound/machines/buzz/buzz-sigh.ogg', 25, FALSE) if("changedroneaccess") - if(!computer || !computer.computer_id_slot || !id_card) + if(!computer || !computer.stored_id || !id_card) to_chat(current_user, span_notice("No ID found, authorization failed.")) return if(isdrone(current_user)) diff --git a/code/modules/modular_computers/file_system/programs/techweb.dm b/code/modules/modular_computers/file_system/programs/techweb.dm index 2c32a65d1fe8..25bfd9a326b1 100644 --- a/code/modules/modular_computers/file_system/programs/techweb.dm +++ b/code/modules/modular_computers/file_system/programs/techweb.dm @@ -111,7 +111,7 @@ if(computer.obj_flags & EMAGGED) to_chat(usr, span_boldwarning("Security protocol error: Unable to access locking protocols.")) return TRUE - if(lock_access in computer?.computer_id_slot?.access) + if(lock_access in computer?.stored_id?.access) locked = !locked else to_chat(usr, span_boldwarning("Unauthorized Access. Please insert research ID card.")) diff --git a/code/modules/modular_computers/file_system/programs/wirecarp.dm b/code/modules/modular_computers/file_system/programs/wirecarp.dm index f5a0a374aac4..0c91bcfd6e75 100644 --- a/code/modules/modular_computers/file_system/programs/wirecarp.dm +++ b/code/modules/modular_computers/file_system/programs/wirecarp.dm @@ -56,8 +56,7 @@ data["ntnetlogs"] += list(list("entry" = i)) data["tablets"] = list() - for(var/messenger_ref in get_messengers_sorted_by_name()) - var/datum/computer_file/program/messenger/app = GLOB.pda_messengers[messenger_ref] + for(var/datum/computer_file/program/messenger/app as anything in GLOB.pda_messengers_by_name) var/obj/item/modular_computer/pda = app.computer var/list/tablet_data = list() diff --git a/code/modules/movespeed/modifiers/admin.dm b/code/modules/movespeed/modifiers/admin.dm new file mode 100644 index 000000000000..c2002dec2d3a --- /dev/null +++ b/code/modules/movespeed/modifiers/admin.dm @@ -0,0 +1,4 @@ +/datum/movespeed_modifier/admin_varedit + variable = TRUE + + diff --git a/code/modules/movespeed/modifiers/misc.dm b/code/modules/movespeed/modifiers/misc.dm deleted file mode 100644 index e3aba912966a..000000000000 --- a/code/modules/movespeed/modifiers/misc.dm +++ /dev/null @@ -1,6 +0,0 @@ -/datum/movespeed_modifier/admin_varedit - variable = TRUE - -/datum/movespeed_modifier/yellow_orb - multiplicative_slowdown = -0.65 - blacklisted_movetypes = (FLYING|FLOATING) diff --git a/code/modules/movespeed/modifiers/status_effects.dm b/code/modules/movespeed/modifiers/status_effects.dm index 26522d0793b9..951944944c55 100644 --- a/code/modules/movespeed/modifiers/status_effects.dm +++ b/code/modules/movespeed/modifiers/status_effects.dm @@ -63,6 +63,10 @@ /datum/movespeed_modifier/status_effect/guardian_shield multiplicative_slowdown = 1 +/datum/movespeed_modifier/status_effect/yellow_orb + multiplicative_slowdown = -0.65 + blacklisted_movetypes = (FLYING|FLOATING) + ///movespeed modifier that makes you go faster when wet and lying on the floor once past the fish organ set threshold. /datum/movespeed_modifier/fish_flopping blacklisted_movetypes = MOVETYPES_NOT_TOUCHING_GROUND diff --git a/code/modules/pai/actions.dm b/code/modules/pai/actions.dm index e067cca01e9a..7e1899cba2c4 100644 --- a/code/modules/pai/actions.dm +++ b/code/modules/pai/actions.dm @@ -3,7 +3,7 @@ button_icon = 'icons/mob/actions/actions_silicon.dmi' var/mob/living/silicon/pai/pai_owner -/datum/action/innate/pai/Trigger(trigger_flags) +/datum/action/innate/pai/Trigger(mob/clicker, trigger_flags) if(!ispAI(owner)) return FALSE pai_owner = owner @@ -14,7 +14,7 @@ background_icon_state = "bg_tech" overlay_icon_state = "bg_tech_border" -/datum/action/innate/pai/software/Trigger(trigger_flags) +/datum/action/innate/pai/software/Trigger(mob/clicker, trigger_flags) ..() pai_owner.ui_act() @@ -24,7 +24,7 @@ background_icon_state = "bg_tech" overlay_icon_state = "bg_tech_border" -/datum/action/innate/pai/shell/Trigger(trigger_flags) +/datum/action/innate/pai/shell/Trigger(mob/clicker, trigger_flags) ..() if(pai_owner.holoform) pai_owner.fold_in(0) @@ -37,7 +37,7 @@ background_icon_state = "bg_tech" overlay_icon_state = "bg_tech_border" -/datum/action/innate/pai/chassis/Trigger(trigger_flags) +/datum/action/innate/pai/chassis/Trigger(mob/clicker, trigger_flags) ..() pai_owner.choose_chassis() @@ -47,7 +47,7 @@ background_icon_state = "bg_tech" overlay_icon_state = "bg_tech_border" -/datum/action/innate/pai/rest/Trigger(trigger_flags) +/datum/action/innate/pai/rest/Trigger(mob/clicker, trigger_flags) ..() pai_owner.toggle_resting() @@ -58,7 +58,7 @@ background_icon_state = "bg_tech" overlay_icon_state = "bg_tech_border" -/datum/action/innate/pai/light/Trigger(trigger_flags) +/datum/action/innate/pai/light/Trigger(mob/clicker, trigger_flags) ..() pai_owner.toggle_integrated_light() @@ -68,7 +68,7 @@ background_icon_state = "bg_tech" overlay_icon_state = "bg_tech_border" -/datum/action/innate/pai/messenger/Trigger(trigger_flags) +/datum/action/innate/pai/messenger/Trigger(mob/clicker, trigger_flags) . = ..() var/obj/item/pai_card/pai_holder = owner.loc if(!istype(pai_holder.loc, /obj/item/modular_computer)) diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm index 467fa9f8663f..ecd0ca400296 100644 --- a/code/modules/paperwork/filingcabinet.dm +++ b/code/modules/paperwork/filingcabinet.dm @@ -27,7 +27,7 @@ desc = "A small cabinet with drawers. This one has wheels!" anchored = FALSE -/obj/structure/filingcabinet/filingcabinet //not changing the path to avoid unnecessary map issues, but please don't name stuff like this in the future -Pete +/obj/structure/filingcabinet/white icon_state = "tallcabinet" /obj/structure/filingcabinet/Initialize(mapload) diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index 606d8fbc3da8..8cea8cc15a41 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -4,7 +4,55 @@ /obj/item/paper/fluff/sop name = "paper- 'Standard Operating Procedure'" - default_raw_text = "Alert Levels:
\nBlue- Emergency
\n\t1. Caused by fire
\n\t2. Caused by manual interaction
\n\tAction:
\n\t\tClose all fire doors. These can only be opened by resetting the alarm
\nRed- Ejection/Self-Destruct
\n\t1. Caused by module operating computer.
\n\tAction:
\n\t\tAfter the specified time the module will eject completely.
\n
\nEngine Maintenance Instructions:
\n\tShut off ignition systems:
\n\tActivate internal power
\n\tActivate orbital balance matrix
\n\tRemove volatile liquids from area
\n\tWear a fire suit
\n
\n\tAfter
\n\t\tDecontaminate
\n\t\tVisit medical examiner
\n
\nToxin Laboratory Procedure:
\n\tWear a gas mask regardless
\n\tGet an oxygen tank.
\n\tActivate internal atmosphere
\n
\n\tAfter
\n\t\tDecontaminate
\n\t\tVisit medical examiner
\n
\nDisaster Procedure:
\n\tFire:
\n\t\tActivate sector fire alarm.
\n\t\tMove to a safe area.
\n\t\tGet a fire suit
\n\t\tAfter:
\n\t\t\tAssess Damage
\n\t\t\tRepair damages
\n\t\t\tIf needed, Evacuate
\n\tMeteor Shower:
\n\t\tActivate fire alarm
\n\t\tMove to the back of ship
\n\t\tAfter
\n\t\t\tRepair damage
\n\t\t\tIf needed, Evacuate
\n\tAccidental Reentry:
\n\t\tActivate fire alarms in front of ship.
\n\t\tMove volatile matter to a fire proof area!
\n\t\tGet a fire suit.
\n\t\tStay secure until an emergency ship arrives.
\n
\n\t\tIf ship does not arrive-
\n\t\t\tEvacuate to a nearby safe area!" + default_raw_text = {"Alert Levels: +
Blue- Emergency +  1. Caused by fire +  2. Caused by manual interaction +
 Action: +   Close all fire doors. These can only be opened by resetting the alarm. +
Red- Ejection/Self-Destruct +  1. Caused by module operating computer. +
 Action: +   After the specified time, the module will eject completely. +
Engine Maintenance Instructions: +  Shut off ignition systems: +  Activate internal power +  Activate orbital balance matrix +  Remove volatile liquids from area +  Wear a fire suit +
 After +   Decontaminate +   Visit medical examiner +
Toxin Laboratory Procedure: +  Wear a gas mask regardless +  Get an oxygen tank +  Activate internal atmosphere +
 After +   Decontaminate +   Visit medical examiner +
Disaster Procedure: +
 Fire: +   Activate sector fire alarm +   Move to a safe area +   Get a fire suit +
  After: +    Assess Damage +    Repair damages +    If needed, Evacuate +
 Meteor Shower: +   Activate fire alarm +   Move to the back of ship +
  After: +    Repair damage +    If needed, Evacuate +
 Accidental Reentry: +   Activate fire alarms in front of ship +   Move volatile matter to a fireproof area +   Get a fire suit +   Stay secure until an emergency ship arrives +
  If ship does not arrive- +    Evacuate to a nearby safe area + "} /obj/item/paper/fluff/shuttles/daniel default_raw_text = "i love daniel
daniel is my best friend

you are tearing me apart elise" @@ -15,7 +63,7 @@
It is truly saddening you must spend your time locked up in an awful prison on that dangerous station. I have spoken to your lawyer who will attempt to appeal to the judge so your sentence may hopefully be reduced.
Regardless, I just want you to understand that all of us out here still love you, and want to see you released safely some day! I know that prison can be a very vicious place, so please promise us you'll avoid getting into any fights or trouble, okay?
We all care for your safety deeply, and could not live with ourselves if you ended up getting hurt. We've scheduled a visit to see you, and with any luck, hopefully our request will be granted soon. -
Anyways, please do your best to make it by in that place, and never forget we'll be always here for you, no matter if we're separated. +
Anyway, please do your best to get by in that place, and never forget we'll be always here for you, no matter if we're separated.

Please stay safe,
-Love, Your Dearest"} @@ -25,7 +73,30 @@ /obj/item/paper/guides/jobs/hydroponics name = "paper- 'Greetings from Billy Bob'" - default_raw_text = "Hey fellow botanist!
\n
\nI didn't trust the station folk so I left
\na couple of weeks ago. But here's some
\ninstructions on how to operate things here.
\nYou can grow plants and each iteration they become
\nstronger, more potent and have better yield, if you
\nknow which ones to pick. Use your botanist's analyzer
\nfor that. You can turn harvested plants into seeds
\nat the seed extractor, and replant them for better stuff!
\nSometimes if the weed level gets high in the tray
\nmutations into different mushroom or weed species have
\nbeen witnessed. On the rare occasion even weeds mutate!
\n
\nEither way, have fun!
\n
\nBest regards,
\nBilly Bob Johnson.
\n
\nPS.
\nHere's a few tips:
\nIn nettles, potency = damage
\nIn amanitas, potency = deadliness + side effect
\nIn Liberty caps, potency = drug power + effect
\nIn chilies, potency = heat
\nNutrients keep mushrooms alive!
\nWater keeps weeds such as nettles alive!
\nAll other plants need both." + default_raw_text = {"Hey fellow botanist! +
I didn't trust the station folk so I left + a couple of weeks ago. But here's some + instructions on how to operate things here. + You can grow plants and each iteration they become + stronger, more potent and have better yield, if you + know which ones to pick. Use your botanist's analyzer + for that. You can turn harvested plants into seeds + at the seed extractor, and replant them for better stuff! + Sometimes if the weed level gets high in the tray + mutations into different mushroom or weed species have + been witnessed. On the rare occasion even weeds mutate! +
Either way, have fun! +
Best regards, + Billy Bob Johnson. +
PS. + Here's a few tips: + In nettles, potency = damage + In amanitas, potency = deadliness + side effects + In Liberty caps, potency = drug power + effects + In chilies, potency = heat + Nutrients keep mushrooms alive! + Water keeps weeds such as nettles alive! + All other plants need both."} /obj/item/paper/guides/jobs/holopad_hydro name = "paper- 'Holopad Notice'" @@ -47,7 +118,7 @@ * 20 bluespace crystals (or artificial) * 5 quadratic capacitors * 5 femto servos - * 1 glass sheet + * 2 glass sheets

2. Find suitable location

The BSA has a steep power requirement and functions best when it is on its own APC; keep other items in the room to a minimum. Ensure the BSA is placed at the edge of the station, so that it won't shoot through another portion of the station.. Make sure the room isn't easily accessible by someone who shouldn't be there.

3. Construction

@@ -57,18 +128,18 @@ 4. Place the machine frames in a horizontal line. 5. Wrench the three machine frames in place. 6. Install wires in the three machine frames. - 7. Install the bore in the front machine frame. this is your barrel. + 7. Install the bore in the front machine frame. This is your barrel. 8. Install the fusor in the center machine frame. 9. Install the generator in the back machine frame. 10. Examine the three machines and see what else they need, you can use a screwdriver to finish the assembly when parts are installed. 11. Construct a computer terminal in the same room as the BSA assembly, make sure they draw power from the same APC or ask the Chief Engineer to check the blueprints for you. - 12. Use a screwdriver to fasten the board, install wires and one glass sheet, use screwdriver again to turn on. + 12. Use a screwdriver to fasten the board, install wires and two glass sheets, use screwdriver again to turn on. 13. Use a multitool and interact with the generator, then the fusor. 14. Use a multitool again to interact with the bore, then the fusor. 15. Use the console to finalize construction, make sure there's enough empty space around the BSA for the assembly to commence. And with that, you are done! Commencing firing protocols requires the access of at least two heads, the console will be locked down until this requirement is met. - Always make sure you are certain before attempting to fire the BSA. + Always make sure you are certain before attempting to fire the BSA.
Keep this manual for your records, failure to do so will void your 2 day limited liability warranty from Nanotrasen."} @@ -87,19 +158,55 @@ /obj/item/paper/fluff/jobs/security/beepsky_mom name = "Note from Beepsky's Mom" - default_raw_text = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01101101 01101111 01101101 00101110" + default_raw_text = "01001001 00100000 01101000 01101111 01110000 01100101 00100000 01111001 01101111 01110101 00100000 01110011 01110100 01100001 01111001 00100000 01110011 01100001 01100110 01100101 00101110 00100000 01001100 01101111 01110110 01100101 00101100 00100000 01001101 01101111 01101101 00101110" /obj/item/paper/guides/jobs/security/courtroom name = "paper- 'A Crash Course in Legal SOP on SS13'" - default_raw_text = "Roles:
\nThe Detective is basically the investigator and prosecutor.
\nThe Staff Assistant can perform these functions with written authority from the Detective.
\nThe Captain/HoP/Warden is ct as the judicial authority.
\nThe Security Officers are responsible for executing warrants, security during trial, and prisoner transport.
\n
\nInvestigative Phase:
\nAfter the crime has been committed the Detective's job is to gather evidence and try to ascertain not only who did it but what happened. He must take special care to catalogue everything and don't leave anything out. Write out all the evidence on paper. Make sure you take an appropriate number of fingerprints. IF he must ask someone questions he has permission to confront them. If the person refuses he can ask a judicial authority to write a subpoena for questioning. If again he fails to respond then that person is to be jailed as insubordinate and obstructing justice. Said person will be released after he cooperates.
\n
\nONCE the FT has a clear idea as to who the criminal is he is to write an arrest warrant on the piece of paper. IT MUST LIST THE CHARGES. The FT is to then go to the judicial authority and explain a small version of his case. If the case is moderately acceptable the authority should sign it. Security must then execute said warrant.
\n
\nPre-Pre-Trial Phase:
\nNow a legal representative must be presented to the defendant if said defendant requests one. That person and the defendant are then to be given time to meet (in the jail IS ACCEPTABLE). The defendant and his lawyer are then to be given a copy of all the evidence that will be presented at trial (rewriting it all on paper is fine). THIS IS CALLED THE DISCOVERY PACK. With a few exceptions, THIS IS THE ONLY EVIDENCE BOTH SIDES MAY USE AT TRIAL. IF the prosecution will be seeking the death penalty it MUST be stated at this time. ALSO if the defense will be seeking not guilty by mental defect it must state this at this time to allow ample time for examination.
\nNow at this time each side is to compile a list of witnesses. By default, the defendant is on both lists regardless of anything else. Also the defense and prosecution can compile more evidence beforehand BUT in order for it to be used the evidence MUST also be given to the other side.\nThe defense has time to compile motions against some evidence here.
\nPossible Motions:
\n1. Invalidate Evidence- Something with the evidence is wrong and the evidence is to be thrown out. This includes irrelevance or corrupt security.
\n2. Free Movement- Basically the defendant is to be kept uncuffed before and during the trial.
\n3. Subpoena Witness- If the defense presents god reasons for needing a witness but said person fails to cooperate then a subpoena is issued.
\n4. Drop the Charges- Not enough evidence is there for a trial so the charges are to be dropped. The FT CAN RETRY but the judicial authority must carefully reexamine the new evidence.
\n5. Declare Incompetent- Basically the defendant is insane. Once this is granted a medical official is to examine the patient. If he is indeed insane he is to be placed under care of the medical staff until he is deemed competent to stand trial.
\n
\nALL SIDES MOVE TO A COURTROOM
\nPre-Trial Hearings:
\nA judicial authority and the 2 sides are to meet in the trial room. NO ONE ELSE BESIDES A SECURITY DETAIL IS TO BE PRESENT. The defense submits a plea. If the plea is guilty then proceed directly to sentencing phase. Now the sides each present their motions to the judicial authority. He rules on them. Each side can debate each motion. Then the judicial authority gets a list of crew members. He first gets a chance to look at them all and pick out acceptable and available jurors. Those jurors are then called over. Each side can ask a few questions and dismiss jurors they find too biased. HOWEVER before dismissal the judicial authority MUST agree to the reasoning.
\n
\nThe Trial:
\nThe trial has three phases.
\n1. Opening Arguments- Each side can give a short speech. They may not present ANY evidence.
\n2. Witness Calling/Evidence Presentation- The prosecution goes first and is able to call the witnesses on his approved list in any order. He can recall them if necessary. During the questioning the lawyer may use the evidence in the questions to help prove a point. After every witness the other side has a chance to cross-examine. After both sides are done questioning a witness the prosecution can present another or recall one (even the EXACT same one again!). After prosecution is done the defense can call witnesses. After the initial cases are presented both sides are free to call witnesses on either list.
\nFINALLY once both sides are done calling witnesses we move onto the next phase.
\n3. Closing Arguments- Same as opening.
\nThe jury then deliberates IN PRIVATE. THEY MUST ALL AGREE on a verdict. REMEMBER: They mix between some charges being guilty and others not guilty (IE if you supposedly killed someone with a gun and you unfortunately picked up a gun without authorization then you CAN be found not guilty of murder BUT guilty of possession of illegal weaponry.). Once they have agreed they present their verdict. If unable to reach a verdict and feel they will never they call a deadlocked jury and we restart at Pre-Trial phase with an entirely new set of jurors.
\n
\nSentencing Phase:
\nIf the death penalty was sought (you MUST have gone through a trial for death penalty) then skip to the second part.
\nI. Each side can present more evidence/witnesses in any order. There is NO ban on emotional aspects or anything. The prosecution is to submit a suggested penalty. After all the sides are done then the judicial authority is to give a sentence.
\nII. The jury stays and does the same thing as I. Their sole job is to determine if the death penalty is applicable. If NOT then the judge selects a sentence.
\n
\nTADA you're done. Security then executes the sentence and adds the applicable convictions to the person's record.
\n" + default_raw_text = {"Roles: + The Detective is basically the investigator and prosecutor. + The Staff Assistant can perform these functions with written authority from the Detective. + The Captain/HoP/Warden acts as the judicial authority. + The Security Officers are responsible for executing warrants, security during trial, and prisoner transport. +
Investigative Phase: + After the crime has been committed the Detective's job is to gather evidence and try to ascertain not only who did it but what happened. They must take special care to catalogue everything and must not leave anything out. They should write out all the evidence on paper, and make sure they take an appropriate number of fingerprints. If they must ask someone questions, they have permission to confront them. If the person refuses, they can ask a judicial authority to write a subpoena for questioning. If again they fail to respond, that person is to be jailed as insubordinate and obstructing justice. Said person will be released after they cooperate. +
Once the FT has a clear idea as to who the criminal is, they are to write an arrest warrant. IT MUST LIST THE CHARGES. The FT is to then go to the judicial authority and explain a small version of their case. If the case is moderately acceptable the authority should sign it. Security must then execute said warrant. +
Pre-Pre-Trial Phase: + A legal representative must be provided to the defendant if the defendant requests one. That person and the defendant are then to be given time to meet (in the brig IS ACCEPTABLE). The defendant and their lawyer are then to be given a copy of all the evidence that will be presented at trial (rewriting it all on paper is fine). THIS IS CALLED THE DISCOVERY PACK. With a few exceptions, THIS IS THE ONLY EVIDENCE BOTH SIDES MAY USE AT TRIAL. IF the prosecution will be seeking the death penalty it MUST be stated at this time. ALSO if the defense will be seeking not guilty by mental defect it must state this at this time to allow ample time for examination. + At this time, each side is to compile a list of witnesses. By default, the defendant is on both lists. The defense and prosecution can compile more evidence beforehand BUT in order for it to be admissible the evidence MUST also be given to the other side.\nThe defense has time to compile motions against some evidence here. + Possible Motions: + 1. Invalidate Evidence- Something with the evidence is wrong and the evidence is to be thrown out. This includes irrelevance or corrupt security. + 2. Free Movement- The defendant is to be kept unrestrained before and during the trial. + 3. Subpoena Witness- If the defense presents good reasons for needing a witness but said person fails to cooperate then a subpoena is issued. + 4. Drop the Charges- Not enough evidence is presented for a trial so the charges are to be dropped. The FT CAN RETRY but the judicial authority must carefully reexamine the new evidence. + 5. Declare Incompetent- The defendant is insane. Once this is granted a medical official is to examine the patient. If they are indeed insane, they are to be placed under care of the medical staff until they are deemed competent to stand trial. +
ALL PARTIES MOVE TO A COURTROOM + Pre-Trial Hearings: + A judicial authority and the 2 sides are to meet in the trial room. NO ONE ELSE BESIDES A SECURITY DETAIL IS TO BE PRESENT. The defense submits a plea. If the plea is guilty, then proceed directly to sentencing phase. Now the sides each present their motions to the judicial authority. They rule on them. Each side can debate each motion. Then the judicial authority gets a list of crew members. They first get a chance to look at them all and pick out acceptable and available jurors. Those jurors are then called over. Each side can ask a few questions and dismiss jurors they find too biased. HOWEVER before dismissal the judicial authority MUST agree to the reasoning. +
The Trial: + The trial has three phases. + 1. Opening Arguments- Each side can give a short speech. They may not present ANY evidence. + 2. Witness Calling/Evidence Presentation- The prosecution goes first and is able to call the witnesses on their approved list in any order. They can recall them if necessary. During the questioning, the lawyer may use evidence alongside questions to help prove a point. After each witness, the other side has a chance to cross-examine. After both sides are done questioning a witness, the prosecution can present another or recall one (even the EXACT same one again!). After prosecution is done, the defense can call witnesses. After the initial cases are presented, both sides are free to call witnesses on either list. + Once both sides are done calling witnesses, we move onto the next phase. + 3. Closing Arguments- Same as opening. + The jury then deliberates IN PRIVATE. THEY MUST ALL AGREE on a verdict. REMEMBER: They mix between some charges being guilty and others not guilty (i.e. if you supposedly killed someone with a gun, and you unfortunately picked up a gun without authorization, then you CAN be found not guilty of murder BUT guilty of possession of illegal weaponry.). Once they have agreed, they present their verdict. If the jury votes in majority that they will be unable to unanimously reach a verdict, they call a deadlocked jury and the case restarts at Pre-Trial phase with an entirely new set of jurors. +
Sentencing Phase: + If the death penalty was sought (you MUST have gone through a trial for death penalty) then skip to the second part. + I. Each side can present more evidence/witnesses in any order. The prosecution is to submit a suggested penalty. After all the sides are done, the judicial authority is to give a sentence. + II. The jury stays and does the same thing as I. Their sole job is to determine if the death penalty is applicable. If not, then the judge selects a sentence.
\n
\nThe trial is now complete. Security then executes the sentence and adds the applicable convictions to the person's record. + "} /obj/item/paper/guides/jobs/security/labor_camp name = "Labor Camp Operating Guide" - default_raw_text = "Labor Camp Facility Operation Guide

Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals.

To press a long-term prisoner into the service of the station, replace his equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner his ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of his crime.
A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long.
Once you have prepared the prisoner, place him in the secure northern half of the labor shuttle, and send him to the station. Once he meets his quota by feeding sheets to the stacker, he will be allowed to return to the station, and will be able to open the secure door to the prisoner release area.

In the case of dangerous prisoners, surveillance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine." + default_raw_text = {"Labor Camp Facility Operation Guide +
Hello there, proud operator of an NT-Sec Prisoner Rehabilitation Center. A solution to rising crime rates and falling productivity, these facilities are specifically designed for the safe, productive imprisonment of your most dangerous criminals. +
To press a long-term prisoner into the service of the station, replace their equipment with prisoners' garb at one of the prison lockers, as per normal operating procedure. Before assigning a prisoner their ID, insert the ID into a prisoner management console and assign the prisoner a quota, based on the severity of their crime. + A single sheet of most materials produces five points for the prisoner, and points can be expected to be produced at a rate of about 100 per minute, though punishments as severe as forced labor should be reserved for serious crimes of sentences not less than five minutes long. + Once you have prepared the prisoner, place them in the secure northern half of the labor shuttle, and send them to the station. Once they meet their quota by feeding sheets to the stacker, they will be allowed to return to the station, and will be able to open the secure door to the prisoner release area. +
In the case of dangerous prisoners, surveillance may be needed. To that end, there is a prisoner monitoring room on the mining station, equipped with a remote flasher and a lockdown button. The mine itself is patrolled by a securibot, so the nearby security records console can also be used to secure hostile prisoners on the mine."} /obj/item/paper/fluff/jobs/jobs name = "paper- 'Job Information'" - default_raw_text = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
\nThe data will be in the following form.
\nGenerally lower ranking positions come first in this list.
\n
\nJob Name general access>lab access-engine access-systems access (atmosphere control)
\n\tJob Description
\nJob Duties (in no particular order)
\nTips (where applicable)
\n
\nResearch Assistant 1>1-0-0
\n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
\n1. Assist the researchers.
\n2. Clean up the labs.
\n3. Prepare materials.
\n
\nStaff Assistant 2>0-0-0
\n\tThis position assists the security officer in his duties. The staff assistants should primarily br\npatrolling the ship waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
\n1. Patrol ship/Guard key areas
\n2. Assist security officer
\n3. Perform other security duties.
\n
\nTechnical Assistant 1>0-0-1
\n\tThis is yet another low level position. The technical assistant helps the engineer and the station\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
\n1. Assist Station technician and Engineers.
\n2. Perform general maintenance of station.
\n3. Prepare materials.
\n
\nMedical Assistant 1>1-0-0
\n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
\n1. Assist the medical personnel.
\n2. Update medical files.
\n3. Prepare materials for medical operations.
\n
\nResearch Technician 2>3-0-0
\n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
\n1. Inform superiors of research.
\n2. Perform research alongside of official researchers.
\n
\nDetective 3>2-0-0
\n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crime scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should store the evidence ly.
\n1. Perform crime-scene investigations/draw conclusions.
\n2. Store and catalogue evidence properly.
\n3. Testify to superiors/inquiries on findings.
\n
\nStation Technician 2>0-2-3
\n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
\n1. Maintain SS13 systems.
\n2. Repair equipment.
\n
\nAtmospheric Technician 3>0-0-4
\n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
\n1. Maintain atmosphere on SS13
\n2. Research atmospheres on the space station. (safely please!)
\n
\nEngineer 2>1-3-0
\n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
\n1. Upkeep the engine.
\n2. Prevent fires in the engine.
\n3. Maintain a safe orbit.
\n
\nMedical Researcher 2>5-0-0
\n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
\n1. Make sure the station is kept safe.
\n2. Research medical properties of materials studied of Space Station 13.
\n
\nScientist 2>5-0-0
\n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Plasma Technicians as plasma is the material they routinely handle.
\n1. Research plasma
\n2. Make sure all plasma is properly handled.
\n
\nMedical Doctor (Officer) 2>0-0-0
\n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
\n1. Heal wounded people.
\n2. Perform examinations of all personnel.
\n3. Monitor usage of medical equipment.
\n
\nSecurity Officer 3>0-0-0
\n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
\n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
\n1. Maintain order.
\n2. Assist others.
\n3. Repair structural problems.
\n
\nHead of Security 4>5-2-2
\n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
\n1. Oversee security.
\n2. Assign patrol duties.
\n3. Protect the station and staff.
\n
\nHead of Personnel 4>4-2-2
\n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
\n1. Assign duties.
\n2. Moderate personnel.
\n3. Moderate research.
\n
\nCaptain 5>5-5-5 (unrestricted station wide access)
\n\tThis is the highest position you can acquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
\n1. Assign all positions on SS13
\n2. Inspect the station for any problems.
\n3. Perform administrative duties.
\n" + default_raw_text = "Information on all formal jobs that can be assigned on Space Station 13 can be found on this document.
\nThe data will be in the following form.
\nGenerally lower ranking positions come first in this list.
\n
\nJob Name general access>lab access-engine access-systems access (atmosphere control)
\n\tJob Description
\nJob Duties (in no particular order)
\nTips (where applicable)
\n
\nResearch Assistant 1>1-0-0
\n\tThis is probably the lowest level position. Anyone who enters the space station after the initial job\nassignment will automatically receive this position. Access with this is restricted. Head of Personnel should\nappropriate the correct level of assistance.
\n1. Assist the researchers.
\n2. Clean up the labs.
\n3. Prepare materials.
\n
\nStaff Assistant 2>0-0-0
\n\tThis position assists the security officer in their duties. The staff assistants should primarily br\npatrolling the ship, waiting until they are needed to maintain ship safety.\n(Addendum: Updated/Elevated Security Protocols admit issuing of low level weapons to security personnel)
\n1. Patrol ship/Guard key areas
\n2. Assist security officer
\n3. Perform other security duties.
\n
\nTechnical Assistant 1>0-0-1
\n\tThis is yet another low level position. The technical assistant helps the engineer and the station\ntechnician with the upkeep and maintenance of the station. This job is very important because it usually\ngets to be a heavy workload on station technician and these helpers will alleviate that.
\n1. Assist Station technician and Engineers.
\n2. Perform general maintenance of station.
\n3. Prepare materials.
\n
\nMedical Assistant 1>1-0-0
\n\tThis is the fourth position yet it is slightly less common. This position doesn't have much power\noutside of the med bay. Consider this position like a nurse who helps to upkeep medical records and the\nmaterials (filling syringes and checking vitals)
\n1. Assist the medical personnel.
\n2. Update medical files.
\n3. Prepare materials for medical operations.
\n
\nResearch Technician 2>3-0-0
\n\tThis job is primarily a step up from research assistant. These people generally do not get their own lab\nbut are more hands on in the experimentation process. At this level they are permitted to work as consultants to\nthe others formally.
\n1. Inform superiors of research.
\n2. Perform research alongside of official researchers.
\n
\nDetective 3>2-0-0
\n\tThis job is in most cases slightly boring at best. Their sole duty is to\nperform investigations of crime scenes and analysis of the crime scene. This\nalleviates SOME of the burden from the security officer. This person's duty\nis to draw conclusions as to what happened and testify in court. Said person\nalso should store the evidence properly.
\n1. Perform crime-scene investigations/draw conclusions.
\n2. Store and catalogue evidence properly.
\n3. Testify to superiors/inquiries on findings.
\n
\nStation Technician 2>0-2-3
\n\tPeople assigned to this position must work to make sure all the systems aboard Space Station 13 are operable.\nThey should primarily work in the computer lab and repairing faulty equipment. They should work with the\natmospheric technician.
\n1. Maintain SS13 systems.
\n2. Repair equipment.
\n
\nAtmospheric Technician 3>0-0-4
\n\tThese people should primarily work in the atmospheric control center and lab. They have the very important\njob of maintaining the delicate atmosphere on SS13.
\n1. Maintain atmosphere on SS13.
\n2. Research atmospheres on the space station. (safely please!)
\n
\nEngineer 2>1-3-0
\n\tPeople working as this should generally have detailed knowledge as to how the propulsion systems on SS13\nwork. They are one of the few classes that have unrestricted access to the engine area.
\n1. Upkeep the engine.
\n2. Prevent fires in the engine.
\n3. Maintain a safe orbit.
\n
\nMedical Researcher 2>5-0-0
\n\tThis position may need a little clarification. Their duty is to make sure that all experiments are safe and\nto conduct experiments that may help to improve the station. They will be generally idle until a new laboratory\nis constructed.
\n1. Make sure the station is kept safe.
\n2. Research medical properties of materials studied of Space Station 13.
\n
\nScientist 2>5-0-0
\n\tThese people study the properties, particularly the toxic properties, of materials handled on SS13.\nTechnically they can also be called Plasma Technicians as plasma is the material they routinely handle.
\n1. Research plasma.
\n2. Make sure all plasma is properly handled.
\n
\nMedical Doctor (Officer) 2>0-0-0
\n\tPeople working this job should primarily stay in the medical area. They should make sure everyone goes to\nthe medical bay for treatment and examination. Also they should make sure that medical supplies are kept in\norder.
\n1. Heal wounded people.
\n2. Perform examinations of all personnel.
\n3. Monitor usage of medical equipment.
\n
\nSecurity Officer 3>0-0-0
\n\tThese people should attempt to keep the peace inside the station and make sure the station is kept safe. One\nside duty is to assist in repairing the station. They also work like general maintenance personnel. They are not\ngiven a weapon and must use their own resources.
\n(Addendum: Updated/Elevated Security Protocols admit issuing of weapons to security personnel)
\n1. Maintain order.
\n2. Assist others.
\n3. Repair structural problems.
\n
\nHead of Security 4>5-2-2
\n\tPeople assigned as Head of Security should issue orders to the security staff. They should\nalso carefully moderate the usage of all security equipment. All security matters should be reported to this person.
\n1. Oversee security.
\n2. Assign patrol duties.
\n3. Protect the station and staff.
\n
\nHead of Personnel 4>4-2-2
\n\tPeople assigned as head of personnel will find themselves moderating all actions done by personnel. \nAlso they have the ability to assign jobs and access levels.
\n1. Assign duties.
\n2. Moderate personnel.
\n3. Moderate research.
\n
\nCaptain 5>5-5-5 (unrestricted station wide access)
\n\tThis is the highest position you can acquire on Space Station 13. They are allowed anywhere inside the\nspace station and therefore should protect their ID card. They also have the ability to assign positions\nand access levels. They should not abuse their power.
\n1. Assign all positions on SS13.
\n2. Inspect the station for any problems.
\n3. Perform administrative duties.
\n" /obj/item/paper/fluff/jobs/mining/smelter_notice name = "paper- Smelting Operations Closed" @@ -111,7 +218,35 @@ /obj/item/paper/fluff/jobs/ordnance/chemical_info name = "paper- 'Chemical Information'" - default_raw_text = "Known Onboard Toxins:
\n\tGrade A Semi-Liquid Plasma:
\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.
\n\t\tA gas mask fails to filter plasma after 50 units.
\n\t\tWill attempt to diffuse like a gas.
\n\t\tFiltered by scrubbers.
\n\t\tThere is a bottled version which is very different
\n\t\t\tfrom the version found in canisters!
\n
\n\t\tWARNING: Highly Flammable. Keep away from heat sources
\n\t\texcept in an enclosed fire area!
\n\t\tWARNING: It is a crime to use this without authorization.
\nKnown Onboard Anti-Toxin:
\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.
\n\t\tBest if injected directly into bloodstream.
\n\t\tA full injection is in every regular Med-Kit.
\n\t\tSpecial toxin Kits hold around 7.
\n
\nKnown Onboard Chemicals (other):
\n\tRejuvenation T#001:
\n\t\tEven 1 unit injected directly into the bloodstream
\n\t\t\twill cure unconscious and sleep toxins.
\n\t\tIf administered to a dying patient it will prevent
\n\t\t\tfurther damage for about units*3 seconds.
\n\t\t\tit will not cure them or allow them to be cured.
\n\t\tIt can be administered to a non-dying patient
\n\t\t\tbut the chemicals disappear just as fast.
\n\tMorphine T#054:
\n\t\t5 units will induce precisely 1 minute of sleep.
\n\t\t\tThe effect are cumulative.
\n\t\tWARNING: It is a crime to use this without authorization" + default_raw_text = {"Known Onboard Toxins: +  Grade A Semi-Liquid Plasma: +   Highly poisonous. You cannot sustain concentrations above 15 units. +   A gas mask fails to filter plasma after 50 units. +   Will attempt to diffuse like a gas. +   Filtered by scrubbers. +   There is a bottled version which is very different +   from the version found in canisters! +   WARNING: Highly Flammable. Keep away from heat +   sources except in an enclosed fire area! +   WARNING: It is a crime to use this without authorization. + Known Onboard Anti-Toxin: +  Anti-Toxin Type 01P: Works against Grade A Plasma. +   Best if injected directly into bloodstream. +   A full injection is in every regular Med-Kit. +   Special toxin Kits hold around 7. +
Known Onboard Chemicals (other): +  Rejuvenation T#001: +   Even 1 unit injected directly into the bloodstream +    will cure unconscious and sleep toxins. +   If administered to a dying patient it will prevent +    further damage for about units*3 seconds. +    It will not cure them or allow them to be cured. +   It can be administered to a non-dying patient +   but the chemicals disappear just as fast. +  Morphine T#054: +   5 units will induce precisely 1 minute of sleep. +    The effects are cumulative. +   WARNING: It is a crime to use this without authorization."} /obj/item/paper/fluff/jobs/medical/hippocratic name = "paper- 'Hippocratic Oath'" @@ -376,7 +511,7 @@ be able to save yourself for a few seconds and keep fighting.

Secondly, the bomb can be activated posthumously. There is a small onboard, low-level AI built into the microbomb. Based on a series of arbitrary factors, the bomb can still be activated despite the presence of atropine by releasing a failsafe vial of monkey blood (notoriously volatile), the timing of which is determined by the onboard AI. -
The only factor is whether or not, and for give me for what I'm about to write, your 'animating spirit' still resides within your body to guide the AI and activate the bomb manually. +
The only factor is whether or not, and forgive me for what I'm about to write, your 'animating spirit' still resides within your body to guide the AI and activate the bomb manually.
Please, do not ask your fellow operatives what this means.

They'll probably say something absurd like 'your ghost needs to still be in your body to use the microbomb'. That's stupid, do not listen to these ridiculous assertions. It is likely Nanotrasen propaganda. diff --git a/code/modules/paperwork/paperwork.dm b/code/modules/paperwork/paperwork.dm index 552c392ff5a8..7f41d3009990 100644 --- a/code/modules/paperwork/paperwork.dm +++ b/code/modules/paperwork/paperwork.dm @@ -97,7 +97,7 @@ * Adds the stamp overlay and sets "stamped" to true * * Adds the stamp overlay to a piece of paperwork, and sets "stamped" to true. - * Handled as a proc so that an object may be maked as "stamped" even when a stamp isn't present (like the photocopier) + * Handled as a proc so that an object may be marked as "stamped" even when a stamp isn't present (like the photocopier) */ /obj/item/paperwork/proc/add_stamp() stamp_overlay = mutable_appearance('icons/obj/service/bureaucracy.dmi', stamp_icon) @@ -138,7 +138,7 @@ /obj/item/paperwork/security/Initialize(mapload) . = ..() - detailed_desc += span_info(" The stack of documents are related to a civil case being processed by a neighboring installation.") + detailed_desc += span_info(" The stack of documents is related to a civil case being processed by a neighboring installation.") detailed_desc += span_info(" The document requests that you review a conduct report submitted by the lawyer of the station.") detailed_desc += span_info(" The case file details accusations against the station's security department, including misconduct, harassment, an-") detailed_desc += span_info(" What a bunch of crap, the security team were clearly just doing what they had to. You should probably stamp this.") @@ -164,7 +164,7 @@ /obj/item/paperwork/medical/Initialize(mapload) . = ..() - detailed_desc += span_info(" The stack of documents appear to be a medical report from a nearby station, detailing the autopsy of an unknown xenofauna.") + detailed_desc += span_info(" The stack of documents appears to be a medical report from a nearby station, detailing the autopsy of an unknown xenofauna.") detailed_desc += span_info(" Skipping to the end of the report reveals that the specimen was the station bartender's pet monkey.") detailed_desc += span_info(" The specimen had been exposed to radiation during an 'unrelated incident with the engine', leading to its mutated form.") detailed_desc += span_info(" Regardless, the autopsy results look like they could be useful. You should probably stamp this.") @@ -255,7 +255,7 @@ /obj/item/paperwork/ancient/Initialize(mapload) . = ..() - detailed_desc = span_notice("It's impossible to really tell how old these are or what they're for, but Central Command might appreciate them anyways.") + detailed_desc = span_notice("It's impossible to really tell how old these are or what they're for, but Central Command might appreciate them anyway.") var/static/list/paperwork_to_use //Make the ancient paperwork function like one of the main types if(!paperwork_to_use) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 9e9f635fe501..c55c038de299 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -331,11 +331,12 @@ return /obj/item/camera/proc/after_picture(mob/user, datum/picture/picture) + if(!silent) + playsound(loc, SFX_POLAROID, 75, TRUE, -3) + if(print_picture_on_snap) printpicture(user, picture) - if(!silent) - playsound(loc, SFX_POLAROID, 75, TRUE, -3) /obj/item/camera/proc/printpicture(mob/user, datum/picture/picture) //Normal camera proc for creating photos pictures_left-- diff --git a/code/modules/plumbing/plumbers/_plumb_reagents.dm b/code/modules/plumbing/plumbers/_plumb_reagents.dm index 1f9a2e5e9612..4e18a0fbca54 100644 --- a/code/modules/plumbing/plumbers/_plumb_reagents.dm +++ b/code/modules/plumbing/plumbers/_plumb_reagents.dm @@ -27,7 +27,8 @@ remove_blacklisted = FALSE, //unused for plumbing, we don't care what reagents are inside us methods = LINEAR, //default round robin technique for transferring reagents show_message = TRUE, //unused for plumbing, used for logging only - ignore_stomach = FALSE //unused for plumbing, reagents flow only between machines & is not injected to mobs at any point in time + ignore_stomach = FALSE, //unused for plumbing, reagents flow only between machines & is not injected to mobs at any point in time + copy_only = FALSE //unused ) if(QDELETED(target) || !total_volume) return FALSE @@ -85,8 +86,6 @@ transfer_amount = reagent.volume * part if(reagent.intercept_reagents_transfer(target_holder, amount)) - update_total() - target_holder.update_total() continue transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE) //we only handle reaction after every reagent has been transferred. @@ -156,7 +155,8 @@ remove_blacklisted = FALSE, methods = LINEAR, show_message = TRUE, - ignore_stomach = FALSE + ignore_stomach = FALSE, + copy_only = FALSE ) var/obj/machinery/plumbing/reaction_chamber/reactor = my_atom var/list/datum/reagent/catalysts = reactor.catalysts @@ -233,8 +233,6 @@ transfer_amount = working_volume * part if(reagent.intercept_reagents_transfer(target_holder, amount)) - update_total() - target_holder.update_total() continue transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, copy_data(reagent), chem_temp, reagent.purity, reagent.ph, no_react = TRUE) //we only handle reaction after every reagent has been transferred. diff --git a/code/modules/power/apc/apc_contextual_tips.dm b/code/modules/power/apc/apc_contextual_tips.dm index ad109cd397a0..5d6a661e03fd 100644 --- a/code/modules/power/apc/apc_contextual_tips.dm +++ b/code/modules/power/apc/apc_contextual_tips.dm @@ -20,7 +20,7 @@ context[SCREENTIP_CONTEXT_LMB] = "Open the cover" else if ((opened == APC_COVER_OPENED && has_electronics == APC_ELECTRONICS_SECURED) && !(machine_stat & BROKEN)) context[SCREENTIP_CONTEXT_LMB] = "Close and lock" - else if (machine_stat & BROKEN|(machine_stat & EMAGGED| malfhack)) + else if (malfhack || (machine_stat & (BROKEN|EMAGGED))) context[SCREENTIP_CONTEXT_LMB] = "Remove damaged board" else context[SCREENTIP_CONTEXT_LMB] = "Remove board" diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm index 4c9c8cc7bea2..3491c23e2c07 100644 --- a/code/modules/power/lighting/light.dm +++ b/code/modules/power/lighting/light.dm @@ -180,6 +180,9 @@ var/area/local_area = get_room_area() + if(flickering) + . += mutable_appearance(overlay_icon, "[base_state]_flickering") + return if(low_power_mode || major_emergency || (local_area?.fire)) . += mutable_appearance(overlay_icon, "[base_state]_emergency") return @@ -225,7 +228,11 @@ if(reagents) START_PROCESSING(SSmachines, src) var/area/local_area = get_room_area() - if (local_area?.fire) + if (flickering) + brightness_set = brightness * bulb_low_power_brightness_mul + power_set = bulb_low_power_pow_mul + color_set = nightshift_light_color + else if (local_area?.fire) color_set = fire_colour power_set = fire_power brightness_set = fire_brightness @@ -431,7 +438,7 @@ /obj/machinery/light/attacked_by(obj/item/attacking_object, mob/living/user, list/modifiers, list/attack_modifiers) . = ..() - if(!.) + if(. <= 0) return if(status != LIGHT_BROKEN && status != LIGHT_EMPTY) return @@ -500,25 +507,36 @@ ) return TRUE -/obj/machinery/light/proc/flicker(amount = rand(10, 20)) +/obj/machinery/light/proc/flicker(amount = 1) set waitfor = FALSE - if(flickering) + if(flickering || !on || status != LIGHT_OK) return - flickering = TRUE - if(on && status == LIGHT_OK) - . = TRUE //did we actually flicker? Send this now because we expect immediate response, before sleeping. - for(var/i in 1 to amount) - if(status != LIGHT_OK || !has_power()) - break - on = !on - update(FALSE) - sleep(rand(5, 15)) - if(has_power()) - on = (status == LIGHT_OK) - else - on = FALSE + + . = TRUE // did we actually flicker? Send this now because we expect immediate response, before sleeping. + set_light( + l_range = brightness * bulb_low_power_brightness_mul, + l_power = bulb_low_power_pow_mul, + l_color = nightshift_light_color, + ) + cut_overlays(src) + stoplag(0.7 SECONDS) + if(prob(30)) + do_sparks(number = 2, cardinal_only = TRUE, source = src) + + for(var/i in 1 to amount) + if(status != LIGHT_OK || !has_power()) + break + flickering = !flickering update(FALSE) + stoplag(pick(list(2 SECONDS, 4 SECONDS, 6 SECONDS))) + + if(has_power()) + on = (status == LIGHT_OK) + else + on = FALSE + flickering = FALSE + update(FALSE) // ai attack - make lights flicker, because why not diff --git a/code/modules/power/power_store.dm b/code/modules/power/power_store.dm index 9dd60708a37e..c03b5b9590c6 100644 --- a/code/modules/power/power_store.dm +++ b/code/modules/power/power_store.dm @@ -267,13 +267,14 @@ return SHAME playsound(user, 'sound/effects/sparks/sparks1.ogg', charge / maxcharge) var/damage = charge / (1 KILO JOULES) + var/discharged_energy = charge user.electrocute_act(damage, src, 1, SHOCK_IGNORE_IMMUNITY|SHOCK_DELAY_STUN|SHOCK_NOGLOVES) charge = 0 update_appearance() if(user.stat != DEAD) to_chat(user, span_suicide("There's not enough charge in [src] to kill you!")) return SHAME - addtimer(CALLBACK(src, PROC_REF(gib_user), user, charge), 3 SECONDS) + addtimer(CALLBACK(src, PROC_REF(gib_user), user, discharged_energy), 3 SECONDS) return MANUAL_SUICIDE /obj/item/stock_parts/power_store/proc/gib_user(mob/living/user, discharged_energy) diff --git a/code/modules/power/powernet.dm b/code/modules/power/powernet.dm index 810b01533d64..852ae3a2008b 100644 --- a/code/modules/power/powernet.dm +++ b/code/modules/power/powernet.dm @@ -106,30 +106,26 @@ * * flicker_source - The center of the flicker. If null the whole powernet will flicker * * falloff_distance - Only relevant if you passed a source. Areas beyond this distance will be less and less likely to flicker. */ -/datum/powernet/proc/propagate_light_flicker(atom/flicker_source, falloff_distance = 64) +/datum/powernet/proc/propagate_light_flicker(atom/flicker_source, falloff_distance = 32) if(flickering || !length(nodes)) return flickering = TRUE - var/most_flickers = 1 for(var/obj/machinery/power/terminal/terminal in nodes) if(!istype(terminal.master, /obj/machinery/power/apc)) continue - if(isnull(flicker_source)) - if(!prob(95)) - continue - else - var/flicker_prob = 95 + (3 * (falloff_distance - get_dist(flicker_source, terminal))) - if(!prob(min(95, flicker_prob))) - continue + var/flicker_prob = 85 + if(!isnull(flicker_source)) + flicker_prob = 85 + min(3 * (falloff_distance - get_dist(flicker_source, terminal)), 0) + + if(!prob(flicker_prob)) + continue - var/flicker_count = rand(1, 3) - most_flickers = max(most_flickers, flicker_count) var/obj/machinery/power/apc/apc = terminal.master for(var/obj/machinery/light/light as anything in apc.get_lights()) - light.flicker(flicker_count) - CHECK_TICK + light.flicker(amount = 1) + CHECK_TICK // don't let another flicker propagation until our slowest area is done (with some added leeway) - addtimer(VARSET_CALLBACK(src, flickering, FALSE), most_flickers * 2 SECONDS) + addtimer(VARSET_CALLBACK(src, flickering, FALSE), 9 SECONDS) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 522ee7c2697d..4aa0e5a867ac 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -27,6 +27,10 @@ var/maximum_fire_delay = 10 SECONDS ///Min delay before firing var/minimum_fire_delay = 2 SECONDS + ///Modifier to the preceeding two numbers + var/fire_rate_mod = 1 + ///Deactivates the "pause every 3 shots" system + var/no_shot_counter = FALSE ///When was the last shot var/last_shot = 0 ///Number of shots made (gets reset every few shots) @@ -57,6 +61,8 @@ var/charge = 0 ///stores the direction and orientation of the last projectile var/last_projectile_params + //the disk in the gun + var/obj/item/emitter_disk/diskie /obj/machinery/power/emitter/Initialize(mapload) . = ..() @@ -125,7 +131,7 @@ else if(!powered) . += span_notice("Its status display is glowing faintly.") else - . += span_notice("Its status display reads: Emitting one beam between [DisplayTimeText(minimum_fire_delay)] and [DisplayTimeText(maximum_fire_delay)].") + . += span_notice("Its status display reads: Emitting one beam between [DisplayTimeText(minimum_fire_delay * fire_rate_mod)] and [DisplayTimeText(maximum_fire_delay * fire_rate_mod)].") . += span_notice("Power consumption at [display_power(active_power_usage, convert = FALSE)].") /obj/machinery/power/emitter/should_have_node() @@ -246,11 +252,11 @@ projectile.fire(dir2angle(dir)) if(!manual) last_shot = world.time - if(shot_number < 3) - fire_delay = 20 + if(shot_number < 3 || no_shot_counter) + fire_delay = 20 * fire_rate_mod shot_number ++ else - fire_delay = rand(minimum_fire_delay,maximum_fire_delay) + fire_delay = rand(minimum_fire_delay,maximum_fire_delay) * fire_rate_mod shot_number = 0 return projectile @@ -311,6 +317,8 @@ /obj/machinery/power/emitter/crowbar_act(mob/living/user, obj/item/item) if(panel_open && gun) return remove_gun(user) + if(panel_open && diskie) + return remove_disk(user) default_deconstruction_crowbar(item) return TRUE @@ -343,8 +351,30 @@ wires.interact(user) return if(panel_open && !gun && istype(item,/obj/item/gun/energy)) + if(diskie) + to_chat(user, span_warning("Remove the Diode Disk before inserting a gun.")) + return if(integrate(item,user)) return + if(panel_open && !gun && istype(item,/obj/item/emitter_disk)) + var/obj/item/emitter_disk/config_disk = item + if(!user.transferItemToLoc(config_disk, src)) + balloon_alert(user, "stuck in hand!") + return + if(diskie) + user.put_in_hands(diskie) + balloon_alert(user, "disks swapped!") + else + balloon_alert(user, "disk inserted") + diskie = config_disk + projectile_type = diskie.stored_proj + projectile_sound = diskie.stored_sound + fire_rate_mod = diskie.fire_rate_mod + no_shot_counter = diskie.no_shot_counter + playsound(src, 'sound/machines/card_slide.ogg', 50) + to_chat(user, span_notice("You update the [src]'s diode configuration with the [config_disk].")) + if(diskie.consumable) + qdel(diskie) return ..() @@ -371,6 +401,19 @@ set_projectile() return TRUE +/obj/machinery/power/emitter/proc/remove_disk(mob/user) + if(!diskie) + return + if(diskie.consumed_on_removal) + qdel(diskie) + else + user.put_in_hands(diskie) + diskie = null + playsound(src, 'sound/machines/card_slide.ogg', 50, TRUE) + set_projectile() + return TRUE + + /obj/machinery/power/emitter/proc/set_projectile() if(LAZYLEN(gun_properties)) if(mode || !gun_properties["lethal_projectile"]) @@ -382,6 +425,8 @@ return projectile_type = initial(projectile_type) projectile_sound = initial(projectile_sound) + fire_rate_mod = initial(fire_rate_mod) + no_shot_counter = initial(no_shot_counter) /obj/machinery/power/emitter/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) @@ -567,3 +612,58 @@ req_access = list("science") welded = TRUE use_power = NO_POWER_USE + +/obj/item/emitter_disk + name = "\improper Diode Disk: Debugger" + desc = "This disk can be used on an emitter with an open panel to reset its projectile. Unless this was handed to you by an admin, you should report this on github." + icon = 'icons/obj/devices/circuitry_n_data.dmi' + icon_state = "datadisk6" + var/stored_proj = /obj/projectile/beam/emitter/hitscan + var/stored_sound = 'sound/items/weapons/emitter.ogg' + var/consumed_on_removal = TRUE + var/consumable = TRUE + var/fire_rate_mod = 1 + var/no_shot_counter = FALSE + +/obj/item/emitter_disk/stamina + name = "\improper Diode Disk: Electrodisruptive" + desc = "This disk can be used on an emitter with an open panel to make it shoot lasers which will increase the integrity of supermatter crystals and exhaust living creatures. The disk will be consumed in the process." + stored_proj = /obj/projectile/beam/emitter/hitscan/bluelens + consumed_on_removal = FALSE + consumable = FALSE + +/obj/item/emitter_disk/healing + name = "\improper Diode Disk: Bioregenerative" + desc = "This disk can be installed into an emitter with an open panel to make it shoot lasers which will heal the physical damages of living creatures." + stored_proj = /obj/projectile/beam/emitter/hitscan/bioregen + consumed_on_removal = FALSE + consumable = FALSE + +/obj/item/emitter_disk/incendiary + name = "\improper Diode Disk: Conflagratory" + desc = "This disk can be used on an emitter with an open panel to make it shoot lasers which will set living creatures ablaze." + stored_proj = /obj/projectile/beam/emitter/hitscan/incend + consumed_on_removal = FALSE + consumable = FALSE + +/obj/item/emitter_disk/sanity + name = "\improper Diode Disk: Psychosiphoning" + desc = "This disk can be used on an emitter with an open panel to make it shoot lasers which will depress living creatures and calm supermatter crystals." + stored_proj = /obj/projectile/beam/emitter/hitscan/psy + consumed_on_removal = FALSE + consumable = FALSE + +/obj/item/emitter_disk/magnetic + name = "\improper Diode Disk: Magnetogenerative" + desc = "This disk can be used on an emitter with an open panel to make it shoot lasers which will attract nearby objects." + stored_proj = /obj/projectile/beam/emitter/hitscan/magnetic + consumed_on_removal = FALSE + consumable = FALSE + +/obj/item/emitter_disk/blast + name = "\improper Diode Disk: Hyperconcussive" + desc = "This disk, loaded with proprietary syndicate firmware, can be used on an emitter with an open panel to make it shoot beams of concussive force which will cause small explosions." + stored_proj = /obj/projectile/beam/emitter/hitscan/blast + consumed_on_removal = FALSE + consumable = FALSE + fire_rate_mod = 2 diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 09e380aca17f..2e2d90580878 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -146,8 +146,11 @@ log_admin("[key_name(usr)] has triggered the Nar'Sie roundender.") start_ending_the_round() -/obj/narsie/attack_ghost(mob/user) - make_new_construct(/mob/living/basic/construct/harvester, user, cultoverride = TRUE, loc_override = loc) +/obj/narsie/attack_ghost(mob/dead/observer/user) + if(is_banned_from(user.ckey, ROLE_CULTIST)) + return + if(tgui_alert(user, "Do you wish to become an occult harvester?", "Become Harvester?", list("Yes", "No"), timeout = 10 SECONDS) == "Yes") + make_new_construct(/mob/living/basic/construct/harvester, user, cultoverride = TRUE, loc_override = loc, ghost_activated = TRUE) /obj/narsie/process() var/datum/component/singularity/singularity_component = singularity.resolve() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 73f691946c7d..db5c1d0ac584 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -366,6 +366,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) update_appearance() delamination_strategy.lights(src) delamination_strategy.filters(src) + absorption_ratio = clamp(absorption_ratio - 0.05, 0.15, 1) return TRUE // SupermatterMonitor UI for ghosts only. Inherited attack_ghost will call this. diff --git a/code/modules/power/supermatter/supermatter_extra_effects.dm b/code/modules/power/supermatter/supermatter_extra_effects.dm index fe3f69ef60b9..0724667300fb 100644 --- a/code/modules/power/supermatter/supermatter_extra_effects.dm +++ b/code/modules/power/supermatter/supermatter_extra_effects.dm @@ -165,7 +165,7 @@ return switch(type) if(FLUX_ANOMALY) - var/explosive = has_changed_lifespan ? FLUX_NO_EXPLOSION : FLUX_LOW_EXPLOSIVE + var/explosive = has_changed_lifespan ? FLUX_NO_EMP : FLUX_LIGHT_EMP new /obj/effect/anomaly/flux(local_turf, has_changed_lifespan ? rand(25 SECONDS, 35 SECONDS) : null, FALSE, explosive) if(GRAVITATIONAL_ANOMALY) new /obj/effect/anomaly/grav(local_turf, has_changed_lifespan ? rand(20 SECONDS, 30 SECONDS) : null, FALSE) diff --git a/code/modules/power/supermatter/supermatter_hit_procs.dm b/code/modules/power/supermatter/supermatter_hit_procs.dm index 1f929ba0ed27..056081bda7e8 100644 --- a/code/modules/power/supermatter/supermatter_hit_procs.dm +++ b/code/modules/power/supermatter/supermatter_hit_procs.dm @@ -24,7 +24,6 @@ if(projectile.armor_flag != BULLET || kiss_power) if(kiss_power) psy_coeff = 1 - external_power_immediate += projectile.damage * bullet_energy + kiss_power log_activation(who = projectile.firer, how = projectile.fired_from) else external_damage_immediate += projectile.damage * bullet_energy * 0.1 @@ -34,6 +33,17 @@ if(damage_to_be > danger_point) visible_message(span_notice("[src] compresses under stress, resisting further impacts!")) playsound(src, 'sound/effects/supermatter.ogg', 50, TRUE) + if(istype(projectile, /obj/projectile/beam/emitter/hitscan)) + var/obj/projectile/beam/emitter/hitscan/mahlaser = projectile + if(mahlaser?.integrity_heal) + damage = max(0, damage - mahlaser?.integrity_heal) + if(mahlaser?.energy_reduction) + internal_energy = max(0, internal_energy - mahlaser?.energy_reduction) + if(mahlaser?.psi_change) + psy_coeff = clamp(psy_coeff + mahlaser?.psi_change, 0, 1) + external_power_immediate += projectile.damage * bullet_energy + kiss_power + if(istype(projectile, /obj/projectile/beam/emitter/hitscan/magnetic)) + absorption_ratio = clamp(absorption_ratio + 0.05, 0.15, 1) qdel(projectile) return COMPONENT_BULLET_BLOCKED diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 86650123f13c..e0cc6e089204 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -147,7 +147,7 @@ continue if (boolets > 0) box.update_appearance() - to_chat(user, span_notice("You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.")) + to_chat(user, span_notice("You collect [boolets] [box.casing_phrasing]\s. [box] now contains [box.stored_ammo.len] [box.casing_phrasing]\s.")) else to_chat(user, span_warning("You fail to collect anything!")) else diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 3e0e18d58bd2..2ec850950b03 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -2,7 +2,7 @@ /obj/item/ammo_casing/strilka310 name = ".310 Strilka bullet casing" - desc = "A .310 Strilka bullet casing. Casing is a bit of a fib, there is no case, it's just a block of red powder." + desc = "A .310 Strilka bullet casing. Casing is a bit of a fib; there is no case, it's just a block of red powder." icon_state = "310-casing" caliber = CALIBER_STRILKA310 projectile_type = /obj/projectile/bullet/strilka310 @@ -14,7 +14,7 @@ /obj/item/ammo_casing/strilka310/surplus name = ".310 Strilka surplus bullet casing" - desc = "A surplus .310 Strilka bullet casing. Casing is a bit of a fib, there is no case, it's just a block of red powder. Damp red powder at that." + desc = parent_type::desc + " Damp red powder at that." projectile_type = /obj/projectile/bullet/strilka310/surplus /obj/item/ammo_casing/strilka310/enchanted @@ -22,13 +22,14 @@ /obj/item/ammo_casing/strilka310/phasic name = ".310 Strilka phasic bullet casing" - desc = "A phasic .310 Strilka bullet casing. " + desc = "A phasic .310 Strilka bullet casing." projectile_type = /obj/projectile/bullet/strilka310/phasic // .223 (M-90gl Carbine) /obj/item/ammo_casing/a223 name = ".223 bullet casing" desc = "A .223 bullet casing." + icon_state = "223-casing" caliber = CALIBER_A223 projectile_type = /obj/projectile/bullet/a223 diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index 95ecf05228e7..7ed56c0ddd0d 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -63,11 +63,11 @@ harmful = FALSE /obj/item/ammo_casing/energy/tesla_cannon - fire_sound = 'sound/effects/magic/lightningshock.ogg' + fire_sound = null e_cost = LASER_SHOTS(33, STANDARD_CELL_CHARGE) select_name = "shock" projectile_type = /obj/projectile/energy/tesla_cannon - firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/blue + firing_effect_type = null /obj/item/ammo_casing/energy/shrink projectile_type = /obj/projectile/magic/shrink/alien diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index 655a6cae18ef..4194badcc0e3 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -29,14 +29,15 @@ var/multiple_sprite_use_base = FALSE ///String, used for checking if ammo of different types but still fits can fit inside it; generally used for magazines var/caliber - ///Allows multiple bullets to be loaded in from one click of another box/magazine - var/multiload = TRUE + /// Determines whether ammo boxes can multiload in or out. + var/ammo_box_multiload = AMMO_BOX_MULTILOAD_BOTH + ///Whether the magazine should start with nothing in it var/start_empty = FALSE /// If this and ammo_band_icon aren't null, run update_ammo_band(). Is the color of the band, such as blue on the detective's Iceblox. var/ammo_band_color - /// If this and ammo_band_color aren't null, run update_ammo_band() Is the greyscale icon used for the ammo band. + /// If this and ammo_band_color aren't null, run update_ammo_band(). Is the greyscale icon used for the ammo band. var/ammo_band_icon /// Is the greyscale icon used for the ammo band when it's empty of bullets, only if it's not null. var/ammo_band_icon_empty @@ -161,8 +162,7 @@ /obj/item/ammo_box/proc/can_load(mob/user) return TRUE -/obj/item/ammo_box/attackby(obj/item/tool, mob/user, params, silent = FALSE, replace_spent = 0) - +/obj/item/ammo_box/item_interaction(mob/living/user, obj/item/tool, list/modifiers) if(IS_WRITING_UTENSIL(tool)) if(!ammo_band_icon) balloon_alert(user, "no indicator support!") @@ -173,6 +173,10 @@ update_appearance() return + if(try_load(user, tool)) + return ITEM_INTERACT_SUCCESS + +/obj/item/ammo_box/proc/try_load(mob/living/user, obj/item/tool, silent = FALSE, replace_spent = FALSE) var/num_loaded = 0 if(!can_load(user)) return @@ -184,7 +188,7 @@ if(did_load) other_box.stored_ammo -= casing num_loaded++ - if(!did_load || !multiload) + if(!did_load || !(ammo_box_multiload & AMMO_BOX_MULTILOAD_IN) || !(other_box.ammo_box_multiload & AMMO_BOX_MULTILOAD_OUT)) break if(num_loaded) @@ -253,7 +257,8 @@ /obj/item/ammo_box/magazine name = "A magazine (what?)" - desc = "A magazine of rounds, they look like error signs..." + desc = "A magazine of rounds, they look like error signs... this should probably be reported somewhere." + ammo_box_multiload = AMMO_BOX_MULTILOAD_IN // so you can't use a magazine like a bootleg speedloader drop_sound = 'sound/items/handling/gun/ballistics/magazine/magazine_drop1.ogg' pickup_sound = 'sound/items/handling/gun/ballistics/magazine/magazine_pickup1.ogg' diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index 695388280ebc..ff45d604ebc4 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -1,5 +1,6 @@ /obj/item/ammo_box/magazine/toy name = "foam force META magazine" + desc = "A magazine specifically designed for foam force \"firearms\". Probably not great for actually killing your fellow spaceman." ammo_type = /obj/item/ammo_casing/foam_dart caliber = CALIBER_FOAM diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm index 1e891abeef28..630e91ab12f2 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -15,7 +15,7 @@ ammo_type = /obj/item/ammo_casing/c357 caliber = CALIBER_357 max_ammo = 6 - multiload = FALSE + ammo_box_multiload = AMMO_BOX_MULTILOAD_NONE // presumably so you don't teleport in a full cylinder and end up shooting yourself immediately start_empty = TRUE /obj/item/ammo_box/magazine/internal/cylinder/rus357/Initialize(mapload) diff --git a/code/modules/projectiles/boxes_magazines/internal/rifle.dm b/code/modules/projectiles/boxes_magazines/internal/rifle.dm index fd643a8e6e5e..2853cecc9bfa 100644 --- a/code/modules/projectiles/boxes_magazines/internal/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/internal/rifle.dm @@ -4,7 +4,6 @@ ammo_type = /obj/item/ammo_casing/strilka310 caliber = CALIBER_STRILKA310 max_ammo = 5 - multiload = TRUE /obj/item/ammo_box/magazine/internal/boltaction/surplus ammo_type = /obj/item/ammo_casing/strilka310/surplus @@ -69,7 +68,6 @@ ammo_type = /obj/item/ammo_casing/strilka310 caliber = CALIBER_STRILKA310 max_ammo = 10 - multiload = TRUE /obj/item/ammo_box/magazine/internal/sks/empty start_empty = TRUE diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index 649cb9eb536b..ef14b2701a39 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -3,7 +3,8 @@ ammo_type = /obj/item/ammo_casing/shotgun/beanbag caliber = CALIBER_SHOTGUN max_ammo = 4 - multiload = FALSE + // this inherits regular magazines' AMMO_BOX_MULTILOAD_IN, which means that regular shotguns shouldn't be multiloading from Bulldog magazines + // if someone has the bright idea to add shotgun speedloaders, i certainly hope they know what they're inviting by doing so /obj/item/ammo_box/magazine/internal/shot/tube name = "dual feed shotgun internal tube" diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 83f03c90e54d..c963f524c3bf 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -549,7 +549,7 @@ magazine.stored_ammo -= chambered chambered = null - var/num_loaded = magazine?.attackby(ammo, user, silent = TRUE) + var/num_loaded = magazine?.try_load(user, ammo, silent = TRUE) if (!num_loaded) return FALSE diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 2820fbec3e7a..426d8ef0a608 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -148,7 +148,6 @@ selector_switch_icon = TRUE accepted_magazine_type = /obj/item/ammo_box/magazine/m223 can_suppress = FALSE - var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 burst_delay = 2 spread = 5 @@ -156,10 +155,12 @@ mag_display = TRUE empty_indicator = TRUE fire_sound = 'sound/items/weapons/gun/smg/shot_alt.ogg' + /// Attached underbarrel grenade launcher + var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel/underbarrel /obj/item/gun/ballistic/automatic/m90/Initialize(mapload) . = ..() - underbarrel = new /obj/item/gun/ballistic/revolver/grenadelauncher(src) + underbarrel = new(src) update_appearance() /obj/item/gun/ballistic/automatic/m90/Destroy() diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index 1003b208ac68..a9e1cb184a74 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -1,9 +1,9 @@ //KEEP IN MIND: These are different from gun/grenadelauncher. These are designed to shoot premade rocket and grenade projectiles, not flashbangs or chemistry casings etc. //Put handheld rocket launchers here if someone ever decides to make something so hilarious ~Paprika -/obj/item/gun/ballistic/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes - desc = "A break-operated grenade launcher." +/obj/item/gun/ballistic/revolver/grenadelauncher name = "grenade launcher" + desc = "A break-operated grenade launcher." icon_state = "dshotgun_sawn" inhand_icon_state = "gun" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/grenadelauncher @@ -20,6 +20,27 @@ if(istype(A, /obj/item/ammo_box) || isammocasing(A)) chamber_round() +/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel + name = "underbarrel grenade launcher" + pin = null + +/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel/Initialize(mapload) + . = ..() + var/obj/item/gun/gun = loc + if (!istype(gun)) + return INITIALIZE_HINT_QDEL + pin = gun.pin + RegisterSignal(gun, COMSIG_GUN_PIN_INSERTED, PROC_REF(on_pin_inserted)) + RegisterSignal(gun, COMSIG_GUN_PIN_REMOVED, PROC_REF(on_pin_removed)) + +/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel/proc/on_pin_inserted(obj/item/gun/source, obj/item/firing_pin/new_pin, mob/living/user) + SIGNAL_HANDLER + pin = new_pin + +/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel/proc/on_pin_removed(obj/item/gun/source, obj/item/firing_pin/old_pin, mob/living/user) + SIGNAL_HANDLER + pin = null + /obj/item/gun/ballistic/revolver/grenadelauncher/cyborg desc = "A 6-shot grenade launcher." name = "multi grenade launcher" diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 77efb56f9476..bee133ac8fb3 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -137,6 +137,8 @@ There was probably a reason it wasn't manufactured this short to begin with. \ Cutting the weapon down seems to have not helped with the moisture problem." icon_state = "sakhno_tactifucked" + inhand_icon_state = "slopno" + worn_icon_state = "slopno" accepted_magazine_type = /obj/item/ammo_box/magazine/internal/boltaction/surplus can_jam = TRUE @@ -369,7 +371,7 @@ name = "enchanted bolt action rifle" desc = "Careful not to lose your head." icon_state = "enchanted_rifle" - inhand_icon_state = "sakhno" + inhand_icon_state = "enchanted" worn_icon_state = "enchanted_rifle" slot_flags = ITEM_SLOT_BACK var/guns_left = 30 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 49965b7d734b..1c27ccc1ccf5 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -360,18 +360,72 @@ return FALSE return ..() +/** +-----------------Tesla Cannon-------------------------------- + +An advanced weapon that provides extremely high dps output at pinpoint accuracy due to its hitscan nature. + +Due to its normal w_class when folded it is suitable as a heavy reinforcement weapon, since the cell drains very quickly when firing. + +The power level is somewhat tempered by several drawbacks such as research requirements, anomalock, two handed firing requirement, and insultation providing damage reduction. + +it is often confused with the mech weapon of the same name, since it is a bit more obscure despite being very powerful. Formerly called the tesla revolver. +**/ /obj/item/gun/energy/tesla_cannon name = "tesla cannon" + icon = 'icons/obj/weapons/guns/wide_guns.dmi' icon_state = "tesla" - inhand_icon_state = "tesla" - desc = "A gun powered by a flux anomaly that shoots lightning bolts. Electrically insulating clothing may protect from some of the damage." + lefthand_file = 'icons/mob/inhands/weapons/64x_guns_left.dmi' + righthand_file = 'icons/mob/inhands/weapons/64x_guns_right.dmi' + inhand_icon_state = null //null so we build the correct inhand. + desc = "A high voltage flux projector prototype created using the latest advancements in the anomaly science.\n\nThe anomalous nature of the flux core allows the tesla arc to be guided from the electrode to the target without being diverted to stray conductors outside the target field." + SET_BASE_VISUAL_PIXEL(-8, 0) ammo_type = list(/obj/item/ammo_casing/energy/tesla_cannon) + inhand_x_dimension = 64 shaded_charge = TRUE + charge_sections = 2 + display_empty = FALSE weapon_weight = WEAPON_HEAVY + w_class = WEIGHT_CLASS_BULKY + ///if our stpck is extended and we are ready to fire. + var/ready_to_fire = FALSE /obj/item/gun/energy/tesla_cannon/Initialize(mapload) . = ..() - AddComponent(/datum/component/automatic_fire, 0.1 SECONDS) + AddComponent(/datum/component/automatic_fire, autofire_shot_delay = 100 MILLISECONDS, firing_sound_loop = /datum/looping_sound/tesla_cannon) + +/obj/item/gun/energy/tesla_cannon/can_trigger_gun(mob/living/user, akimbo_usage) + if(ready_to_fire) + return ..() + //If we have charge, but the stock is folded, do sparks. + if(can_shoot()) + balloon_alert(user, "electricity arcing to stock!") + + if(prob(75)) //fake sparks to cut on spark spam + playsound(user, 'sound/effects/sparks/sparks1.ogg', 50, TRUE) + else + do_sparks(3, FALSE, user) + return FALSE + +/obj/item/gun/energy/tesla_cannon/attack_self(mob/living/user) + . = ..() + if(ready_to_fire) + w_class = WEIGHT_CLASS_NORMAL + ready_to_fire = FALSE + icon_state = "tesla" + playsound(user, 'sound/items/weapons/gun/tesla/squeak_latch.ogg', 100) + + else + playsound(user, 'sound/items/weapons/gun/tesla/click_creak.ogg', 100) + if(!do_after(user, 1.5 SECONDS)) + return + w_class = WEIGHT_CLASS_BULKY + ready_to_fire = TRUE + icon_state = "tesla_unfolded" + playsound(user, 'sound/items/weapons/gun/tesla/squeak_latch.ogg', 100) + + update_appearance() + balloon_alert_to_viewers("[ready_to_fire ? "unfolded" : "folded"] stock") /obj/item/gun/energy/marksman_revolver name = "marksman revolver" diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index a965defcd3b6..a7c306778423 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -20,6 +20,11 @@ var/pin_removable = TRUE var/obj/item/gun/gun +/obj/item/firing_pin/Destroy() + if(gun) + gun_remove() + return ..() + /obj/item/firing_pin/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) if(!isgun(interacting_with)) return NONE @@ -57,10 +62,12 @@ gun = new_gun forceMove(gun) gun.pin = src + SEND_SIGNAL(gun, COMSIG_GUN_PIN_INSERTED, src, user) return TRUE /obj/item/firing_pin/proc/gun_remove(mob/living/user) gun.pin = null + SEND_SIGNAL(gun, COMSIG_GUN_PIN_REMOVED, src, user) gun = null return @@ -380,9 +387,3 @@ playsound(src, SFX_SCREECH, 75, TRUE) return FALSE return TRUE - -/obj/item/firing_pin/Destroy() - if(gun) - gun.pin = null - gun = null - return ..() diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 27ac40c62b95..fe4f9c47d39c 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -243,6 +243,124 @@ impact_light_intensity = 7 impact_light_range = 2.5 impact_light_color_override = COLOR_LIME + // Subtract this from SM damage on hit for lasers + var/integrity_heal + // Subtract this from SM energy on hit for lasers + var/energy_reduction + // Add this to SM psi coefficient on hit for lasers + var/psi_change + +/obj/projectile/beam/emitter/hitscan/bluelens + name = "electrodisruptive beam" + light_color = LIGHT_COLOR_BLUE + muzzle_type = /obj/effect/projectile/muzzle/pulse + tracer_type = /obj/effect/projectile/tracer/laser/emitter/bluelens + impact_type = /obj/effect/projectile/impact/pulse + hitscan_light_color_override = COLOR_BLUE_LIGHT + muzzle_flash_color_override = COLOR_BLUE_LIGHT + impact_light_color_override = COLOR_BLUE_LIGHT + damage_type = STAMINA + integrity_heal = 0.25 + energy_reduction = 60 + +/obj/projectile/beam/emitter/hitscan/bioregen + name = "bioregenerative beam" + light_color = LIGHT_COLOR_BRIGHT_YELLOW + muzzle_type = /obj/effect/projectile/muzzle/solar + tracer_type = /obj/effect/projectile/tracer/laser/emitter/bioregen + impact_type = /obj/effect/projectile/impact/solar + hitscan_light_color_override = COLOR_LIGHT_YELLOW + muzzle_flash_color_override = COLOR_LIGHT_YELLOW + impact_light_color_override = COLOR_LIGHT_YELLOW + damage_type = STAMINA + damage = 0 + var/healing_done = 5 + +/obj/projectile/beam/emitter/hitscan/bioregen/on_hit(atom/target, blocked, pierce_hit) + . = ..() + if(!iscarbon(target)) + return + var/mob/living/carbon/healed_guy = target + healed_guy.heal_bodypart_damage(brute = healing_done, burn = healing_done, updating_health = FALSE) + +/obj/projectile/beam/emitter/hitscan/incend + name = "conflagratory beam" + light_color = LIGHT_COLOR_ORANGE + muzzle_type = /obj/effect/projectile/muzzle/heavy_laser + tracer_type = /obj/effect/projectile/tracer/laser/emitter/redlens + impact_type = /obj/effect/projectile/impact/heavy_laser + hitscan_light_color_override = COLOR_ORANGE + muzzle_flash_color_override = COLOR_ORANGE + impact_light_color_override = COLOR_ORANGE + damage = 20 + integrity_heal = -0.15 + energy_reduction = -150 + psi_change = -0.1 + +/obj/projectile/beam/emitter/hitscan/incend/on_hit(atom/target, blocked, pierce_hit) + . = ..() + if(!isliving(target)) + return + var/mob/living/burnt_guy = target + burnt_guy.adjust_fire_stacks(5) + burnt_guy.ignite_mob() + +/obj/projectile/beam/emitter/hitscan/psy + name = "psychosiphoning beam" + light_color = LIGHT_COLOR_PINK + muzzle_type = /obj/effect/projectile/muzzle/laser/emitter/psy + tracer_type = /obj/effect/projectile/tracer/laser/emitter/psy + impact_type = /obj/effect/projectile/impact/laser/emitter/psy + hitscan_light_color_override = COLOR_BLUSH_PINK + muzzle_flash_color_override = COLOR_BLUSH_PINK + impact_light_color_override = COLOR_BLUSH_PINK + damage = 0 + energy_reduction = -25 + psi_change = 0.25 + +/obj/projectile/beam/emitter/hitscan/psy/on_hit(atom/target, blocked, pierce_hit) + . = ..() + if(!isliving(target)) + return + var/mob/living/siphoned = target + siphoned.mob_mood.adjust_sanity(-25) + to_chat(siphoned, span_warning("Suddenly, everything feels just a little bit worse!")) + +/obj/projectile/beam/emitter/hitscan/magnetic + name = "magnetogenerative beam" + light_color = COLOR_SILVER + muzzle_type = /obj/effect/projectile/muzzle/laser/emitter/magnetic + tracer_type = /obj/effect/projectile/tracer/laser/emitter/magnetic + impact_type = /obj/effect/projectile/impact/laser/emitter/magnetic + hitscan_light_color_override = COLOR_SILVER + muzzle_flash_color_override = COLOR_SILVER + impact_light_color_override = COLOR_SILVER + damage = 0 + +/obj/projectile/beam/emitter/hitscan/magnetic/on_hit(atom/target, blocked, pierce_hit) + . = ..() + var/turf/turf_to_magnet = get_turf(target) + goonchem_vortex(turf_to_magnet, FALSE, 4) + +/obj/projectile/beam/emitter/hitscan/blast + name = "hyperconcussive beam" + light_color = LIGHT_COLOR_ORANGE + muzzle_type = /obj/effect/projectile/muzzle/laser/emitter/magnetic + tracer_type = /obj/effect/projectile/tracer/laser/emitter/magnetic + impact_type = /obj/effect/projectile/impact/laser/emitter/magnetic + hitscan_light_color_override = COLOR_ORANGE + muzzle_flash_color_override = COLOR_ORANGE + impact_light_color_override = COLOR_ORANGE + damage = 0 + integrity_heal = -2 + energy_reduction = -500 + + +/obj/projectile/beam/emitter/hitscan/blast/on_hit(atom/target, blocked, pierce_hit) + . = ..() + var/turf/turf_to_explode = get_turf(target) + explosion(turf_to_explode, 0, 1, 2) + /obj/projectile/beam/lasertag name = "laser tag beam" diff --git a/code/modules/projectiles/projectile/energy/tesla.dm b/code/modules/projectiles/projectile/energy/tesla.dm index 928b3f31271e..6bbb514f2220 100644 --- a/code/modules/projectiles/projectile/energy/tesla.dm +++ b/code/modules/projectiles/projectile/energy/tesla.dm @@ -29,13 +29,14 @@ name = "tesla bolt" icon_state = null hitscan = TRUE - tracer_type = /obj/effect/projectile/tracer/lightning impact_effect_type = null damage = 5 var/shock_damage = 10 /obj/projectile/energy/tesla_cannon/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() + firer.Beam(target, icon_state = "tesla", time = 1, icon_state_variants = 24) + if(isliving(target)) var/mob/living/victim = target victim.electrocute_act(shock_damage, src, siemens_coeff = 1, flags = SHOCK_NOSTUN|SHOCK_TESLA) diff --git a/code/modules/reagents/chemistry/holder/holder.dm b/code/modules/reagents/chemistry/holder/holder.dm index 526f4e43c4c8..13cd0541e879 100644 --- a/code/modules/reagents/chemistry/holder/holder.dm +++ b/code/modules/reagents/chemistry/holder/holder.dm @@ -3,7 +3,7 @@ /// Holder for a bunch of [/datum/reagent] /datum/reagents /// The reagents being held - var/list/datum/reagent/reagent_list = new/list() + var/list/datum/reagent/reagent_list = list() /// Current volume of all the reagents var/total_volume = 0 /// Max volume of this holder @@ -80,7 +80,7 @@ * * added_purity - override to force a purity when added * * added_ph - override to force a pH when added * * override_base_ph - ingore the present pH of the reagent, and instead use the default (i.e. if buffers/reactions alter it) - * * list/reagent_added - If not null use this as an holder to store and retrive the reagent datum that was just added without having to locate it after this proc returns. Clear the list to erase old values + * * list/reagent_added - If not null will contain an map of [reagent datum->amount added] which holds the inverse chems added to mobs. Clear the list to erase old values * * creation_callback - Callback to invoke when the reagent is created */ /datum/reagents/proc/add_reagent( @@ -154,7 +154,7 @@ set_temperature(reagtemp) if(!isnull(reagent_added)) - reagent_added += iter_reagent + reagent_added[iter_reagent] = amount if(!no_react && !is_reacting) //To reduce the amount of calculations for a reaction the reaction list is only updated on a reagents addition. handle_reactions() return amount @@ -185,7 +185,7 @@ set_temperature(reagtemp) if(!isnull(reagent_added)) - reagent_added += new_reagent + reagent_added[new_reagent] = amount if(!no_react) handle_reactions() return amount @@ -325,12 +325,15 @@ * * * [source_reagent_typepath][/datum/reagent] - the typepath of the reagent you are trying to convert * * [target_reagent_typepath][/datum/reagent] - the final typepath the source_reagent_typepath will be converted into + * * conversion_volume - how much of the reagent volume to convert * * multiplier - the multiplier applied on the source_reagent_typepath volume before converting * * include_source_subtypes- if TRUE will convert all subtypes of source_reagent_typepath into target_reagent_typepath as well + * * keep_data - works only when include_source_subtypes is FALSE. Transfers over the data of the converted reagent */ /datum/reagents/proc/convert_reagent( datum/reagent/source_reagent_typepath, datum/reagent/target_reagent_typepath, + conversion_volume = total_volume, multiplier = 1, include_source_subtypes = FALSE, keep_data = FALSE, @@ -341,12 +344,15 @@ if(!ispath(target_reagent_typepath)) stack_trace("invalid reagent path passed to convert reagent [target_reagent_typepath]") return FALSE + if(conversion_volume <= 0 || conversion_volume > total_volume) + stack_trace("conversion volume [conversion_volume] out of bounds range is 0 conversion_volume) + reagent_volume = conversion_volume + cached_reagent.volume -= conversion_volume + conversion_volume = 0 + else + conversion_volume -= cached_reagent.volume + cached_reagent.volume = 0 + + //compute average of everything. preserve data if nessassary weighted_purity += cached_reagent.purity * reagent_volume weighted_ph += cached_reagent.ph * reagent_volume weighted_volume += reagent_volume - - //zero the volume out so it gets removed - cached_reagent.volume = 0 if(keep_data) reagent_data = copy_data(cached_reagent) - //if we reached here means we have found our specific reagent type so break - if(!include_source_subtypes) + //stop if we found our specific reagent or reached the conversion threshold + if(!include_source_subtypes || !conversion_volume) break //add the new target reagent with the averaged values from the source reagents @@ -409,6 +421,7 @@ * * methods - passed through to [/datum/reagents/proc/expose] and [/datum/reagent/proc/on_transfer] * * show_message - passed through to [/datum/reagents/proc/expose] * * ignore_stomach - when using methods INGEST will not use the stomach as the target + * * copy_only - transfers the reagents without removing it from this holder */ /datum/reagents/proc/trans_to( atom/target, @@ -421,7 +434,8 @@ remove_blacklisted = FALSE, methods = NONE, show_message = TRUE, - ignore_stomach = FALSE + ignore_stomach = FALSE, + copy_only = FALSE ) if(QDELETED(target) || !total_volume) return FALSE @@ -463,14 +477,9 @@ if(amount <= 0) return FALSE - //Set up new reagents to inherit the old ongoing reactions - if(!no_react) - transfer_reactions(target_holder) - var/trans_data = null var/list/r_to_send = methods ? list() : null // Validated list of reagents to be exposed var/list/transfer_log = list() - var/list/reagents_to_remove = list() var/part = isnull(target_id) ? (amount / total_volume) : 1 var/transfer_amount @@ -493,31 +502,25 @@ if(preserve_data) trans_data = copy_data(reagent) - if(reagent.intercept_reagents_transfer(target_holder, amount)) - update_total() - target_holder.update_total() + if(reagent.intercept_reagents_transfer(target_holder, transfer_amount, copy_only)) continue transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount * multiplier, trans_data, chem_temp, reagent.purity, reagent.ph, no_react = TRUE, reagent_added = r_to_send, creation_callback = CALLBACK(src, PROC_REF(_on_transfer_creation), reagent, target_holder)) //we only handle reaction after every reagent has been transferred. if(!transfered_amount) continue - reagents_to_remove[reagent] = transfer_amount + total_transfered_amount += transfered_amount + if(!copy_only) + reagent.volume -= transfer_amount + transfer_log += "[reagent.type] ([transfered_amount]u, [reagent.purity] purity)" if(!isnull(target_id)) break + if(!copy_only) + update_total() //expose target to reagent changes if(methods) - target_holder.expose(isorgan(target_atom) ? target : target_atom, methods, part, show_message, r_to_send) - - //remove chemicals that were added above - for(var/datum/reagent/reagent as anything in reagents_to_remove) - transfer_amount = reagents_to_remove[reagent] - if(methods) - reagent.on_transfer(target_atom, methods, transfer_amount) - reagent.volume -= transfer_amount - update_total() - transfer_log += "[reagent.type] ([transfer_amount]u, [reagent.purity] purity)" + target_holder.expose(isorgan(target_atom) ? target : target_atom, methods, 1, show_message, r_to_send) //combat log if(transferred_by && target_atom) @@ -532,8 +535,10 @@ log_combat(transferred_by, log_target, "transferred reagents to", my_atom, "which had [english_list(transfer_log)]") if(!no_react) + transfer_reactions(target_holder) + if(!copy_only) + handle_reactions() target_holder.handle_reactions() - handle_reactions() return total_transfered_amount @@ -543,69 +548,6 @@ SEND_SIGNAL(reagent, COMSIG_REAGENT_ON_TRANSFER, target_holder, new_reagent) -/** - * Copies the reagents to the target object - * Arguments - * - * * [target][obj] - the target to transfer reagents to - * * multiplier - multiplies each reagent amount by this number well byond their available volume before transfering. used to create reagents from thin air if you ever need to - * * preserve_data - preserve user data of all reagents after transfering - * * no_react - if TRUE will not handle reactions - * * copy_methods - forwards reagent exposure method flags like INGEST & INHALE to reagent.on_transfer to trigger transfer effects. - */ -/datum/reagents/proc/copy_to( - atom/target, - amount = 1, - multiplier = 1, - preserve_data = TRUE, - no_react = FALSE, - copy_methods -) - if(QDELETED(target) || !total_volume) - return - - if(!IS_FINITE(amount)) - stack_trace("non finite amount passed to copy_to [amount] amount of reagents") - return FALSE - - var/datum/reagents/target_holder - if(istype(target, /datum/reagents)) - target_holder = target - else - if(!target.reagents) - return - target_holder = target.reagents - - // Prevents small amount problems, as well as zero and below zero amounts. - amount = round(min(amount, total_volume, target_holder.maximum_volume - target_holder.total_volume), CHEMICAL_QUANTISATION_LEVEL) - if(amount <= 0) - return - - var/list/cached_reagents = reagent_list - var/part = amount / total_volume - var/transfer_amount - var/transfered_amount = 0 - var/total_transfered_amount = 0 - var/trans_data = null - - for(var/datum/reagent/reagent as anything in cached_reagents) - transfer_amount = reagent.volume * part * multiplier - if(preserve_data) - trans_data = copy_data(reagent) - transfered_amount = target_holder.add_reagent(reagent.type, transfer_amount, trans_data, chem_temp, reagent.purity, reagent.ph, no_react = TRUE) - if(copy_methods && !no_react) - reagent.on_transfer(target, copy_methods, transfer_amount) - if(!transfered_amount) - continue - total_transfered_amount += transfered_amount - - if(!no_react) - // pass over previous ongoing reactions before handle_reactions is called - transfer_reactions(target_holder) - target_holder.handle_reactions() - - return total_transfered_amount - /** * Multiplies reagents inside this holder by a specific amount * Arguments @@ -804,23 +746,27 @@ * Arguments * - Atom/target: What mob/turf/object is being exposed to reagents? This is your reaction target. * - Methods: What reaction type is the reagent itself going to call on the reaction target? Types are TOUCH, INGEST, VAPOR, PATCH, INJECT and INHALE. - * - Volume_modifier: What is the reagent volume multiplied by when exposed? Note that this is called on the volume of EVERY reagent in the base body, so factor in your Maximum_Volume if necessary! + * - Volume_modifier: reagent volume modifier applied to the reagents(passed to r_to_expose or this holder) before exposing. Must be between 0->1 * - Show_message: Whether to display anything to mobs when they are exposed. - * - list/datum/reagent/r_to_expose: list of reagents to expose. if null will expose the reagents present in this holder instead + * - list/datum/reagent/r_to_expose: map of[/datum/reagent -> amount] when you to want to expose specific reagents with precise amounts */ /datum/reagents/proc/expose(atom/target, methods = TOUCH, volume_modifier = 1, show_message = 1, list/datum/reagent/r_to_expose = null) if(isnull(target)) - return null + return - var/list/target_reagents = isnull(r_to_expose) ? reagent_list : r_to_expose - if(!target_reagents.len) - return null + if(volume_modifier <= 0) + stack_trace("Volume modifier [volume_modifier] must be +ve") + return var/list/datum/reagent/reagents = list() - for(var/datum/reagent/reagent as anything in target_reagents) - reagents[reagent] = reagent.volume * volume_modifier + if(isnull(r_to_expose)) + for(var/datum/reagent/reagent as anything in reagent_list) + reagents[reagent] = reagent.volume * volume_modifier + else + for(var/datum/reagent/reagent as anything in r_to_expose) + reagents[reagent] = r_to_expose[reagent] * volume_modifier - return target.expose_reagents(reagents, src, methods, volume_modifier, show_message) + return target.expose_reagents(reagents, src, methods, show_message) /** * Applies heat to this holder diff --git a/code/modules/reagents/chemistry/machinery/smoke_machine.dm b/code/modules/reagents/chemistry/machinery/smoke_machine.dm index 53c8ca490566..54358350d5cf 100644 --- a/code/modules/reagents/chemistry/machinery/smoke_machine.dm +++ b/code/modules/reagents/chemistry/machinery/smoke_machine.dm @@ -35,7 +35,7 @@ src.location = get_turf(location) src.amount = amount if(carry) - carry.copy_to(chemholder, 20) + carry.trans_to(chemholder, 20, copy_only = TRUE) carry.remove_all(amount / efficiency) /obj/machinery/smoke_machine/Initialize(mapload) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 4e0544f6ba28..d26272934cc4 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -189,17 +189,19 @@ /datum/reagent/proc/on_burn_wound_processing(datum/wound/burn/flesh/burn_wound) return -/* -Used to run functions before a reagent is transferred. Returning TRUE will block the transfer attempt. -Primarily used in reagents/reaction_agents +/** + * Intercepts the reagent transfer/copy operation to do some work before it takes place. + * Used to perform some reaction work. Return TRUE To cancel the operation + * + * Arguments + * + * * datum/reagents/target - the target holder we are being transferred to + * * amount - the amount of reagent being transferred + * * copy_only - if TRUE we don't remove ourself from the holder because its a reagent copy & not transfer operation */ -/datum/reagent/proc/intercept_reagents_transfer(datum/reagents/target, amount) +/datum/reagent/proc/intercept_reagents_transfer(datum/reagents/target, amount, copy_only) return FALSE -///Called after a reagent is transferred -/datum/reagent/proc/on_transfer(atom/A, methods=TOUCH, trans_volume) - return - /// Called when this reagent is first added to a mob /datum/reagent/proc/on_mob_add(mob/living/affected_mob, amount) // Scale the overdose threshold of the chem by the difference between the default and creation purity. @@ -230,7 +232,13 @@ Primarily used in reagents/reaction_agents /datum/reagent/proc/on_mob_dead(mob/living/carbon/affected_mob, seconds_per_tick) SHOULD_CALL_PARENT(TRUE) -/// Called after add_reagents creates a new reagent. +/** + * Called after add_reagents creates a new reagent. + * + * Arguments + * * data - if not null, contains reagent data which will be applied to the newly created reagent (this will override any pre-set data). + */ + /datum/reagent/proc/on_new(data) if(data) src.data = data diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index 300840c5d697..3099051c1065 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -154,14 +154,14 @@ if(need_mob_update) return UPDATE_MOB_HEALTH -/datum/reagent/medicine/c2/probital/on_transfer(atom/A, methods=INGEST, trans_volume) - if(!(methods & INGEST) || (!iscarbon(A) && !istype(A, /obj/item/organ/stomach)) ) +/datum/reagent/medicine/c2/probital/expose_mob(mob/living/exposed_mob, methods, reac_volume, show_message, touch_protection) + . = ..() + if(!(methods & INGEST) || !iscarbon(exposed_mob)) return - A.reagents.remove_reagent(/datum/reagent/medicine/c2/probital, trans_volume * 0.05) - A.reagents.add_reagent(/datum/reagent/medicine/metafactor, trans_volume * 0.25) - - ..() + var/datum/reagents/mob_reagents = exposed_mob.reagents + mob_reagents.remove_reagent(/datum/reagent/medicine/c2/probital, reac_volume * 0.05) + mob_reagents.add_reagent(/datum/reagent/medicine/metafactor, reac_volume * 0.25) /******BURN******/ /*Suffix: -uri*/ @@ -406,19 +406,21 @@ var/conversion_amount chemical_flags = REAGENT_CAN_BE_SYNTHESIZED -/datum/reagent/medicine/c2/syriniver/on_transfer(atom/A, methods=INJECT, trans_volume) - if(!(methods & INJECT) || !iscarbon(A)) +/datum/reagent/medicine/c2/syriniver/expose_mob(mob/living/carbon/exposed_mob, methods, trans_volume, show_message, touch_protection) + . = ..() + if(!(methods & INJECT) || !iscarbon(exposed_mob)) return - var/mob/living/carbon/C = A + if(trans_volume >= 0.4) //prevents cheesing with ultralow doses. - C.adjustToxLoss((-3 * min(2, trans_volume) * REM) * normalise_creation_purity(), required_biotype = affected_biotype) //This is to promote iv pole use for that chemotherapy feel. - var/obj/item/organ/liver/L = C.organs_slot[ORGAN_SLOT_LIVER] + exposed_mob.adjustToxLoss((-3 * min(2, trans_volume) * REM) * normalise_creation_purity(), required_biotype = affected_biotype) //This is to promote iv pole use for that chemotherapy feel. + var/obj/item/organ/liver/L = exposed_mob.organs_slot[ORGAN_SLOT_LIVER] if(!L || L.organ_flags & ORGAN_FAILING) return - conversion_amount = (trans_volume * (min(100 -C.get_organ_loss(ORGAN_SLOT_LIVER), 80) / 100)*normalise_creation_purity()) //the more damaged the liver the worse we metabolize. - C.reagents.remove_reagent(/datum/reagent/medicine/c2/syriniver, conversion_amount) - C.reagents.add_reagent(/datum/reagent/medicine/c2/musiver, conversion_amount) - ..() + conversion_amount = (trans_volume * (min(100 -exposed_mob.get_organ_loss(ORGAN_SLOT_LIVER), 80) / 100)*normalise_creation_purity()) //the more damaged the liver the worse we metabolize. + + var/datum/reagents/mob_reagents = exposed_mob.reagents + mob_reagents.remove_reagent(/datum/reagent/medicine/c2/syriniver, conversion_amount) + mob_reagents.add_reagent(/datum/reagent/medicine/c2/musiver, conversion_amount) /datum/reagent/medicine/c2/syriniver/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm index e66a542a4d67..b7cda4cd113d 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm @@ -501,14 +501,16 @@ return ..() -/datum/reagent/consumable/ethanol/goldschlager/on_transfer(atom/atom, methods = TOUCH, trans_volume) +/datum/reagent/consumable/ethanol/goldschlager/expose_mob(mob/living/exposed_mob, methods, reac_volume) + . = ..() if(!(methods & INGEST)) - return ..() + return - var/convert_amount = trans_volume * min(GOLDSCHLAGER_GOLD_RATIO, 1) - atom.reagents.remove_reagent(/datum/reagent/consumable/ethanol/goldschlager, convert_amount) - atom.reagents.add_reagent(/datum/reagent/gold, convert_amount) - return ..() + var/convert_amount = reac_volume * min(GOLDSCHLAGER_GOLD_RATIO, 1) + var/datum/reagents/mob_reagents = exposed_mob.reagents + + mob_reagents.remove_reagent(/datum/reagent/consumable/ethanol/goldschlager, convert_amount) + mob_reagents.add_reagent(/datum/reagent/gold, convert_amount) /datum/reagent/consumable/ethanol/patron name = "Patron" diff --git a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm index bb6697a39094..1b13ee77cca8 100644 --- a/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks/drink_reagents.dm @@ -228,7 +228,7 @@ /datum/reagent/milk/used_on_fish(obj/item/fish/fish) if(HAS_TRAIT(fish, TRAIT_FISH_MADE_OF_BONE)) - fish.adjust_health(fish.health + initial(fish.health) * max(fish.get_hunger() * 0.5, 0.12)) + fish.repair_damage(fish.max_integrity * max(fish.get_hunger() * 0.5, 0.12)) fish.sate_hunger() return TRUE @@ -998,12 +998,12 @@ . = ..() if(IS_REVOLUTIONARY(drinker)) to_chat(drinker, span_warning("Antioxidants are weakening your radical spirit!")) - + /datum/reagent/consumable/grenadine/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) . = ..() if(IS_REVOLUTIONARY(drinker)) drinker.set_dizzy_if_lower(10 SECONDS * REM * seconds_per_tick) - if(drinker.getStaminaLoss() < 80) + if(drinker.getStaminaLoss() < 80) drinker.adjustStaminaLoss(12, required_biotype = affected_biotype) //The pomegranate stops free radicals! Har har. /datum/reagent/consumable/parsnipjuice @@ -1309,3 +1309,60 @@ var/obj/item/organ/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH) if(istype(stomach)) stomach.adjust_charge(reac_volume * 20 * ETHEREAL_DISCHARGE_RATE) + +/datum/reagent/consumable/fruit_punch + name = "fruit punch" + description = "Impossibly sweet fruit punch. Nobody knows what fruits were used to make it, not even it's creators... \ + It's unique recipe heals and rejuvinates the drinker, but is unsafe to consume without the support of a nearby watercooler." + color = "#f7b2e3" + taste_description = "dangerously sweet fruit" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + quality = DRINK_VERYGOOD + +/datum/reagent/consumable/fruit_punch/on_mob_life(mob/living/affected_mob, seconds_per_tick) + . = ..() + var/need_mob_update + var/found_valid_cooler = FALSE + for(var/obj/structure/reagent_dispensers/water_cooler/found_cooler in range(4, affected_mob)) + if(found_cooler.anchored) + found_valid_cooler = TRUE + var/obj/effect/temp_visual/heal/heal_effect = new /obj/effect/temp_visual/heal(get_turf(found_cooler)) + heal_effect.color = "#f7b2e3" + break + + if(found_valid_cooler) + affected_mob.clear_alert("punch_bad") + affected_mob.throw_alert("punch_good", /atom/movable/screen/alert/fruit_punch_good) + need_mob_update = affected_mob.adjustToxLoss(-0.6 * REM * seconds_per_tick, updating_health = FALSE) + need_mob_update = affected_mob.adjustBruteLoss(-0.6 * REM * seconds_per_tick, updating_health = FALSE) + need_mob_update = affected_mob.adjustFireLoss(-0.6 * REM * seconds_per_tick, updating_health = FALSE) + affected_mob.remove_movespeed_modifier(/datum/movespeed_modifier/punch_punishment) + else + affected_mob.clear_alert("punch_good") + affected_mob.throw_alert("punch_bad", /atom/movable/screen/alert/fruit_punch_bad) + need_mob_update = affected_mob.apply_damage(1.5 * REM * seconds_per_tick, TOX) + affected_mob.add_movespeed_modifier(/datum/movespeed_modifier/punch_punishment) + if(SPT_PROB(10, seconds_per_tick)) + affected_mob.Knockdown(3 SECONDS, 6 SECONDS) //Gives daze effect. Using the cooler is a commitment and if you get jumped during it or have to run away to fight something, you should be vulnerable. + to_chat(affected_mob, span_warning("The overwhelming sweetness of the fruit punch disorients and confounds you!")) + if(need_mob_update) + return UPDATE_MOB_HEALTH + +/datum/movespeed_modifier/punch_punishment + multiplicative_slowdown = 0.30 + +/datum/reagent/consumable/fruit_punch/on_mob_end_metabolize(mob/living/affected_mob) + . = ..() + affected_mob.clear_alert("punch_bad") + affected_mob.clear_alert("punch_good") + affected_mob.remove_movespeed_modifier(/datum/movespeed_modifier/punch_punishment) + +/atom/movable/screen/alert/fruit_punch_good + name = "Fruit Punch Blessing" + desc = "The sweetness of the fruit punch and the friendly company of the liquid cooler are slowly restoring your health..." + icon_state = "punch_blessing" + +/atom/movable/screen/alert/fruit_punch_bad + name = "Fruit Punishment" + desc = "The unbearable sweetness of the fruit punch is too much to bear without the soothing aura of a liquid cooler! Your body is going into shock!" + icon_state = "punch_punishment" diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm index 4f373c2cf9d7..039e6a2898b3 100644 --- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm @@ -816,11 +816,11 @@ If you have at over 25u in your body you restore more than 20 stamina per cycle, if(!kronkaine_fiend.stat) kronkaine_fiend.stop_sound_channel(CHANNEL_HEARTBEAT) -/datum/reagent/drug/kronkaine/on_transfer(atom/kronkaine_receptacle, methods, trans_volume) +/datum/reagent/drug/kronkaine/expose_mob(mob/living/carbon/druggo, methods, trans_volume, show_message, touch_protection) . = ..() - if(!iscarbon(kronkaine_receptacle)) + if(!iscarbon(druggo)) return - var/mob/living/carbon/druggo = kronkaine_receptacle + //The drug is more effective if smoked or injected, restoring more stamina per unit. var/stamina_heal_per_unit if(methods & (INJECT|INHALE)) @@ -833,9 +833,7 @@ If you have at over 25u in your body you restore more than 20 stamina per cycle, to_chat(druggo, span_nicegreen(pick("You feel the cowardice melt away...", "You feel unbothered by the judgements of others.", "My life feels lovely!", "You lower your snout... and suddenly feel more charitable!"))) else stamina_heal_per_unit = 6 - if(druggo.adjustStaminaLoss(-stamina_heal_per_unit * trans_volume)) - return UPDATE_MOB_HEALTH - + druggo.adjustStaminaLoss(-stamina_heal_per_unit * trans_volume) /datum/reagent/drug/kronkaine/on_mob_life(mob/living/carbon/kronkaine_fiend, seconds_per_tick, times_fired) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents.dm index 09da3851e22a..e21c0eada33f 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents.dm @@ -97,18 +97,13 @@ chemical_flags = REAGENT_DEAD_PROCESS | REAGENT_IGNORE_STASIS | REAGENT_UNAFFECTED_BY_METABOLISM metabolization_rate = 1 * REM -/datum/reagent/inverse/cryostylane/on_transfer(atom/transfered_thing, methods, trans_volume) +/datum/reagent/inverse/cryostylane/expose_mob(mob/living/carbon/human/human_thing, methods, reac_volume, show_message, touch_protection) . = ..() - if(methods & INGEST) + if((methods & INGEST) || !ishuman(human_thing)) return - if(!ishuman(transfered_thing)) - return - - var/mob/living/carbon/human/human_thing = transfered_thing - if(HAS_TRAIT(human_thing, TRAIT_RESISTCOLD)) - holder.remove_reagent(type, volume) + holder.del_reagent(type) return human_thing.apply_status_effect(/datum/status_effect/frozenstasis/irresistable) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 17ad295a1e85..02b9e2982414 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -138,10 +138,11 @@ var/cool_temp = cooling_temperature var/obj/effect/hotspot/hotspot = (locate(/obj/effect/hotspot) in exposed_turf) - if(hotspot && !isspaceturf(exposed_turf)) + if(hotspot && !isspaceturf(exposed_turf)) // the water evaporates in an endothermic reaction if(exposed_turf.air) var/datum/gas_mixture/air = exposed_turf.air - air.temperature = max(min(air.temperature-(cool_temp*1000), air.temperature/cool_temp),TCMB) + air.temperature = min(max(min(air.temperature-(cool_temp*1000), air.temperature/cool_temp), T0C), air.temperature) // the outer min temperature check is for weird phenomena like freon combustion + exposed_turf.temperature = clamp(min(exposed_turf.temperature-(cool_temp*1000), exposed_turf.temperature/cool_temp), T20C, exposed_turf.temperature) // turfs normally don't go below T20C so I'll just clamp it to that in case of weird phenomena. air.react(src) qdel(hotspot) @@ -2525,46 +2526,81 @@ chemical_flags = REAGENT_CAN_BE_SYNTHESIZED /datum/reagent/glitter - name = "Generic Glitter" - description = "if you can see this description, contact a coder." + name = "Glitter" + description = "The herpes of arts and crafts." + data = list("colors"=list(COLOR_WHITE = 100)) color = COLOR_WHITE //pure white taste_description = "plastic" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED - var/glitter_type = /obj/effect/decal/cleanable/glitter + +/datum/reagent/glitter/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + if(SPT_PROB(25, seconds_per_tick)) + affected_mob.emote("cough") + expose_turf(get_turf(affected_mob), 0) /datum/reagent/glitter/expose_turf(turf/exposed_turf, reac_volume) . = ..() if(!istype(exposed_turf)) return - exposed_turf.spawn_unique_cleanable(glitter_type) + exposed_turf.spawn_glitter(data["colors"]) -/datum/reagent/glitter/pink - name = "Pink Glitter" - description = "pink sparkles that get everywhere" - color = "#ff8080" //A light pink color - glitter_type = /obj/effect/decal/cleanable/glitter/pink - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/reagent/glitter/on_new(data) + . = ..() -/datum/reagent/glitter/white - name = "White Glitter" - description = "white sparkles that get everywhere" - glitter_type = /obj/effect/decal/cleanable/glitter/white - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + if(src.data["colors"]) + color = pick(src.data["colors"]) + else + color = COLOR_WHITE -/datum/reagent/glitter/blue - name = "Blue Glitter" - description = "blue sparkles that get everywhere" - color = "#4040FF" //A blueish color - glitter_type = /obj/effect/decal/cleanable/glitter/blue - chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/reagent/glitter/on_merge(list/mix_data, amount) + . = ..() + + var/prop_current = (volume-amount)/(volume) + + if(mix_data) + data["colors"] = blend_weighted_lists(mix_data["colors"], data["colors"], prop_current) + + if(data["colors"]) + color = pick(data["colors"]) + else + color = COLOR_WHITE + +/datum/reagent/glitter/random + name = "Unrandomised Randomised Glitter" + description = "You shouldn't be seeing this, please make an issue report describing how you found it." + + var/list/possible_colors = list( + list(COLOR_WHITE = 100), + list("#ff8080" = 100), + list("#4040ff" = 100), + list("#ff5555" = 34, "#55ff55" = 33, "#5555ff" = 33), + ) + +/datum/reagent/glitter/random/on_new(data) + . = ..() + + var/list/color_list = pick(possible_colors) -/datum/reagent/glitter/confetti + var/datum/reagents/our_holder = src.holder + var/our_volume = src.volume + var/list/our_data = list("colors" = color_list) + + our_holder.remove_reagent(/datum/reagent/glitter/random, our_volume) + our_holder.add_reagent(/datum/reagent/glitter, our_volume, data = our_data) + +/datum/reagent/confetti name = "Confetti" description = "Tiny plastic flakes that are impossible to sweep up." color = "#7dd87b" - glitter_type = /obj/effect/decal/cleanable/confetti chemical_flags = REAGENT_CAN_BE_SYNTHESIZED +/datum/reagent/confetti/expose_turf(turf/exposed_turf, reac_volume) + . = ..() + if(!istype(exposed_turf)) + return + exposed_turf.spawn_unique_cleanable(/obj/effect/decal/cleanable/confetti) + /datum/reagent/pax name = "Pax" description = "A colorless liquid that suppresses violence in its subjects." @@ -2697,15 +2733,15 @@ . = ..() yuck_cycle = 0 // reset vomiting -/datum/reagent/yuck/on_transfer(atom/A, methods=TOUCH, trans_volume) - if((methods & INGEST) || !iscarbon(A)) - return ..() - - A.reagents.remove_reagent(type, trans_volume) - A.reagents.add_reagent(/datum/reagent/fuel, trans_volume * 0.75) - A.reagents.add_reagent(/datum/reagent/water, trans_volume * 0.25) +/datum/reagent/yuck/expose_mob(mob/living/carbon/exposed_mob, methods, expose_volume, show_message, touch_protection) + . = ..() + if(!(methods & INGEST) || !iscarbon(exposed_mob)) + return - return ..() + var/datum/reagents/mob_reagents = exposed_mob.reagents + mob_reagents.remove_reagent(type, expose_volume) + mob_reagents.add_reagent(/datum/reagent/fuel, expose_volume * 0.75) + mob_reagents.add_reagent(/datum/reagent/water, expose_volume * 0.25) //monkey powder heehoo /datum/reagent/monkey_powder diff --git a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm index eac83c5efc9e..2a7ce91cc8df 100644 --- a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm @@ -2,14 +2,14 @@ name = "Reaction Agent" description = "Hello! I am a bugged reagent. Please report me for my crimes. Thank you!!" -/datum/reagent/reaction_agent/intercept_reagents_transfer(datum/reagents/target, amount) +/datum/reagent/reaction_agent/intercept_reagents_transfer(datum/reagents/target, amount, copy_only) if(!target) return FALSE if(target.flags & NO_REACT) return FALSE if(target.has_reagent(/datum/reagent/stabilizing_agent)) return FALSE - if(LAZYLEN(target.reagent_list) == 0) + if(!target.total_volume) return FALSE if(LAZYLEN(target.reagent_list) == 1) if(target.has_reagent(type)) //Allow dispensing into self @@ -27,7 +27,7 @@ glass_price = DRINK_PRICE_HIGH //Consumes self on addition and shifts ph -/datum/reagent/reaction_agent/acidic_buffer/intercept_reagents_transfer(datum/reagents/target, amount) +/datum/reagent/reaction_agent/acidic_buffer/intercept_reagents_transfer(datum/reagents/target, amount, copy_only) . = ..() if(!.) return @@ -39,11 +39,14 @@ else message = "The beaker froths as the pH changes!" target.adjust_all_reagents_ph((-(amount / target.total_volume) * BUFFER_IONIZING_STRENGTH)) + target.update_total() //give feedback & remove from holder because it's not transferred target.my_atom.audible_message(span_warning(message)) playsound(target.my_atom, 'sound/effects/chemistry/bufferadd.ogg', 50, TRUE) - holder.remove_reagent(type, amount) + if(!copy_only) + volume -= amount + holder.update_total() /datum/reagent/reaction_agent/basic_buffer name = "Strong Basic Buffer" @@ -55,7 +58,7 @@ fallback_icon_state = "base_buffer_fallback" glass_price = DRINK_PRICE_HIGH -/datum/reagent/reaction_agent/basic_buffer/intercept_reagents_transfer(datum/reagents/target, amount) +/datum/reagent/reaction_agent/basic_buffer/intercept_reagents_transfer(datum/reagents/target, amount, copy_only) . = ..() if(!.) return @@ -67,11 +70,14 @@ else message = "The beaker froths as the pH changes!" target.adjust_all_reagents_ph(((amount / target.total_volume) * BUFFER_IONIZING_STRENGTH)) + target.update_total() //give feedback & remove from holder because it's not transferred target.my_atom.audible_message(span_warning(message)) playsound(target.my_atom, 'sound/effects/chemistry/bufferadd.ogg', 50, TRUE) - holder.remove_reagent(type, amount) + if(!copy_only) + volume -= amount + holder.update_total() //purity testor/reaction agent prefactors @@ -91,7 +97,7 @@ ph = 3 color = "#ffffff" -/datum/reagent/reaction_agent/purity_tester/intercept_reagents_transfer(datum/reagents/target, amount) +/datum/reagent/reaction_agent/purity_tester/intercept_reagents_transfer(datum/reagents/target, amount, copy_only) . = ..() if(!.) return @@ -105,7 +111,9 @@ playsound(target.my_atom, 'sound/effects/chemistry/bufferadd.ogg', 50, TRUE) else target.my_atom.audible_message(span_warning("The added reagent doesn't seem to do much.")) - holder.remove_reagent(type, amount) + if(!copy_only) + volume -= amount + holder.update_total() ///How much the reaction speed is sped up by - for 5u added to 100u, an additional step of 1 will be done up to a max of 2x #define SPEED_REAGENT_STRENGTH 20 @@ -116,7 +124,7 @@ ph = 10 color = "#e61f82" -/datum/reagent/reaction_agent/speed_agent/intercept_reagents_transfer(datum/reagents/target, amount) +/datum/reagent/reaction_agent/speed_agent/intercept_reagents_transfer(datum/reagents/target, amount, copy_only) . = ..() if(!.) return FALSE @@ -131,6 +139,8 @@ power *= creation_purity power = clamp(power, 0, 2) reaction.react_timestep(power, creation_purity) - holder.remove_reagent(type, amount) + if(!copy_only) + volume -= amount + holder.update_total() #undef SPEED_REAGENT_STRENGTH diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index a2a050d5ca64..6c9ae29d4c3e 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -74,7 +74,7 @@ mytray.mutation_roll(user) mytray.adjust_toxic(3) //It is still toxic, mind you, but not to the same degree. -/datum/reagent/mutagen/used_on_fish(obj/item/fish/fish) +/datum/reagent/toxin/mutagen/used_on_fish(obj/item/fish/fish) ADD_TRAIT(fish, TRAIT_FISH_MUTAGENIC, type) addtimer(TRAIT_CALLBACK_REMOVE(fish, TRAIT_FISH_MUTAGENIC, type), fish.feeding_frequency * 0.8, TIMER_UNIQUE|TIMER_OVERRIDE) return TRUE @@ -269,13 +269,15 @@ . = ..() affected_mob.cure_fakedeath(type) -/datum/reagent/toxin/zombiepowder/on_transfer(atom/target_atom, methods, trans_volume) +/datum/reagent/toxin/zombiepowder/expose_mob(mob/living/exposed_mob, methods, reac_volume, show_message, touch_protection) . = ..() - var/datum/reagent/zombiepowder = target_atom.reagents.has_reagent(/datum/reagent/toxin/zombiepowder) - if(!zombiepowder || !(methods & (INGEST|INHALE))) + if(!(methods & (INGEST|INHALE))) return - LAZYINITLIST(zombiepowder.data) - zombiepowder.data["method"] |= (INGEST|INHALE) + + var/datum/reagent/zombiepowder = exposed_mob.reagents.has_reagent(/datum/reagent/toxin/zombiepowder) + if(zombiepowder) + LAZYINITLIST(zombiepowder.data) + zombiepowder.data["method"] |= (INGEST|INHALE) /datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/affected_mob, seconds_per_tick, times_fired) . = ..() @@ -450,25 +452,19 @@ taste_description = "spores" chemical_flags = REAGENT_CAN_BE_SYNTHESIZED|REAGENT_NO_RANDOM_RECIPE -/datum/reagent/toxin/spore/on_transfer(atom/A, methods, trans_volume) +/datum/reagent/toxin/spore/expose_mob(mob/living/spore_lung_victim, methods, reac_volume, show_message, touch_protection) . = ..() - if(!isliving(A)) - return if(!(methods & INHALE)) return - - var/mob/living/spore_lung_victim = A - if(!(spore_lung_victim.mob_biotypes & (MOB_HUMANOID | MOB_BEAST))) return - if(prob(min(trans_volume * 10, 80))) + if(prob(min(reac_volume * 10, 80))) to_chat(spore_lung_victim, span_danger("[pick("You have a coughing fit!", "You hack and cough!", "Your lungs burn!")]")) spore_lung_victim.Stun(1 SECONDS) spore_lung_victim.emote("cough") - /datum/reagent/toxin/spore/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() affected_mob.damageoverlaytemp = 60 @@ -1273,7 +1269,7 @@ /datum/reagent/toxin/bonehurtingjuice/used_on_fish(obj/item/fish/fish) if(HAS_TRAIT(fish, TRAIT_FISH_MADE_OF_BONE)) - fish.adjust_health(fish.health - 30) + fish.damage_fish(30) return TRUE /datum/reagent/toxin/bungotoxin diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index ab648158bb72..7ab199a2d015 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -741,12 +741,17 @@ reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE /datum/chemical_reaction/plastic_polymers + results = list(/datum/reagent/plastic_polymers = 10) required_reagents = list(/datum/reagent/fuel/oil = 5, /datum/reagent/toxin/acid = 2, /datum/reagent/ash = 3) + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL + +/datum/chemical_reaction/plastic_polymer_hardening + required_reagents = list(/datum/reagent/plastic_polymers = 10) required_temp = 374 //lazily consistent with soap & other crafted objects generically created with heat. reaction_flags = REACTION_INSTANT reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL -/datum/chemical_reaction/plastic_polymers/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) +/datum/chemical_reaction/plastic_polymer_hardening/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) new /obj/item/stack/sheet/plastic(get_turf(holder.my_atom), round(created_volume)) /datum/chemical_reaction/pax @@ -1046,3 +1051,41 @@ thermic_constant = 80 H_ion_release = 2 reaction_tags = REACTION_TAG_EASY + +/datum/chemical_reaction/glitter + results = list(/datum/reagent/glitter = 1) + required_reagents = list(/datum/reagent/plastic_polymers = 1, /datum/reagent/aluminium = 1) + required_catalysts = list(/datum/reagent/stabilizing_agent = 1) + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE + +/datum/chemical_reaction/glitter_pigmentation + results = list(/datum/reagent/glitter = 1) + required_reagents = list(/datum/reagent/glitter = 1, /datum/reagent/acetone = 1) + mix_message = "the glitter rapidly changes colour!" + reaction_flags = REACTION_INSTANT + reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE + +/datum/chemical_reaction/glitter_pigmentation/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume) + . = ..() + + var/excluded_volume = 0 + var/accumulated_color + + for(var/datum/reagent/reagent in holder.reagent_list) + if(is_type_in_list(reagent, required_reagents)) + excluded_volume += reagent.volume + + for(var/datum/reagent/reagent in holder.reagent_list) + if(!is_type_in_list(reagent, required_reagents)) + + if(accumulated_color) + accumulated_color = BlendRGB(reagent.color, accumulated_color, (reagent.volume/(holder.total_volume-excluded_volume))) + else + accumulated_color = reagent.color + + var/datum/reagent/glitter/glitter = locate(/datum/reagent/glitter) in holder.reagent_list + + glitter.data["colors"] = list("[accumulated_color]" = 100) + glitter.color = accumulated_color + + diff --git a/code/modules/reagents/reagent_containers/cooler_jug.dm b/code/modules/reagents/reagent_containers/cooler_jug.dm new file mode 100644 index 000000000000..89fc7f1ea2ac --- /dev/null +++ b/code/modules/reagents/reagent_containers/cooler_jug.dm @@ -0,0 +1,25 @@ +/obj/item/reagent_containers/cooler_jug + name = "cooler jug" + desc = "A huge, unwieldy jug. Serves as the life force for liquid coolers. It smells like freshly cooled plastic." + icon = 'icons/obj/medical/chemical_tanks.dmi' + icon_state = "cooler_jug" + volume = 200 + custom_materials = list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 4) + reagent_flags = REFILLABLE | DRAINABLE | INJECTABLE | DRAWABLE | TRANSPARENT | SMART_CAP + spillable = TRUE + has_variable_transfer_amount = FALSE + interaction_flags_click = NEED_DEXTERITY + fill_icon_state = "cooler_jug_overlay" + fill_icon_thresholds = list(25, 50, 75, 100) + obj_flags = UNIQUE_RENAME + w_class = WEIGHT_CLASS_BULKY + +/obj/item/reagent_containers/cooler_jug/water + name = "water jug" + desc = "An elegant-looking water cooler jug. There's a water cooler out there, somewhere, waiting to be reunited with this. The jug's mouth smells intoxicatingly stale and metallic." + list_reagents = list(/datum/reagent/water = 200) + +/obj/item/reagent_containers/cooler_jug/punch + name = "punch jug" + desc = "A jug meant for storing fruit punch. It's covered in dozens of warning labels and scary-looking symbols you don't recognize. The smell of sweet punch sticks to the mouth of the jug." + list_reagents = list(/datum/reagent/consumable/fruit_punch = 200) diff --git a/code/modules/reagents/reagent_containers/cups/glassbottle.dm b/code/modules/reagents/reagent_containers/cups/glassbottle.dm index 2438be6bd9c3..391a1bfc241c 100644 --- a/code/modules/reagents/reagent_containers/cups/glassbottle.dm +++ b/code/modules/reagents/reagent_containers/cups/glassbottle.dm @@ -918,7 +918,7 @@ if(!bottle) return ..() icon_state = bottle.icon_state - bottle.reagents.copy_to(src, 100) + bottle.reagents.trans_to(src, 100, copy_only = TRUE) if(istype(bottle, /obj/item/reagent_containers/cup/glass/bottle/juice)) desc += " You're not sure if making this out of a carton was the brightest idea." isGlass = FALSE diff --git a/code/modules/reagents/reagent_containers/cups/mauna_mug.dm b/code/modules/reagents/reagent_containers/cups/mauna_mug.dm new file mode 100644 index 000000000000..b443229358b5 --- /dev/null +++ b/code/modules/reagents/reagent_containers/cups/mauna_mug.dm @@ -0,0 +1,117 @@ +/obj/item/reagent_containers/cup/maunamug + name = "mauna mug" + desc = "A drink served in a classy mug. Now with built-in heating!" + icon = 'icons/obj/devices/mauna_mug.dmi' + icon_state = "maunamug" + base_icon_state = "maunamug" + spillable = TRUE + reagent_flags = OPENCONTAINER + fill_icon_state = "maunafilling" + fill_icon_thresholds = list(25) + var/obj/item/stock_parts/power_store/cell + var/open = FALSE + var/on = FALSE + +/obj/item/reagent_containers/cup/maunamug/Initialize(mapload, vol) + . = ..() + cell = new /obj/item/stock_parts/power_store/cell(src) + +/obj/item/reagent_containers/cup/maunamug/get_cell() + return cell + +/obj/item/reagent_containers/cup/maunamug/examine(mob/user) + . = ..() + . += span_notice("The status display reads: Current temperature: [reagents.chem_temp]K Current Charge:[cell ? "[cell.charge / cell.maxcharge * 100]%" : "No cell found"].") + if(open) + . += span_notice("The battery case is open.") + if(cell && cell.charge > 0) + . += span_notice("Ctrl+Click to toggle the power.") + +/obj/item/reagent_containers/cup/maunamug/process(seconds_per_tick) + ..() + if(on && (!cell || cell.charge <= 0)) //Check if we ran out of power + change_power_status(FALSE) + return FALSE + cell.use(0.005 * STANDARD_CELL_RATE * seconds_per_tick) //Basic cell goes for like 200 seconds, bluespace for 8000 + if(!reagents.total_volume) + return FALSE + var/max_temp = min(500 + (500 * (0.2 * cell.rating)), 1000) // 373 to 1000 + reagents.adjust_thermal_energy(0.4 * cell.maxcharge * reagents.total_volume * seconds_per_tick, max_temp = max_temp) // 4 kelvin every tick on a basic cell. 160k on bluespace + reagents.handle_reactions() + update_appearance() + if(reagents.chem_temp >= max_temp) + change_power_status(FALSE) + audible_message(span_notice("The Mauna Mug lets out a happy beep and turns off!")) + playsound(src, 'sound/machines/chime.ogg', 50) + +/obj/item/reagent_containers/cup/maunamug/Destroy() + if(cell) + QDEL_NULL(cell) + STOP_PROCESSING(SSobj, src) + . = ..() + +/obj/item/reagent_containers/cup/maunamug/item_ctrl_click(mob/user) + if(on) + change_power_status(FALSE) + else + if(!cell || cell.charge <= 0) + return FALSE //No power, so don't turn on + change_power_status(TRUE) + return CLICK_ACTION_SUCCESS + +/obj/item/reagent_containers/cup/maunamug/proc/change_power_status(status) + on = status + if(on) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + update_appearance() + +/obj/item/reagent_containers/cup/maunamug/screwdriver_act(mob/living/user, obj/item/I) + . = ..() + open = !open + to_chat(user, span_notice("You screw the battery case on [src] [open ? "open" : "closed"] .")) + update_appearance() + +/obj/item/reagent_containers/cup/maunamug/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) + add_fingerprint(user) + if(!istype(I, /obj/item/stock_parts/power_store/cell)) + return ..() + if(!open) + to_chat(user, span_warning("The battery case must be open to insert a power cell!")) + return FALSE + if(cell) + to_chat(user, span_warning("There is already a power cell inside!")) + return FALSE + else if(!user.transferItemToLoc(I, src)) + return + cell = I + user.visible_message(span_notice("[user] inserts a power cell into [src]."), span_notice("You insert the power cell into [src].")) + update_appearance() + +/obj/item/reagent_containers/cup/maunamug/attack_hand(mob/living/user, list/modifiers) + if(cell && open) + user.put_in_hands(cell) + cell = null + to_chat(user, span_notice("You remove the power cell from [src].")) + on = FALSE + update_appearance() + return TRUE + return ..() + +/obj/item/reagent_containers/cup/maunamug/update_icon_state() + if(open) + icon_state = "[base_icon_state][cell ? null : "_no"]_bat" + return ..() + icon_state = "[base_icon_state][on ? "_on" : null]" + return ..() + +/obj/item/reagent_containers/cup/maunamug/update_overlays() + . = ..() + if(!reagents.total_volume || reagents.chem_temp < 400) + return + + var/intensity = (reagents.chem_temp - 400) * 1 / 600 //Get the opacity of the incandescent overlay. Ranging from 400 to 1000 + var/mutable_appearance/mug_glow = mutable_appearance(icon, "maunamug_incand") + mug_glow.alpha = 255 * intensity + . += mug_glow diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index e786badff1d7..bd953c1ec6ec 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -55,7 +55,7 @@ trans = reagents.trans_to(affected_mob, amount_per_transfer_from_this, transferred_by = user, methods = INJECT) else reagents.expose(affected_mob, INJECT, fraction) - trans = reagents.copy_to(affected_mob, amount_per_transfer_from_this, copy_methods = INJECT) + trans = reagents.trans_to(affected_mob, amount_per_transfer_from_this, methods = INJECT, copy_only = TRUE) to_chat(user, span_notice("[trans] unit\s injected. [reagents.total_volume] unit\s remaining in [src].")) log_combat(user, affected_mob, "injected", src, "([contained])") return TRUE diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 63c0314560ab..85a390bacca2 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -153,7 +153,8 @@ * On accidental consumption, consume the pill */ /obj/item/reagent_containers/applicator/pill/on_accidental_consumption(mob/living/carbon/victim, mob/living/carbon/user, obj/item/source_item, discover_after = FALSE) - to_chat(victim, span_warning("You swallow something small. [source_item ? "Was that in [source_item]?" : ""]")) + if(victim.get_food_taste_reaction(source_item) != FOOD_LIKED) // If you don't like the food then you notice the pill you just swallowed + to_chat(victim, span_warning("You swallow something small. [source_item ? "Was that in [source_item]?" : ""]")) on_consumption(victim, user) return FALSE diff --git a/code/modules/reagents/reagent_containers/misc.dm b/code/modules/reagents/reagent_containers/rag.dm similarity index 64% rename from code/modules/reagents/reagent_containers/misc.dm rename to code/modules/reagents/reagent_containers/rag.dm index 37185319b4d1..bd73f20fe1fd 100644 --- a/code/modules/reagents/reagent_containers/misc.dm +++ b/code/modules/reagents/reagent_containers/rag.dm @@ -1,121 +1,3 @@ -/obj/item/reagent_containers/cup/maunamug - name = "mauna mug" - desc = "A drink served in a classy mug. Now with built-in heating!" - icon = 'icons/obj/devices/mauna_mug.dmi' - icon_state = "maunamug" - base_icon_state = "maunamug" - spillable = TRUE - reagent_flags = OPENCONTAINER - fill_icon_state = "maunafilling" - fill_icon_thresholds = list(25) - var/obj/item/stock_parts/power_store/cell - var/open = FALSE - var/on = FALSE - -/obj/item/reagent_containers/cup/maunamug/Initialize(mapload, vol) - . = ..() - cell = new /obj/item/stock_parts/power_store/cell(src) - -/obj/item/reagent_containers/cup/maunamug/get_cell() - return cell - -/obj/item/reagent_containers/cup/maunamug/examine(mob/user) - . = ..() - . += span_notice("The status display reads: Current temperature: [reagents.chem_temp]K Current Charge:[cell ? "[cell.charge / cell.maxcharge * 100]%" : "No cell found"].") - if(open) - . += span_notice("The battery case is open.") - if(cell && cell.charge > 0) - . += span_notice("Ctrl+Click to toggle the power.") - -/obj/item/reagent_containers/cup/maunamug/process(seconds_per_tick) - ..() - if(on && (!cell || cell.charge <= 0)) //Check if we ran out of power - change_power_status(FALSE) - return FALSE - cell.use(0.005 * STANDARD_CELL_RATE * seconds_per_tick) //Basic cell goes for like 200 seconds, bluespace for 8000 - if(!reagents.total_volume) - return FALSE - var/max_temp = min(500 + (500 * (0.2 * cell.rating)), 1000) // 373 to 1000 - reagents.adjust_thermal_energy(0.4 * cell.maxcharge * reagents.total_volume * seconds_per_tick, max_temp = max_temp) // 4 kelvin every tick on a basic cell. 160k on bluespace - reagents.handle_reactions() - update_appearance() - if(reagents.chem_temp >= max_temp) - change_power_status(FALSE) - audible_message(span_notice("The Mauna Mug lets out a happy beep and turns off!")) - playsound(src, 'sound/machines/chime.ogg', 50) - -/obj/item/reagent_containers/cup/maunamug/Destroy() - if(cell) - QDEL_NULL(cell) - STOP_PROCESSING(SSobj, src) - . = ..() - -/obj/item/reagent_containers/cup/maunamug/item_ctrl_click(mob/user) - if(on) - change_power_status(FALSE) - else - if(!cell || cell.charge <= 0) - return FALSE //No power, so don't turn on - change_power_status(TRUE) - return CLICK_ACTION_SUCCESS - -/obj/item/reagent_containers/cup/maunamug/proc/change_power_status(status) - on = status - if(on) - START_PROCESSING(SSobj, src) - else - STOP_PROCESSING(SSobj, src) - update_appearance() - -/obj/item/reagent_containers/cup/maunamug/screwdriver_act(mob/living/user, obj/item/I) - . = ..() - open = !open - to_chat(user, span_notice("You screw the battery case on [src] [open ? "open" : "closed"] .")) - update_appearance() - -/obj/item/reagent_containers/cup/maunamug/attackby(obj/item/I, mob/user, list/modifiers, list/attack_modifiers) - add_fingerprint(user) - if(!istype(I, /obj/item/stock_parts/power_store/cell)) - return ..() - if(!open) - to_chat(user, span_warning("The battery case must be open to insert a power cell!")) - return FALSE - if(cell) - to_chat(user, span_warning("There is already a power cell inside!")) - return FALSE - else if(!user.transferItemToLoc(I, src)) - return - cell = I - user.visible_message(span_notice("[user] inserts a power cell into [src]."), span_notice("You insert the power cell into [src].")) - update_appearance() - -/obj/item/reagent_containers/cup/maunamug/attack_hand(mob/living/user, list/modifiers) - if(cell && open) - user.put_in_hands(cell) - cell = null - to_chat(user, span_notice("You remove the power cell from [src].")) - on = FALSE - update_appearance() - return TRUE - return ..() - -/obj/item/reagent_containers/cup/maunamug/update_icon_state() - if(open) - icon_state = "[base_icon_state][cell ? null : "_no"]_bat" - return ..() - icon_state = "[base_icon_state][on ? "_on" : null]" - return ..() - -/obj/item/reagent_containers/cup/maunamug/update_overlays() - . = ..() - if(!reagents.total_volume || reagents.chem_temp < 400) - return - - var/intensity = (reagents.chem_temp - 400) * 1 / 600 //Get the opacity of the incandescent overlay. Ranging from 400 to 1000 - var/mutable_appearance/mug_glow = mutable_appearance(icon, "maunamug_incand") - mug_glow.alpha = 255 * intensity - . += mug_glow - /obj/item/rag name = "damp rag" desc = "For cleaning up messes, you suppose." diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index e3f4e36a7a4f..a04044a50eb1 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -393,7 +393,7 @@ righthand_file = 'icons/mob/inhands/items_righthand.dmi' w_class = WEIGHT_CLASS_TINY reagent_flags = NONE - list_reagents = list(/datum/reagent/glitter/confetti = 15) + list_reagents = list(/datum/reagent/confetti = 15) volume = 15 amount_per_transfer_from_this = 5 can_toggle_range = FALSE diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 2fc011246f79..2454416062a9 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -67,7 +67,7 @@ to_chat(user, span_warning("You cannot directly fill [target]!")) return ITEM_INTERACT_BLOCKING - if(target.reagents.total_volume >= target.reagents.maximum_volume) + if(target.reagents.holder_full()) to_chat(user, span_notice("[target] is full.")) return ITEM_INTERACT_BLOCKING @@ -82,7 +82,7 @@ return ITEM_INTERACT_BLOCKING if(!reagents.total_volume) return ITEM_INTERACT_BLOCKING - if(living_target.reagents.total_volume >= living_target.reagents.maximum_volume) + if(living_target.reagents.holder_full()) return ITEM_INTERACT_BLOCKING living_target.visible_message( span_danger("[user] injects [living_target] with the syringe!"), @@ -109,7 +109,7 @@ SEND_SIGNAL(target, COMSIG_LIVING_TRY_SYRINGE_WITHDRAW, user) - if(reagents.total_volume >= reagents.maximum_volume) + if(reagents.holder_full()) to_chat(user, span_notice("[src] is full.")) return ITEM_INTERACT_BLOCKING @@ -123,7 +123,7 @@ ) if(!do_after(user, CHEM_INTERACT_DELAY(3 SECONDS, user), target, extra_checks = CALLBACK(src, PROC_REF(try_syringe), living_target, user))) return ITEM_INTERACT_BLOCKING - if(reagents.total_volume >= reagents.maximum_volume) + if(reagents.holder_full()) return ITEM_INTERACT_BLOCKING if(living_target.transfer_blood_to(src, drawn_amount)) user.visible_message(span_notice("[user] takes a blood sample from [living_target].")) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index f50d9c398327..3e1ebf3e4614 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -1,4 +1,5 @@ #define REAGENT_SPILL_DIVISOR 200 +#define COOLER_JUG_EJECT_TIME (8 SECONDS) /obj/structure/reagent_dispensers name = "Dispenser" @@ -354,13 +355,30 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/reagent_dispensers/wall/peppertank, 3 find_and_hang_on_wall() /obj/structure/reagent_dispensers/water_cooler - name = "liquid cooler" - desc = "A machine that dispenses liquid to drink." - icon = 'icons/obj/machines/vending.dmi' + name = "water cooler" + desc = "A machine that cools and dispenses liquids to drink. The 'hot' handle doesn't seem to do anything." icon_state = "water_cooler" anchored = TRUE - tank_volume = 500 - var/paper_cups = 25 //Paper cups left from the cooler + tank_volume = 200 + can_be_tanked = FALSE + max_integrity = 150 + ///Paper cups left from the cooler. + var/paper_cups = 25 + ///Reference to our jug. + var/obj/item/reagent_containers/cooler_jug/our_jug + ///Have we been tipped? + var/tipped = FALSE + +/obj/structure/reagent_dispensers/water_cooler/Initialize(mapload) + . = ..() + if(prob(2) && mapload) + reagents.convert_reagent(/datum/reagent/water, /datum/reagent/consumable/fruit_punch) + create_jug() + refresh_appearance() + +/obj/structure/reagent_dispensers/water_cooler/Destroy() + . = ..() + our_jug = null /obj/structure/reagent_dispensers/water_cooler/examine(mob/user) . = ..() @@ -375,14 +393,202 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/reagent_dispensers/wall/peppertank, 3 . = ..() if(.) return + + + if(tipped) + balloon_alert(user, "un-tipping...") + if(!do_after(user, 5 SECONDS, src)) + return + tipped = FALSE + refresh_appearance() + return + + + if(user.combat_mode && our_jug) + balloon_alert(user, "removing jug...") + if(!do_after(user, COOLER_JUG_EJECT_TIME, src)) + return + eject_jug(user) + return + if(!paper_cups) to_chat(user, span_warning("There aren't any cups left!")) return user.visible_message(span_notice("[user] takes a cup from [src]."), span_notice("You take a paper cup from [src].")) - var/obj/item/reagent_containers/cup/glass/sillycup/S = new(get_turf(src)) - user.put_in_hands(S) + var/obj/item/reagent_containers/cup/glass/sillycup/new_cup = new(get_turf(src)) + user.put_in_hands(new_cup) paper_cups-- +/obj/structure/reagent_dispensers/water_cooler/update_overlays() + . = ..() + if(!reagents) + return + + if(!reagents.total_volume) + return + + var/mixcolor + var/vol_counter = 0 + var/vol_temp + + for(var/datum/reagent/stored_reagent as anything in reagents.reagent_list) + vol_temp = stored_reagent.volume + vol_counter += vol_temp + + var/chosen_color = stored_reagent.color + if(istype(stored_reagent, /datum/reagent/water)) + if(!mixcolor) + mixcolor = "#2694D6" //Override the water to be a nice blue + continue + else + chosen_color = "#2694D6" + else + if(!mixcolor) + mixcolor = stored_reagent.color + continue + else + chosen_color = stored_reagent.color + + if (length(mixcolor) >= length(chosen_color)) + mixcolor = BlendRGB(mixcolor, chosen_color, vol_temp/vol_counter) + else + mixcolor = BlendRGB(chosen_color, mixcolor, vol_temp/vol_counter) + + if(mixcolor) + var/overlay_tag + if(vol_counter > 100) + overlay_tag = "100" + else + overlay_tag = "50" //Can't be 0, because there'd be no mixcolor + var/mutable_appearance/tank_overlay = mutable_appearance('icons/obj/medical/chemical_tanks.dmi', "water_cooler_overlay[overlay_tag]") + tank_overlay.color = mixcolor + . += tank_overlay + +/obj/structure/reagent_dispensers/water_cooler/wrench_act(mob/living/user, obj/item/tool) + if(user.combat_mode) + return NONE + + . = ITEM_INTERACT_BLOCKING + if(default_unfasten_wrench(user, tool, time = 6 SECONDS) == SUCCESSFUL_UNFASTEN) + return ITEM_INTERACT_SUCCESS + +/obj/structure/reagent_dispensers/water_cooler/attack_hand_secondary(mob/user, modifiers) + if(tipped) + balloon_alert(user, "it's already tipped!") + return + + if(anchored) + balloon_alert(user, "it's anchored!") + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + if(!do_after(user, 1.5 SECONDS, src)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + INVOKE_ASYNC(src, PROC_REF(boom), user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +/obj/structure/reagent_dispensers/water_cooler/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!istype(tool, /obj/item/reagent_containers/cooler_jug)) + return + + if(tipped) + balloon_alert(user, "it's tipped!") + return + + var/obj/item/reagent_containers/cooler_jug/new_jug = tool + balloon_alert(user, "replacing jug...") + if(!do_after(user, COOLER_JUG_EJECT_TIME, src)) + return + + if(!user.transferItemToLoc(new_jug, src)) + return ITEM_INTERACT_BLOCKING + + eject_jug(user, our_jug) + our_jug = new_jug + our_jug.reagents.trans_to(reagents, tank_volume) + balloon_alert(user, "attached") + user.log_message("attached a [new_jug] to [src] at [AREACOORD(src)] containing ([new_jug.reagents.get_reagent_log_string()])", LOG_ATTACK) + add_fingerprint(user) + refresh_appearance() + return ITEM_INTERACT_SUCCESS + +/obj/structure/reagent_dispensers/water_cooler/boom() + if(QDELETED(src)) + return + var/liquid_amount = 0 + if(reagents.total_volume) + visible_message(span_danger("\The [src] flips on it's side and spills everywhere!")) + chem_splash(get_turf(src), null, 2 + (reagents.total_volume + liquid_amount) / 1000, list(reagents), extra_heat=(liquid_amount / 50), adminlog=(liquid_amount<25)) + eject_jug(throw_away = TRUE) + playsound(src, 'sound/effects/glass/glassbash.ogg', 100) + tip_over() + +/obj/structure/reagent_dispensers/water_cooler/proc/refresh_appearance() + if(tipped) + icon_state = "water_cooler_disgraced" + else + if(!our_jug) + icon_state = "water_cooler_forlorn" + else + icon_state = "water_cooler" + + update_overlays() + update_appearance() + +///Creates an empty jug inside of the cooler. Doesn't need to be filled bc it absorbs the cooler's reagent on eject. +/obj/structure/reagent_dispensers/water_cooler/proc/create_jug() + our_jug = new /obj/item/reagent_containers/cooler_jug(src) + +///Eject the jug in a variety of ways. If there is a user, the jug goes into their hands. throw_away is passed on tip, to empty and throw the jug away. We delete the reagents since we create a splash before this is called. +/obj/structure/reagent_dispensers/water_cooler/proc/eject_jug(mob/living/user, throw_away = FALSE) + if(!our_jug) + return + + if(user) + user.put_in_hands(our_jug) + else + our_jug.forceMove(drop_location()) + + if(throw_away) + var/turf/turf_to_throw_at = get_ranged_target_turf(src, pick(GLOB.alldirs), 2) + our_jug.throw_at(turf_to_throw_at, 2, 3) + reagents.remove_all(tank_volume) //Gets spilled on floor during boom() + else + reagents.trans_to(our_jug.reagents, tank_volume) + + our_jug = null + refresh_appearance() + +///Handles the visual stuff related to the cooler itself tipping. +/obj/structure/reagent_dispensers/water_cooler/proc/tip_over() + tipped = TRUE + refresh_appearance() + +///Pre-tipped version for mapping. +/obj/structure/reagent_dispensers/water_cooler/fallen + tipped = TRUE + reagent_id = null + anchored = FALSE + +/obj/structure/reagent_dispensers/water_cooler/fallen/Initialize(mapload) + . = ..() + tip_over() + +/obj/structure/reagent_dispensers/water_cooler/fallen/create_jug() + return + +/obj/structure/reagent_dispensers/water_cooler/jugless + reagent_id = null + anchored = FALSE + +/obj/structure/reagent_dispensers/water_cooler/jugless/create_jug() + return + +///Punch cooler. Starts full of healing juice. In case anyone wants to map one somewhere as a healing station. +/obj/structure/reagent_dispensers/water_cooler/punch_cooler + name = "punch cooler" + desc = "A machine that dispenses fruit punch to drink. This juice is unbearably sweet, and can only be safely consumed in the presence of a liquid cooler. Engage with caution." + reagent_id = /datum/reagent/consumable/fruit_punch + /obj/structure/reagent_dispensers/beerkeg name = "beer keg" desc = "Beer is liquid bread, it's good for you..." @@ -469,3 +675,4 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/reagent_dispensers/wall/virusfood, 30 accepts_rig = TRUE #undef REAGENT_SPILL_DIVISOR +#undef COOLER_JUG_EJECT_TIME diff --git a/code/modules/religion/burdened/psyker.dm b/code/modules/religion/burdened/psyker.dm index 6a608059c495..409ead91fdd6 100644 --- a/code/modules/religion/burdened/psyker.dm +++ b/code/modules/religion/burdened/psyker.dm @@ -7,9 +7,9 @@ /datum/action/cooldown/spell/charged/psychic_booster, /datum/action/cooldown/spell/forcewall/psychic_wall, ) - organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_CAN_STRIP, TRAIT_ANTIMAGIC_NO_SELFBLOCK) w_class = WEIGHT_CLASS_NORMAL var/does_it_blind = FALSE + variant_traits_added = list(TRAIT_ANTIMAGIC_NO_SELFBLOCK) /obj/item/organ/brain/psyker/on_mob_insert(mob/living/carbon/inserted_into) . = ..() @@ -100,15 +100,16 @@ if(!burden || burden.burden_level < 9) to_chat(human_user, span_warning("You aren't burdened enough.")) return FALSE - for(var/obj/item/nullrod/null_rod in get_turf(religious_tool)) - transformation_target = null_rod - return ..() + for(var/obj/item/possible_rod in get_turf(religious_tool)) + if(HAS_TRAIT(possible_rod, TRAIT_NULLROD_ITEM)) + transformation_target = possible_rod + return ..() to_chat(human_user, span_warning("You need to place a null rod on [religious_tool] to do this!")) return FALSE /datum/religion_rites/nullrod_transformation/invoke_effect(mob/living/user, atom/movable/religious_tool) ..() - var/obj/item/nullrod/null_rod = transformation_target + var/obj/item/null_rod = transformation_target transformation_target = null if(QDELETED(null_rod) || null_rod.loc != get_turf(religious_tool)) to_chat(user, span_warning("Your target left the altar!")) diff --git a/code/modules/religion/pyre/pyre_rites.dm b/code/modules/religion/pyre/pyre_rites.dm index 75aaf1c6286c..0a6cde9260c8 100644 --- a/code/modules/religion/pyre/pyre_rites.dm +++ b/code/modules/religion/pyre/pyre_rites.dm @@ -14,7 +14,7 @@ "... allow this unworthy apparel to serve you ...", "... make it strong enough to burn a thousand times and more ...") invoke_msg = "... Come forth in your new form, and join the unmelting wax of the one true flame!" - favor_cost = 1000 + favor_cost = 700 ///the piece of clothing that will be fireproofed, only one per rite var/obj/item/clothing/chosen_clothing @@ -123,7 +123,7 @@ "... make it burn bright ...", ) invoke_msg = "... a blazing star is born!" - favor_cost = 2000 + favor_cost = 1500 ///arrow to enchant var/obj/item/ammo_casing/arrow/holy/enchant_target diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 50ed6e43f616..078e3aabcc0a 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -411,3 +411,13 @@ desc = "Allows for the construction of circuit boards used to build a console that enables the targetting of custom flight locations" id = "shuttle_docker" build_path = /obj/item/circuitboard/computer/shuttle/docker + +/datum/design/board/quantum_console + name = "Quantum Console Board" + desc = "Allows for the construction of circuit boards used to build a Quantum Console." + id = "quantum_console" + build_path = /obj/item/circuitboard/computer/quantum_console + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index fb7744459f46..086b4ca947b5 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -1395,3 +1395,23 @@ RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_ATMOS ) departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/board/netpod + name = "Netpod Board" + desc = "The circuit board for a netpod." + id = "netpod" + build_path = /obj/item/circuitboard/machine/netpod + category = list( + RND_CATEGORY_MACHINE + RND_SUBCATEGORY_MACHINE_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/board/byteforge + name = "Byteforge Board" + desc = "Allows for the construction of circuit boards used to build a Byteforge." + id = "byteforge" + build_path = /obj/item/circuitboard/machine/byteforge + category = list( + RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO + ) + departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 65421509c483..274f5f8b11d9 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -907,104 +907,6 @@ RND_CATEGORY_MECHFAB_SAVANNAH_IVANOV + RND_SUBCATEGORY_MECHFAB_CHASSIS ) -//Justice (emaged only) -/datum/design/justice_chassis - name = "Exosuit Chassis (\"Justice\")" - id = "justice_chassis" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/chassis/justice - materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*20) - construction_time = 10 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - -/datum/design/justice_torso - name = "Exosuit Torso (\"Justice\")" - id = "justice_torso" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/part/justice_torso - materials = list( - /datum/material/iron = SHEET_MATERIAL_AMOUNT * 50, - /datum/material/silver = SHEET_MATERIAL_AMOUNT * 5, - ) - construction_time = 30 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - -/datum/design/justice_left_arm - name = "Exosuit Left Arm (\"Justice\")" - id = "justice_left_arm" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/part/justice_left_arm - materials = list( - /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, - /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2, - ) - construction_time = 10 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - -/datum/design/justice_right_arm - name = "Exosuit Right Arm (\"Justice\")" - id = "justice_right_arm" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/part/justice_right_arm - materials = list( - /datum/material/iron=SHEET_MATERIAL_AMOUNT*5, - /datum/material/silver=SHEET_MATERIAL_AMOUNT*2, - ) - construction_time = 10 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - -/datum/design/justice_left_leg - name = "Exosuit Left Leg (\"Justice\")" - id = "justice_left_leg" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/part/justice_left_leg - materials = list( - /datum/material/iron=SHEET_MATERIAL_AMOUNT*5, - /datum/material/titanium=SHEET_MATERIAL_AMOUNT*2, - ) - construction_time = 10 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - -/datum/design/justice_right_leg - name = "Exosuit Right Leg (\"Justice\")" - id = "justice_right_leg" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/part/justice_right_leg - materials = list( - /datum/material/iron=SHEET_MATERIAL_AMOUNT*5, - /datum/material/titanium=SHEET_MATERIAL_AMOUNT*2, - ) - construction_time = 10 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - -/datum/design/justice_armor - name = "Exosuit Armor (\"Justice\")" - id = "justice_armor" - build_type = MECHFAB - build_path = /obj/item/mecha_parts/part/justice_armor - materials = list( - /datum/material/silver=SHEET_MATERIAL_AMOUNT*10, - /datum/material/titanium=SHEET_MATERIAL_AMOUNT*10, - /datum/material/plastic=SHEET_MATERIAL_AMOUNT*5, - /datum/material/diamond=SHEET_MATERIAL_AMOUNT*1, - ) - construction_time = 20 SECONDS - category = list( - RND_CATEGORY_MECHFAB_JUSTICE + RND_SUBCATEGORY_MECHFAB_CHASSIS - ) - //Clarke /datum/design/clarke_chassis name = "Exosuit Chassis (\"Clarke\")" diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 6221444ab9d3..dd1298af175e 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -641,7 +641,7 @@ materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT, /datum/material/glass =HALF_SHEET_MATERIAL_AMOUNT) build_path = /obj/item/holosign_creator category = list( - RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_JANITORIAL ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index eed1eb9a8b68..8b4d70749872 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -212,3 +212,68 @@ RND_CATEGORY_STOCK_PARTS + RND_SUBCATEGORY_STOCK_PARTS_TURBINE ) departmental_flags = DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/diode_disk_stamina + name = "Electrodisruptive Diode Disk" + desc = "A stamina damaging and supermatter crystal healing Diode Disk." + id = "diode_disk_stamina" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/gold =SMALL_MATERIAL_AMOUNT) + construction_time = 0.5 SECONDS + build_path = /obj/item/emitter_disk/stamina + category = list( + RND_CATEGORY_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/diode_disk_healing + name = "Bioregenerative Diode Disk" + desc = "A living creature healing Diode Disk." + id = "diode_disk_healing" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/silver =SMALL_MATERIAL_AMOUNT) //silver is medical metal. Why? who knows. + construction_time = 0.5 SECONDS + build_path = /obj/item/emitter_disk/healing + category = list( + RND_CATEGORY_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/diode_disk_incendiary + name = "Conflagratory Diode Disk" + desc = "A high energy incendiary Diode Disk." + id = "diode_disk_incendiary" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/diamond =SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT * 2) + construction_time = 0.5 SECONDS + build_path = /obj/item/emitter_disk/incendiary + category = list( + RND_CATEGORY_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/diode_disk_sanity + name = "Psychosiphoning Diode Disk" + desc = "An supermatter comforting creature depressing Diode Disk." + id = "diode_disk_sanity" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/uranium =SMALL_MATERIAL_AMOUNT * 0.5) //Uranium, the metal of love and warmth (from decay heat). + construction_time = 0.5 SECONDS + build_path = /obj/item/emitter_disk/sanity + category = list( + RND_CATEGORY_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING + +/datum/design/diode_disk_magnetic + name = "Magnetogenerative Diode Disk" + desc = "A mol absorbing item attracting Diode Disk." + id = "diode_disk_magnetic" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5, /datum/material/glass =SMALL_MATERIAL_AMOUNT, /datum/material/titanium =SMALL_MATERIAL_AMOUNT * 0.5) + construction_time = 0.5 SECONDS + build_path = /obj/item/emitter_disk/magnetic + category = list( + RND_CATEGORY_EQUIPMENT + ) + departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 127e3cf5a317..d0a54cb7d4a6 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -78,7 +78,7 @@ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 3, /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT * 1.5, ) - build_path = /obj/item/ammo_box/magazine/m38/true + build_path = /obj/item/ammo_box/c38/true category = list( RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO ) @@ -182,7 +182,7 @@ departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c38_true_mag - name = "Magazine (.38 Truee Strike) (Lethal)" + name = "Magazine (.38 True Strike) (Lethal)" desc = "Designed to tactically reload a NT BR-38 Battle Rifle. Bullets bounce towards new targets with surprising accuracy." id = "c38_true_strike_mag" build_type = PROTOLATHE | AWAY_LATHE @@ -198,7 +198,7 @@ departmental_flags = DEPARTMENT_BITFLAG_SECURITY /datum/design/c38_flare_mag - name = "Magazine (.38 Flae) (VERY Lethal)" + name = "Magazine (.38 Flare) (VERY Lethal)" desc = "Designed to tactically reload a NT BR-38 Battle Rifle. Flare casings launch a concentrated particle beam towards a target, lighting them up for everyone to see." id = "c38_flare_mag" build_type = PROTOLATHE | AWAY_LATHE diff --git a/code/modules/research/part_replacer.dm b/code/modules/research/part_replacer.dm index 538310264449..0b4619a862ad 100644 --- a/code/modules/research/part_replacer.dm +++ b/code/modules/research/part_replacer.dm @@ -24,9 +24,10 @@ return attacked_machinery.exchange_parts(user, src) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_FAILURE -///Plays the sound for RPED exhanging or installing parts. -/obj/item/storage/part_replacer/proc/play_rped_sound() +///Plays the sound & flick animation for RPED exhanging or installing parts. +/obj/item/storage/part_replacer/proc/play_rped_effect() playsound(src, 'sound/items/tools/rped.ogg', 40, TRUE) + flick("[icon_state]_active", src) /** * Gets parts sorted in order of their tier @@ -72,11 +73,12 @@ /obj/item/storage/part_replacer/bluespace/ranged_interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) return interact_with_atom(interacting_with, user, modifiers) -/obj/item/storage/part_replacer/bluespace/play_rped_sound() +/obj/item/storage/part_replacer/bluespace/play_rped_effect() if(prob(1)) playsound(src, 'sound/items/pshoom/pshoom_2.ogg', 40, TRUE) - return - playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, TRUE) + else + playsound(src, 'sound/items/pshoom/pshoom.ogg', 40, TRUE) + flick("[icon_state]_active", src) /** * Signal handler for when a part has been inserted into the BRPED. diff --git a/code/modules/research/techweb/nodes/atmos_nodes.dm b/code/modules/research/techweb/nodes/atmos_nodes.dm index e063629af97a..3da5b00ec400 100644 --- a/code/modules/research/techweb/nodes/atmos_nodes.dm +++ b/code/modules/research/techweb/nodes/atmos_nodes.dm @@ -63,6 +63,7 @@ "pacman", "mech_generator", "plasmacutter", + "diode_disk_incendiary", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) discount_experiments = list(/datum/experiment/ordnance/gaseous/plasma = TECHWEB_TIER_2_POINTS) diff --git a/code/modules/research/techweb/nodes/engi_nodes.dm b/code/modules/research/techweb/nodes/engi_nodes.dm index e360d25297f3..a7b0118ed19a 100644 --- a/code/modules/research/techweb/nodes/engi_nodes.dm +++ b/code/modules/research/techweb/nodes/engi_nodes.dm @@ -180,6 +180,7 @@ "tray_goggles", "geigercounter", "woodgen", // MASSMETA EDIT (woodgen) + "diode_disk_stamina" ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS) announce_channels = list(RADIO_CHANNEL_ENGINEERING) @@ -228,6 +229,7 @@ "modular_shield_charger", "modular_shield_well", "modular_shield_console", + "diode_disk_magnetic", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS) diff --git a/code/modules/research/techweb/nodes/mech_nodes.dm b/code/modules/research/techweb/nodes/mech_nodes.dm index 4a7e589ac7ec..d4238e1b6f05 100644 --- a/code/modules/research/techweb/nodes/mech_nodes.dm +++ b/code/modules/research/techweb/nodes/mech_nodes.dm @@ -203,22 +203,6 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS) announce_channels = list(RADIO_CHANNEL_SCIENCE) -/datum/techweb_node/justice - id = "mecha_justice" - display_name = "EXOSUIT: Justice" - description = "Justice exosuit designs" - design_ids = list( - "justice_armor", - "justice_chassis", - "justice_left_arm", - "justice_left_leg", - "justice_right_arm", - "justice_right_leg", - "justice_torso", - ) - hidden = TRUE - illegal_mech_node = TRUE - /datum/techweb_node/mech_energy_guns id = TECHWEB_NODE_MECH_ENERGY_GUNS display_name = "Exosuit Energy Guns" diff --git a/code/modules/research/techweb/nodes/medbay_nodes.dm b/code/modules/research/techweb/nodes/medbay_nodes.dm index e2cc5405c4b3..74d3b0c51c90 100644 --- a/code/modules/research/techweb/nodes/medbay_nodes.dm +++ b/code/modules/research/techweb/nodes/medbay_nodes.dm @@ -85,6 +85,8 @@ "autodoc", "organdoc", // MASSMETA EDIT END + "diode_disk_healing", + "diode_disk_sanity", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS) required_experiments = list(/datum/experiment/scanning/reagent/haloperidol) diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index bdc19a70405d..66935bcd5325 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -278,6 +278,5 @@ Charged extracts: /obj/item/slimecross/charged/rainbow/do_effect(mob/user) user.visible_message(span_warning("[src] swells and splits into three new slimes!")) for(var/i in 1 to 3) - var/mob/living/basic/slime/new_slime = new (get_turf(user)) - new_slime.random_colour() + new /mob/living/basic/slime/random(get_turf(user)) return ..() diff --git a/code/modules/research/xenobiology/crossbreeding/regenerative.dm b/code/modules/research/xenobiology/crossbreeding/regenerative.dm index e42d567342e9..c153312cb758 100644 --- a/code/modules/research/xenobiology/crossbreeding/regenerative.dm +++ b/code/modules/research/xenobiology/crossbreeding/regenerative.dm @@ -200,17 +200,16 @@ Regenerative extracts: /obj/item/slimecross/regenerative/green colour = SLIME_TYPE_GREEN - effect_desc = "Fully heals the target and changes the spieces or color of a slime or jellyperson." + effect_desc = "Fully heals the target and changes the species or color of a slime or jellyperson." /obj/item/slimecross/regenerative/green/core_effect(mob/living/target, mob/user) if(isslime(target)) target.visible_message(span_warning("The [target] suddenly changes color!")) var/mob/living/basic/slime/target_slime = target - target_slime.random_colour() + target_slime.set_slime_type() if(isjellyperson(target)) target.reagents.add_reagent(/datum/reagent/mutationtoxin/jelly,5) - /obj/item/slimecross/regenerative/pink colour = SLIME_TYPE_PINK effect_desc = "Fully heals the target and injects them with some krokodil." diff --git a/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm b/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm index d04a7f852da3..cfc3e56bc5b1 100644 --- a/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm +++ b/code/modules/research/xenobiology/vatgrowing/biopsy_tool.dm @@ -5,15 +5,26 @@ icon = 'icons/obj/science/vatgrowing.dmi' icon_state = "biopsy" worn_icon_state = "biopsy" + base_icon_state = "biopsy" + /// Whether or not we can swab objects + var/can_swap_objects = FALSE ///Adds the swabbing component to the biopsy tool /obj/item/biopsy_tool/Initialize(mapload) . = ..() - AddComponent(/datum/component/swabbing, FALSE, FALSE, TRUE, CALLBACK(src, PROC_REF(update_swab_icon)), max_items = 1) - + AddComponent(/datum/component/swabbing, can_swap_objects, FALSE, TRUE, CALLBACK(src, PROC_REF(update_swab_icon)), max_items = 1) /obj/item/biopsy_tool/proc/update_swab_icon(list/swabbed_items) if(LAZYLEN(swabbed_items)) - icon_state = "biopsy_full" + icon_state = base_icon_state + "_full" else - icon_state = "biopsy" + icon_state = base_icon_state + +/obj/item/biopsy_tool/organ + name = "tissue biopsy tool" + desc = "Used to retrieve cell lines from organ tissue and organisms. Don't worry, it won't sting." + icon_state = "biopsy_organ" + base_icon_state = "biopsy_organ" + + can_swap_objects = TRUE + diff --git a/code/modules/research/xenobiology/vatgrowing/microscope.dm b/code/modules/research/xenobiology/vatgrowing/microscope.dm index c3c7369981e1..d96f577db669 100644 --- a/code/modules/research/xenobiology/vatgrowing/microscope.dm +++ b/code/modules/research/xenobiology/vatgrowing/microscope.dm @@ -120,10 +120,13 @@ balloon_alert(user, "dish removed") return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN +/obj/structure/microscope/unanchored + anchored = FALSE + /datum/crafting_recipe/microscope name = "Microscope" result = /obj/structure/microscope - time = 30 + time = 3 SECONDS tool_behaviors = list(TOOL_SCREWDRIVER) reqs = list( /obj/item/stack/sheet/glass = 1, diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm index 72cb3031841e..4a564b58b130 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm @@ -112,6 +112,7 @@ if(vat_creature.mutate()) return mutate_color(thing) + SEND_SIGNAL(vat.biological_sample, COMSIG_SAMPLE_DEPOSITED, thing) ///Overriden to show more info like needs, supplementary and supressive reagents and also growth. /datum/micro_organism/cell_line/get_details(show_details) @@ -137,23 +138,30 @@ var/hue_shift = 1 //This affix is added to the name of the atom, to help players understand and converse about the different rarity levels. var/rarity_affix = "glitched" + // for adding some unique effects for subtypes, should you wish to do so + var/strength_factor = 1 switch(rand(1, 100)) if(1 to 35) //35% chance : painted hue_shift = 0.15 rarity_affix = "painted" + strength_factor = 1.2 if(36 to 70) //35% chance : mutant hue_shift = 0.85 //this value is equivalent in distance as the painted tier, just in the other direction. rarity_affix = "mutant" + strength_factor = 1.4 if(71 to 83) //13% chance : rare hue_shift = 0.3 rarity_affix = "rare" + strength_factor = 1.6 if(84 to 95) //12% chance : shiny hue_shift = 0.7 rarity_affix = "shiny" + strength_factor = 2 if(96 to 100) //5% chance : mutant king hue_shift = 0.5 //Best in show, most extreme color change. rarity_affix = "mutant king" //The name is up to debate, since cyto is all about freaky creatures I thought it was good choice over something like "cosmic" or "regal". + strength_factor = 2.5 var/list/mutant_shift_matrix = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1, hue_shift,0,0,0) //matrix for our colour shifting. @@ -163,3 +171,5 @@ if(isliving(beautiful_mutant)) //update the real name var if it's actually a living mob var/mob/living/living_mutie = beautiful_mutant living_mutie.real_name = living_mutie.name + + return strength_factor diff --git a/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/organs.dm b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/organs.dm new file mode 100644 index 000000000000..2685885644c7 --- /dev/null +++ b/code/modules/research/xenobiology/vatgrowing/samples/cell_lines/organs.dm @@ -0,0 +1,197 @@ +/// Cell lines for organ cytology, letting you duplicate or grow new mutant strains! +/datum/micro_organism/cell_line/organs + desc = "dense tissue" + growth_rate = 1 + consumption_rate = REAGENTS_METABOLISM + +/datum/micro_organism/cell_line/organs/mutate_color(atom/beautiful_mutant) + . = ..() + + if(isorgan(beautiful_mutant)) + var/obj/item/organ/organ = beautiful_mutant + // Rare affix organs get more health + organ.maxHealth *= . + +/datum/micro_organism/cell_line/organs/heart + desc = "dense heart tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/love = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + suppressive_reagents = list( + /datum/reagent/toxin/mutagen = -2, + ) + + resulting_atom = /obj/item/organ/heart + +/datum/micro_organism/cell_line/organs/heart/evolved + desc = "dense evolved heart tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/love = 6, + /datum/reagent/toxin/mutagen = 4, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + resulting_atom = /obj/item/organ/heart/evolved + +/datum/micro_organism/cell_line/organs/heart/sacred + desc = "dense sacred heart tissue" + growth_rate = parent_type::growth_rate * 0.5 + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue, /datum/reagent/water/holywater) + + supplementary_reagents = list( + /datum/reagent/love = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + resulting_atom = /obj/item/organ/heart/evolved/sacred + +/datum/micro_organism/cell_line/organs/heart/corrupt + desc = "dense corrupted heart tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/hellwater = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + suppressive_reagents = list( + /datum/reagent/water/holywater = -3, + ) + + resulting_atom = /obj/item/organ/heart/corrupt + +/datum/micro_organism/cell_line/organs/lungs + desc = "dense lung tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/medicine/salbutamol = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + suppressive_reagents = list( + /datum/reagent/toxin/mutagen = -2, + ) + + resulting_atom = /obj/item/organ/lungs + +/datum/micro_organism/cell_line/organs/lungs/evolved + desc = "dense evolved lung tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/medicine/salbutamol = 6, + /datum/reagent/toxin/mutagen = 4, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + resulting_atom = /obj/item/organ/lungs/evolved + +/datum/micro_organism/cell_line/organs/liver + desc = "dense liver tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/iron = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + suppressive_reagents = list( + /datum/reagent/toxin/mutagen = -2, + ) + + resulting_atom = /obj/item/organ/liver + +/datum/micro_organism/cell_line/organs/liver/evolved + desc = "dense evolved liver tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue) + + supplementary_reagents = list( + /datum/reagent/iron = 6, + /datum/reagent/toxin/mutagen = 4, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + resulting_atom = /obj/item/organ/liver/evolved + +/datum/micro_organism/cell_line/organs/liver/bloody + desc = "spongy liver tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue, /datum/reagent/blood) + + supplementary_reagents = list( + /datum/reagent/iron = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + resulting_atom = /obj/item/organ/liver/bloody + +/datum/micro_organism/cell_line/organs/liver/distillery + desc = "alcoholic liver tissue" + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue, /datum/reagent/consumable/ethanol) + + supplementary_reagents = list( + /datum/reagent/iron = 6, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + suppressive_reagents = list( + /datum/reagent/water = -6, //are you trying to poison me or something? + ) + + resulting_atom = /obj/item/organ/liver/distillery + +/datum/micro_organism/cell_line/organs/stomach + desc = "dense stomach tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue/stomach_lining) + + supplementary_reagents = list( + /datum/reagent/consumable/nutriment/organ_tissue = 3, + /datum/reagent/blood = 3, + /datum/reagent/consumable/nutriment = 1, + ) + + suppressive_reagents = list( + /datum/reagent/toxin/mutagen = -2, + ) + + resulting_atom = /obj/item/organ/stomach + +/datum/micro_organism/cell_line/organs/stomach/evolved + desc = "dense evolved stomach tissue" + + required_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue/stomach_lining) + + supplementary_reagents = list( + /datum/reagent/toxin/mutagen = 4, + /datum/reagent/consumable/nutriment/organ_tissue = 3, + /datum/reagent/consumable/nutriment = 3, + /datum/reagent/blood = 3, + ) + + resulting_atom = /obj/item/organ/stomach/evolved diff --git a/code/modules/research/xenobiology/vatgrowing/vatgrower.dm b/code/modules/research/xenobiology/vatgrowing/vatgrower.dm index 621f72f61f0c..4f65a3d9240f 100644 --- a/code/modules/research/xenobiology/vatgrowing/vatgrower.dm +++ b/code/modules/research/xenobiology/vatgrowing/vatgrower.dm @@ -15,13 +15,16 @@ var/datum/biological_sample/biological_sample ///If the vat will restart the sample upon completion var/resampler_active = FALSE + /// Whether or not to add the plumbing component and related stuff + var/use_plumbing = TRUE /obj/machinery/vatgrower/Initialize(mapload, bolt, layer) . = ..() create_reagents(reagent_volume, reagent_flags) - AddComponent(/datum/component/simple_rotation) - AddComponent(/datum/component/plumbing/simple_demand) + if(use_plumbing) + AddComponent(/datum/component/simple_rotation) + AddComponent(/datum/component/plumbing/simple_demand) var/static/list/hovering_item_typechecks = list( /obj/item/petri_dish = list( @@ -136,9 +139,9 @@ var/static/image/off_overlay var/static/image/emissive_overlay if(isnull(on_overlay)) - on_overlay = iconstate2appearance(icon, "growing_vat_on") - off_overlay = iconstate2appearance(icon, "growing_vat_off") - emissive_overlay = emissive_appearance(icon, "growing_vat_glow", src, alpha = src.alpha) + on_overlay = iconstate2appearance(icon, "[icon_state]_on") + off_overlay = iconstate2appearance(icon, "[icon_state]_off") + emissive_overlay = emissive_appearance(icon, "[icon_state]_glow", src, alpha = src.alpha) . += emissive_overlay if(is_operational) if(resampler_active) @@ -148,11 +151,11 @@ if(!reagents.total_volume) return var/reagentcolor = mix_color_from_reagents(reagents.reagent_list) - var/mutable_appearance/base_overlay = mutable_appearance(icon, "vat_reagent", appearance_flags = RESET_COLOR|KEEP_APART) + var/mutable_appearance/base_overlay = mutable_appearance(icon, "[icon_state]_reagent", appearance_flags = RESET_COLOR|KEEP_APART) base_overlay.color = reagentcolor . += base_overlay if(biological_sample && is_operational) - var/mutable_appearance/bubbles_overlay = mutable_appearance(icon, "vat_bubbles") + var/mutable_appearance/bubbles_overlay = mutable_appearance(icon, "[icon_state]_bubbles") . += bubbles_overlay /obj/machinery/vatgrower/emag_act(mob/user, obj/item/card/emag/emag_card) @@ -170,6 +173,43 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(playsound), get_turf(src), 'sound/effects/servostep.ogg', 100, 1), 1.5 SECONDS) biological_sample.reset_sample() else - UnregisterSignal(biological_sample, COMSIG_SAMPLE_GROWTH_COMPLETED) QDEL_NULL(biological_sample) update_appearance() + +/obj/machinery/vatgrower/small + name = "small growing vat" + desc = "Tastes just like the chef's soup. Fit for growing organ tissue samples." + icon_state = "growing_vat_small" + density = FALSE + pass_flags_self = PASSMACHINE | LETPASSTHROW + circuit = null + + anchored_tabletop_offset = 4 + pass_flags = PASSTABLE + use_plumbing = FALSE + + reagent_volume = 50 + +/obj/machinery/vatgrower/small/emag_act(mob/user, obj/item/card/emag/emag_card) + return + +/obj/machinery/vatgrower/small/deposit_sample(mob/user, obj/item/petri_dish/petri) + . = ..() + + if(. != ITEM_INTERACT_SUCCESS) + return + + RegisterSignal(biological_sample, COMSIG_SAMPLE_DEPOSITED, PROC_REF(on_sample_deposited)) + +/obj/machinery/vatgrower/small/proc/on_sample_deposited(datum/biological_sample/sample, atom/thing) + SIGNAL_HANDLER + + if(isliving(thing)) + var/mob/living/living_type = thing + if(living_type.mob_size > MOB_SIZE_SMALL) + explosion(src, light_impact_range = 2, explosion_cause = "growing vat too small") + qdel(src) + return + +/obj/machinery/vatgrower/small/unanchored + anchored = FALSE diff --git a/code/modules/shuttle/mobile_port/mobile_port.dm b/code/modules/shuttle/mobile_port/mobile_port.dm index 2d22cd28ccd6..a55cb09d6c72 100644 --- a/code/modules/shuttle/mobile_port/mobile_port.dm +++ b/code/modules/shuttle/mobile_port/mobile_port.dm @@ -23,13 +23,13 @@ ///current shuttle mode var/mode = SHUTTLE_IDLE ///time spent in transit (deciseconds). Should not be lower then 10 seconds without editing the animation of the hyperspace ripples. - var/callTime = 100 + var/callTime = 10 SECONDS /// time spent "starting the engines". Also rate limits how often we try to reserve transit space if its ever full of transiting shuttles. - var/ignitionTime = 55 + var/ignitionTime = 5.5 SECONDS /// time spent after arrival before being able to begin ignition - var/rechargeTime = 0 + var/rechargeTime = 0 SECONDS /// time spent after transit 'landing' before actually arriving - var/prearrivalTime = 0 + var/prearrivalTime = 0 SECONDS /// The direction the shuttle prefers to travel in, ie what direction the animation will cause it to appear to be traveling in var/preferred_direction = NORTH diff --git a/code/modules/shuttle/mobile_port/shuttle_move.dm b/code/modules/shuttle/mobile_port/shuttle_move.dm index 7f1ce86ed849..6a6cc992bdde 100644 --- a/code/modules/shuttle/mobile_port/shuttle_move.dm +++ b/code/modules/shuttle/mobile_port/shuttle_move.dm @@ -221,7 +221,7 @@ for(var/i in 1 to old_turfs.len) CHECK_TICK - if(!(old_turfs[old_turfs[i]] & MOVE_CONTENTS | MOVE_TURF)) + if(!(old_turfs[old_turfs[i]] & (MOVE_CONTENTS|MOVE_TURF))) continue var/turf/oldT = old_turfs[i] var/turf/newT = new_turfs[i] diff --git a/code/modules/shuttle/mobile_port/variants/arrivals.dm b/code/modules/shuttle/mobile_port/variants/arrivals.dm index df3126081b2b..4a1bc5744d85 100644 --- a/code/modules/shuttle/mobile_port/variants/arrivals.dm +++ b/code/modules/shuttle/mobile_port/variants/arrivals.dm @@ -6,7 +6,7 @@ port_direction = SOUTH callTime = INFINITY - ignitionTime = 50 + ignitionTime = 5 SECONDS movement_force = list("KNOCKDOWN" = 3, "THROW" = 0) diff --git a/code/modules/shuttle/mobile_port/variants/emergency/emergency.dm b/code/modules/shuttle/mobile_port/variants/emergency/emergency.dm index b162620cf481..f708b805a8b3 100644 --- a/code/modules/shuttle/mobile_port/variants/emergency/emergency.dm +++ b/code/modules/shuttle/mobile_port/variants/emergency/emergency.dm @@ -47,9 +47,8 @@ SSshuttle.emergency_last_call_loc = signal_origin else SSshuttle.emergency_last_call_loc = null - priority_announce( - text = "The emergency shuttle has been called. [red_alert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [(timeLeft(60 SECONDS))] minutes.[reason][SSshuttle.emergency_last_call_loc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ][SSshuttle.admin_emergency_no_recall ? "\n\nWarning: Shuttle recall subroutines disabled; Recall not possible." : ""]", + text = "The emergency shuttle has been called. [red_alert ? "Red Alert state confirmed: Dispatching priority shuttle. " : "" ]It will arrive in [timeLeft(60 SECONDS)] minute\s.[reason][SSshuttle.emergency_last_call_loc ? "\n\nCall signal traced. Results can be viewed on any communications console." : "" ][SSshuttle.admin_emergency_no_recall ? "\n\nWarning: Shuttle recall subroutines disabled; Recall not possible." : ""]", title = "Emergency Shuttle Dispatched", sound = ANNOUNCER_SHUTTLECALLED, sender_override = "Emergency Shuttle Uplink Alert", diff --git a/code/modules/shuttle/mobile_port/variants/supply.dm b/code/modules/shuttle/mobile_port/variants/supply.dm index 2c4d14b62814..c48ab01178eb 100644 --- a/code/modules/shuttle/mobile_port/variants/supply.dm +++ b/code/modules/shuttle/mobile_port/variants/supply.dm @@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/docking_port/mobile/supply name = "supply shuttle" shuttle_id = "cargo" - callTime = 600 + callTime = 60 SECONDS dir = WEST port_direction = EAST @@ -227,8 +227,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( var/obj/structure/closet/crate = spawning_order.generate(pick_n_take(empty_turfs)) crate.name += " - #[spawning_order.id]" - SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[spawning_order.pack.get_cost()]", "[spawning_order.pack.name]")) - + SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[spawning_order.pack.get_cost()]", "[spawning_order.pack.name]", "[spawning_order.orderer_rank]")) var/from_whom = paying_for_this?.account_holder || "nobody (department order)" investigate_log("Order #[spawning_order.id] ([spawning_order.pack.name], placed by [key_name(spawning_order.orderer_ckey)]), paid by [from_whom] has shipped.", INVESTIGATE_CARGO) diff --git a/code/modules/shuttle/stationary_port/stationary_port.dm b/code/modules/shuttle/stationary_port/stationary_port.dm index dfb40108ad2e..7c5d7d99aac5 100644 --- a/code/modules/shuttle/stationary_port/stationary_port.dm +++ b/code/modules/shuttle/stationary_port/stationary_port.dm @@ -10,8 +10,12 @@ var/shuttle_template_id /// Used to check if the shuttle template is enabled in the config file var/json_key - ///If true, the shuttle can always dock at this docking port, despite its area checks, or if something is already docked + /// If true, the shuttle can always dock at this docking port, despite its area checks, or if something is already docked var/override_can_dock_checks = FALSE + // Our initial roundstart coordinates + var/initial_x = -1 + var/initial_y = -1 + var/initial_z = -1 /obj/docking_port/stationary/get_save_vars() return ..() + NAMEOF(src, roundstart_template) @@ -27,6 +31,10 @@ for(var/turf/T in return_turfs()) T.turf_flags |= NO_RUINS + initial_x = x + initial_y = y + initial_z = z + if(SSshuttle.initialized) return INITIALIZE_HINT_LATELOAD diff --git a/code/modules/surgery/advanced/brainwashing.dm b/code/modules/surgery/advanced/brainwashing.dm index 34d4e065e133..fb12ecd6e359 100644 --- a/code/modules/surgery/advanced/brainwashing.dm +++ b/code/modules/surgery/advanced/brainwashing.dm @@ -48,7 +48,7 @@ TOOL_WIRECUTTER = 50, /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) - time = 200 + time = 20 SECONDS preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' success_sound = 'sound/items/handling/surgery/hemostat1.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/advanced/lobotomy.dm b/code/modules/surgery/advanced/lobotomy.dm index c0206d59f372..e15228976f05 100644 --- a/code/modules/surgery/advanced/lobotomy.dm +++ b/code/modules/surgery/advanced/lobotomy.dm @@ -43,7 +43,7 @@ /obj/item/shard = 25, /obj/item = 20, ) - time = 100 + time = 10 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/scalpel2.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/advanced/necrotic_revival.dm b/code/modules/surgery/advanced/necrotic_revival.dm index 9b537bf01553..a791a70494d5 100644 --- a/code/modules/surgery/advanced/necrotic_revival.dm +++ b/code/modules/surgery/advanced/necrotic_revival.dm @@ -23,7 +23,7 @@ implements = list( /obj/item/reagent_containers/syringe = 100, /obj/item/pen = 30) - time = 50 + time = 5 SECONDS chems_needed = list(/datum/reagent/toxin/zombiepowder, /datum/reagent/medicine/rezadone) require_all_chems = FALSE diff --git a/code/modules/surgery/advanced/pacification.dm b/code/modules/surgery/advanced/pacification.dm index 5f0c165ac5bb..0c4f0e7371da 100644 --- a/code/modules/surgery/advanced/pacification.dm +++ b/code/modules/surgery/advanced/pacification.dm @@ -38,7 +38,7 @@ TOOL_SCREWDRIVER = 35, /obj/item/pen = 15, ) - time = 40 + time = 4 SECONDS preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' success_sound = 'sound/items/handling/surgery/hemostat1.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/advanced/viral_bonding.dm b/code/modules/surgery/advanced/viral_bonding.dm index f57e49ec1bd8..be7e2969a0bf 100644 --- a/code/modules/surgery/advanced/viral_bonding.dm +++ b/code/modules/surgery/advanced/viral_bonding.dm @@ -26,7 +26,7 @@ TOOL_CAUTERY = 100, TOOL_WELDER = 50, /obj/item = 30) // 30% success with any hot item. - time = 100 + time = 10 SECONDS chems_needed = list(/datum/reagent/medicine/spaceacillin,/datum/reagent/consumable/virus_food,/datum/reagent/toxin/formaldehyde) /datum/surgery_step/viral_bond/tool_check(mob/user, obj/item/tool) diff --git a/code/modules/surgery/advanced/wingreconstruction.dm b/code/modules/surgery/advanced/wingreconstruction.dm index a3931dd4e5e9..3a27a19c391a 100644 --- a/code/modules/surgery/advanced/wingreconstruction.dm +++ b/code/modules/surgery/advanced/wingreconstruction.dm @@ -23,7 +23,7 @@ TOOL_HEMOSTAT = 85, TOOL_SCREWDRIVER = 35, /obj/item/pen = 15) - time = 200 + time = 20 SECONDS chems_needed = list(/datum/reagent/medicine/c2/synthflesh) require_all_chems = FALSE diff --git a/code/modules/surgery/amputation.dm b/code/modules/surgery/amputation.dm index 0bcf408b2a71..be4fbf7ea5f9 100644 --- a/code/modules/surgery/amputation.dm +++ b/code/modules/surgery/amputation.dm @@ -51,7 +51,7 @@ /obj/item/hatchet = 40, /obj/item/knife/butcher = 25, ) - time = 64 + time = 6.4 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/organ2.ogg' surgery_effects_mood = TRUE @@ -78,7 +78,7 @@ /obj/item/hatchet = 75, TOOL_SCALPEL = 25, ) - time = 30 + time = 3 SECONDS preop_sound = 'sound/items/handling/surgery/saw.ogg' success_sound = 'sound/items/handling/materials/wood_drop.ogg' diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 629c7114952e..38731efab0a7 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -390,7 +390,7 @@ if(current_gauze) check_list += span_notice("\tThere is some [current_gauze.name] wrapped around it.") else if(can_bleed()) - switch(get_modified_bleed_rate()) + switch(cached_bleed_rate) if(0.2 to 1) check_list += span_warning("\tIt's lightly bleeding.") if(1 to 2) @@ -821,7 +821,7 @@ SIGNAL_ADDTRAIT(TRAIT_NOBLOOD), )) - UnregisterSignal(old_owner, list(COMSIG_ATOM_RESTYLE, COMSIG_COMPONENT_CLEAN_ACT)) + UnregisterSignal(old_owner, list(COMSIG_ATOM_RESTYLE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_LIVING_SET_BODY_POSITION)) /// Apply ownership of a limb to someone, giving the appropriate traits, updates and signals /obj/item/bodypart/proc/apply_ownership(mob/living/carbon/new_owner) @@ -851,6 +851,7 @@ RegisterSignal(owner, COMSIG_ATOM_RESTYLE, PROC_REF(on_attempt_feature_restyle_mob)) RegisterSignal(owner, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_owner_clean)) + RegisterSignal(owner, COMSIG_LIVING_SET_BODY_POSITION, PROC_REF(refresh_bleed_rate)) forceMove(owner) RegisterSignal(src, COMSIG_MOVABLE_MOVED, PROC_REF(on_forced_removal)) //this must be set after we moved, or we insta gib @@ -1276,6 +1277,7 @@ /// Refresh the cache of our rate of bleeding sans any modifiers /// ANYTHING ADDED TO THIS PROC NEEDS TO CALL IT WHEN ITS EFFECT CHANGES /obj/item/bodypart/proc/refresh_bleed_rate() + SIGNAL_HANDLER SHOULD_NOT_OVERRIDE(TRUE) var/old_bleed_rate = cached_bleed_rate @@ -1298,21 +1300,18 @@ for(var/datum/wound/iter_wound as anything in wounds) cached_bleed_rate += iter_wound.blood_flow + if(owner.body_position == LYING_DOWN) + cached_bleed_rate *= 0.75 + + if(grasped_by) + cached_bleed_rate *= 0.7 + // Our bleed overlay is based directly off bleed_rate, so go aheead and update that would you? if(cached_bleed_rate != old_bleed_rate) update_part_wound_overlay() return cached_bleed_rate -/// Returns our bleed rate, taking into account laying down and grabbing the limb -/obj/item/bodypart/proc/get_modified_bleed_rate() - var/bleed_rate = cached_bleed_rate - if(owner.body_position == LYING_DOWN) - bleed_rate *= 0.75 - if(grasped_by) - bleed_rate *= 0.7 - return bleed_rate - /obj/item/bodypart/proc/update_part_wound_overlay() if(!owner) return FALSE diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 78a20467bde2..0e25e1b981f8 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -244,6 +244,12 @@ pill.forceMove(src) name = "[owner.real_name]'s head" + + /// If our owner loses their head, update their name as their face ~cannot be seen~ does not exist anymore + if (ishuman(owner)) + var/mob/living/carbon/human/as_human = owner + as_human.update_visible_name() + return ..() ///Try to attach this bodypart to a mob, while replacing one if it exists, does nothing if it fails. @@ -351,6 +357,11 @@ new_head_owner.real_name = old_real_name real_name = new_head_owner.real_name + /// Update our owner's name with ours + if (ishuman(owner)) + var/mob/living/carbon/human/as_human = owner + as_human.update_visible_name() + //Handle dental implants for(var/obj/item/reagent_containers/applicator/pill/pill in src) for(var/datum/action/item_action/activate_pill/pill_action in pill.actions) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 845506082fd0..1d68c1b55eab 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -214,6 +214,16 @@ /obj/item/bodypart/head/GetVoice() return "The head of [real_name]" +/obj/item/bodypart/head/update_bodypart_damage_state() + if (!ishuman(owner)) + return ..() + var/old_states = brutestate + burnstate + . = ..() + var/new_states = brutestate + burnstate + var/mob/living/carbon/human/as_human = owner + if ((old_states >= HUMAN_DISFIGURATION_HEAD_DAMAGE_STATES && new_states < HUMAN_DISFIGURATION_HEAD_DAMAGE_STATES) || (old_states < HUMAN_DISFIGURATION_HEAD_DAMAGE_STATES && new_states >= HUMAN_DISFIGURATION_HEAD_DAMAGE_STATES)) + as_human.update_visible_name() + /obj/item/bodypart/head/monkey icon = 'icons/mob/human/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/human/species/monkey/bodyparts.dmi' diff --git a/code/modules/surgery/bone_mending.dm b/code/modules/surgery/bone_mending.dm index 8afffb232fb9..24cea41ce302 100644 --- a/code/modules/surgery/bone_mending.dm +++ b/code/modules/surgery/bone_mending.dm @@ -53,7 +53,7 @@ /obj/item/stack/sticky_tape/surgical = 100, /obj/item/stack/sticky_tape/super = 50, /obj/item/stack/sticky_tape = 30) - time = 40 + time = 4 SECONDS /datum/surgery_step/repair_bone_hairline/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(surgery.operated_wound) @@ -102,7 +102,7 @@ /obj/item/stack/sticky_tape/surgical = 60, /obj/item/stack/sticky_tape/super = 40, /obj/item/stack/sticky_tape = 20) - time = 40 + time = 4 SECONDS /datum/surgery_step/reset_compound_fracture/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(surgery.operated_wound) @@ -152,7 +152,7 @@ /datum/surgery_step/repair_bone_compound name = "repair compound fracture (bone gel/tape)" implements = IMPLEMENTS_THAT_FIX_BONES - time = 40 + time = 4 SECONDS /datum/surgery_step/repair_bone_compound/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(surgery.operated_wound) diff --git a/code/modules/surgery/burn_dressing.dm b/code/modules/surgery/burn_dressing.dm index 54aa82f43b43..2e87d6b51b71 100644 --- a/code/modules/surgery/burn_dressing.dm +++ b/code/modules/surgery/burn_dressing.dm @@ -39,7 +39,7 @@ TOOL_SCALPEL = 85, TOOL_SAW = 60, TOOL_WIRECUTTER = 40) - time = 30 + time = 3 SECONDS repeatable = TRUE preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/retractor2.ogg' @@ -134,7 +134,7 @@ implements = list( /obj/item/stack/medical/gauze = 100, /obj/item/stack/sticky_tape/surgical = 100) - time = 40 + time = 4 SECONDS /// How much sanitization is added var/sanitization_added = 3 /// How much flesh healing is added diff --git a/code/modules/surgery/cavity_implant.dm b/code/modules/surgery/cavity_implant.dm index b07b562aa8db..cfab9cf74241 100644 --- a/code/modules/surgery/cavity_implant.dm +++ b/code/modules/surgery/cavity_implant.dm @@ -17,7 +17,7 @@ GLOBAL_LIST_INIT(heavy_cavity_implants, typecacheof(list(/obj/item/transfer_valv accept_hand = 1 implements = list(/obj/item = 100) repeatable = TRUE - time = 32 + time = 3.2 SECONDS preop_sound = 'sound/items/handling/surgery/organ1.ogg' success_sound = 'sound/items/handling/surgery/organ2.ogg' var/obj/item/item_for_cavity diff --git a/code/modules/surgery/core_removal.dm b/code/modules/surgery/core_removal.dm index 4c7382f3daee..890d62413f22 100644 --- a/code/modules/surgery/core_removal.dm +++ b/code/modules/surgery/core_removal.dm @@ -24,7 +24,7 @@ implements = list( TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 100) - time = 16 + time = 1.6 SECONDS /datum/surgery_step/extract_core/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/coronary_bypass.dm b/code/modules/surgery/coronary_bypass.dm index 7b0536367f13..75357ba4908b 100644 --- a/code/modules/surgery/coronary_bypass.dm +++ b/code/modules/surgery/coronary_bypass.dm @@ -40,7 +40,7 @@ /obj/item/melee/energy/sword = 45, /obj/item/knife = 45, /obj/item/shard = 25) - time = 16 + time = 1.6 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/scalpel2.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' @@ -108,7 +108,7 @@ TOOL_WIRECUTTER = 35, /obj/item/stack/package_wrap = 15, /obj/item/stack/cable_coil = 5) - time = 90 + time = 9 SECONDS preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' success_sound = 'sound/items/handling/surgery/hemostat1.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/dental_implant.dm b/code/modules/surgery/dental_implant.dm index 96208396b6e3..f12064a42c15 100644 --- a/code/modules/surgery/dental_implant.dm +++ b/code/modules/surgery/dental_implant.dm @@ -31,7 +31,7 @@ /datum/surgery_step/insert_pill name = "insert pill" implements = list(/obj/item/reagent_containers/applicator/pill = 100) - time = 16 + time = 1.6 SECONDS /datum/surgery_step/insert_pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/ear_surgery.dm b/code/modules/surgery/ear_surgery.dm index 9e363e2ae9b2..9f41949f7638 100644 --- a/code/modules/surgery/ear_surgery.dm +++ b/code/modules/surgery/ear_surgery.dm @@ -20,7 +20,7 @@ TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 45, /obj/item/pen = 25) - time = 64 + time = 6.4 SECONDS /datum/surgery/ear_surgery/can_start(mob/user, mob/living/carbon/target) return target.get_organ_slot(ORGAN_SLOT_EARS) && ..() diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index 3a0f71400917..31a4fe261d44 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -18,7 +18,7 @@ TOOL_HEMOSTAT = 100, TOOL_SCREWDRIVER = 45, /obj/item/pen = 25) - time = 64 + time = 6.4 SECONDS /datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target) return target.get_organ_slot(ORGAN_SLOT_EYES) && ..() diff --git a/code/modules/surgery/gastrectomy.dm b/code/modules/surgery/gastrectomy.dm index d09933f303fe..caae23b25526 100644 --- a/code/modules/surgery/gastrectomy.dm +++ b/code/modules/surgery/gastrectomy.dm @@ -41,7 +41,7 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - time = 52 + time = 5.2 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/organ1.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm index 12540945a523..dfabe24234d0 100644 --- a/code/modules/surgery/healing.dm +++ b/code/modules/surgery/healing.dm @@ -41,7 +41,7 @@ TOOL_WIRECUTTER = 60, /obj/item/pen = 55) repeatable = TRUE - time = 25 + time = 2.5 SECONDS success_sound = 'sound/items/handling/surgery/retractor2.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' var/brutehealing = 0 @@ -330,7 +330,7 @@ burnhealing = 3 brute_multiplier = 0.07 burn_multiplier = 0.07 - time = 10 + time = 1 SECONDS /datum/surgery_step/heal/combo/upgraded brutehealing = 3 diff --git a/code/modules/surgery/hepatectomy.dm b/code/modules/surgery/hepatectomy.dm index 82921c3f2752..ebde95052142 100644 --- a/code/modules/surgery/hepatectomy.dm +++ b/code/modules/surgery/hepatectomy.dm @@ -40,7 +40,7 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - time = 52 + time = 5.2 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/organ1.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 51c279d32cd9..7893f33ec4d5 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -18,7 +18,7 @@ TOOL_HEMOSTAT = 100, TOOL_CROWBAR = 65, /obj/item/kitchen/fork = 35) - time = 64 + time = 6.4 SECONDS success_sound = 'sound/items/handling/surgery/hemostat1.ogg' var/obj/item/implant/implant diff --git a/code/modules/surgery/limb_augmentation.dm b/code/modules/surgery/limb_augmentation.dm index 5276111e5672..b9b1356db895 100644 --- a/code/modules/surgery/limb_augmentation.dm +++ b/code/modules/surgery/limb_augmentation.dm @@ -9,7 +9,7 @@ implements = list( /obj/item/bodypart = 100, /obj/item/borg/apparatus/organ_storage = 100) - time = 32 + time = 3.2 SECONDS var/obj/item/bodypart/target_limb diff --git a/code/modules/surgery/lipoplasty.dm b/code/modules/surgery/lipoplasty.dm index 975df4a8bdff..3183c968f701 100644 --- a/code/modules/surgery/lipoplasty.dm +++ b/code/modules/surgery/lipoplasty.dm @@ -37,7 +37,7 @@ /obj/item/hatchet = 35, /obj/item/knife/butcher = 25, ) - time = 64 + time = 6.4 SECONDS surgery_effects_mood = TRUE preop_sound = list( /obj/item/circular_saw = 'sound/items/handling/surgery/saw.ogg', @@ -87,7 +87,7 @@ TOOL_SCREWDRIVER = 45, TOOL_WIRECUTTER = 35, ) - time = 32 + time = 3.2 SECONDS preop_sound = 'sound/items/handling/surgery/retractor1.ogg' success_sound = 'sound/items/handling/surgery/retractor2.ogg' diff --git a/code/modules/surgery/lobectomy.dm b/code/modules/surgery/lobectomy.dm index e0988c8376c8..4f1c32873d8d 100644 --- a/code/modules/surgery/lobectomy.dm +++ b/code/modules/surgery/lobectomy.dm @@ -37,7 +37,7 @@ /obj/item/melee/energy/sword = 65, /obj/item/knife = 45, /obj/item/shard = 35) - time = 42 + time = 4.2 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/organ1.ogg' failure_sound = 'sound/items/handling/surgery/organ2.ogg' diff --git a/code/modules/surgery/mechanic_steps.dm b/code/modules/surgery/mechanic_steps.dm index 44be32bc858a..dab8730c2ed1 100644 --- a/code/modules/surgery/mechanic_steps.dm +++ b/code/modules/surgery/mechanic_steps.dm @@ -6,7 +6,7 @@ TOOL_SCALPEL = 75, // med borgs could try to unscrew shell with scalpel /obj/item/knife = 50, /obj/item = 10) // 10% success with any sharp item. - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/tools/screwdriver.ogg' success_sound = 'sound/items/tools/screwdriver2.ogg' @@ -36,7 +36,7 @@ TOOL_SCALPEL = 75, /obj/item/knife = 50, /obj/item = 10) // 10% success with any sharp item. - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/tools/screwdriver.ogg' success_sound = 'sound/items/tools/screwdriver2.ogg' @@ -64,7 +64,7 @@ implements = list( TOOL_MULTITOOL = 100, TOOL_HEMOSTAT = 75) - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/taperecorder/tape_flip.ogg' success_sound = 'sound/items/taperecorder/taperecorder_close.ogg' @@ -84,7 +84,7 @@ implements = list( TOOL_WRENCH = 100, TOOL_RETRACTOR = 75) - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/tools/ratchet.ogg' /datum/surgery_step/mechanic_unwrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -109,7 +109,7 @@ implements = list( TOOL_WRENCH = 100, TOOL_RETRACTOR = 75) - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/tools/ratchet.ogg' /datum/surgery_step/mechanic_wrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -132,7 +132,7 @@ /datum/surgery_step/open_hatch name = "open the hatch (hand)" accept_hand = TRUE - time = 10 + time = 1 SECONDS preop_sound = 'sound/items/tools/ratchet.ogg' preop_sound = 'sound/machines/airlock/doorclick.ogg' diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index cdcb324c8670..30a06d70ff7d 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -8,7 +8,7 @@ /obj/item/knife = 65, /obj/item/shard = 45, /obj/item = 30) // 30% success with any sharp item. - time = 16 + time = 1.6 SECONDS preop_sound = 'sound/items/handling/surgery/scalpel1.ogg' success_sound = 'sound/items/handling/surgery/scalpel2.ogg' surgery_effects_mood = TRUE @@ -64,7 +64,7 @@ TOOL_WIRECUTTER = 60, /obj/item/stack/package_wrap = 35, /obj/item/stack/cable_coil = 15) - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/handling/surgery/hemostat1.ogg' /datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -95,7 +95,7 @@ TOOL_SCREWDRIVER = 45, TOOL_WIRECUTTER = 35, /obj/item/stack/rods = 35) - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/handling/surgery/retractor1.ogg' success_sound = 'sound/items/handling/surgery/retractor2.ogg' @@ -117,7 +117,7 @@ /obj/item/gun/energy/laser = 90, TOOL_WELDER = 70, /obj/item = 30) // 30% success with any hot item. - time = 24 + time = 2.4 SECONDS preop_sound = 'sound/items/handling/surgery/cautery1.ogg' success_sound = 'sound/items/handling/surgery/cautery2.ogg' @@ -160,7 +160,7 @@ /obj/item/hatchet = 35, /obj/item/knife/butcher = 35, /obj/item = 25) //20% success (sort of) with any sharp item with a force >= 10 - time = 54 + time = 5.4 SECONDS preop_sound = list( /obj/item/circular_saw = 'sound/items/handling/surgery/saw.ogg', /obj/item/melee/arm_blade = 'sound/items/handling/surgery/scalpel1.ogg', @@ -208,7 +208,7 @@ /obj/item/pickaxe/drill = 60, TOOL_SCREWDRIVER = 25, /obj/item/kitchen/spoon = 20) - time = 30 + time = 3 SECONDS /datum/surgery_step/drill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) display_results( diff --git a/code/modules/surgery/organs/_organ.dm b/code/modules/surgery/organs/_organ.dm index 534146d4d99f..ac602413eee1 100644 --- a/code/modules/surgery/organs/_organ.dm +++ b/code/modules/surgery/organs/_organ.dm @@ -68,6 +68,12 @@ var/failing_desc = "has decayed for too long, and has turned a sickly color. It probably won't work without repairs." /// Assoc list of alternate zones where this can organ be slotted to organ slot for that zone var/list/valid_zones = null + /// The cell line we can spawn on us + var/cell_line = null + /// The minimum cells we can spawn + var/cells_minimum = 0 + /// The maximum cells we can spawn + var/cells_maximum = 0 // Players can look at prefs before atoms SS init, and without this // they would not be able to see external organs, such as moth wings. @@ -90,6 +96,10 @@ INITIALIZE_IMMEDIATE(/obj/item/organ) if(bodypart_overlay) setup_bodypart_overlay() + + if(cell_line && (organ_flags & ORGAN_ORGANIC)) + AddElement(/datum/element/swabable, cell_line, cell_line_amount = rand(cells_minimum, cells_maximum)) + START_PROCESSING(SSobj, src) /obj/item/organ/Destroy() diff --git a/code/modules/surgery/organs/external/wings/functional_wings.dm b/code/modules/surgery/organs/external/wings/functional_wings.dm index 8161f618246a..86bad3a1b575 100644 --- a/code/modules/surgery/organs/external/wings/functional_wings.dm +++ b/code/modules/surgery/organs/external/wings/functional_wings.dm @@ -1,5 +1,5 @@ #define FUNCTIONAL_WING_FORCE 2.25 NEWTONS -#define FUNCTIONAL_WING_STABILIZATION 1.2 NEWTONS +#define FUNCTIONAL_WING_STABILIZATION 4.5 NEWTONS ///hud action for starting and stopping flight /datum/action/innate/flight diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm index 177a2ded6c8d..681d68e62820 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_arms.dm @@ -578,13 +578,13 @@ bonus_deactivate_text = span_notice("You can no longer force open airlocks with your bare hands.") required_biotype = NONE -/datum/status_effect/organ_set_bonus/strongarm/enable_bonus() +/datum/status_effect/organ_set_bonus/strongarm/enable_bonus(obj/item/organ/inserted_organ) . = ..() if(!.) return owner.AddElement(/datum/element/door_pryer, pry_time = 6 SECONDS, interaction_key = DOAFTER_SOURCE_STRONGARM_INTERACTION) -/datum/status_effect/organ_set_bonus/strongarm/disable_bonus() +/datum/status_effect/organ_set_bonus/strongarm/disable_bonus(obj/item/organ/removed_organ) . = ..() owner.RemoveElement(/datum/element/door_pryer, pry_time = 6 SECONDS, interaction_key = DOAFTER_SOURCE_STRONGARM_INTERACTION) diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm index ee9a72594431..98d32916c587 100644 --- a/code/modules/surgery/organs/internal/eyes/_eyes.dm +++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm @@ -91,7 +91,7 @@ eye_color_left = as_human.eye_color_left if (!eye_color_right) eye_color_right = as_human.eye_color_right - refresh(receiver, call_update = !special) + refresh(receiver, call_update = TRUE) RegisterSignal(receiver, COMSIG_ATOM_BULLET_ACT, PROC_REF(on_bullet_act)) RegisterSignal(receiver, COMSIG_COMPONENT_CLEAN_FACE_ACT, PROC_REF(on_face_wash)) if (scarring) @@ -416,7 +416,6 @@ #define RAND_BLINKING_DELAY 1 SECONDS #define BLINK_DURATION 0.15 SECONDS #define BLINK_LOOPS 5 -#define ASYNC_BLINKING_BRAIN_DAMAGE 60 /// Modifies eye overlays to also act as eyelids, both for blinking and for when you're knocked out cold /obj/item/organ/eyes/proc/setup_eyelids(mutable_appearance/eye_left, mutable_appearance/eye_right, mob/living/carbon/human/parent) @@ -461,7 +460,6 @@ if (anim_times) if (sync_blinking) wait_time = anim_times[1] - anim_times.Cut(1, 2) else wait_time = rand(max(BASE_BLINKING_DELAY - RAND_BLINKING_DELAY, anim_times[1] - RAND_BLINKING_DELAY), anim_times[1]) @@ -472,17 +470,15 @@ for (var/i in 1 to cycles) if (anim_times) if (sync_blinking) - wait_time = anim_times[1] - anim_times.Cut(1, 2) + wait_time = anim_times[i + 1] else - wait_time = rand(max(BASE_BLINKING_DELAY - RAND_BLINKING_DELAY, anim_times[1] - RAND_BLINKING_DELAY), anim_times[1]) + wait_time = rand(max(BASE_BLINKING_DELAY - RAND_BLINKING_DELAY, anim_times[i + 1] - RAND_BLINKING_DELAY), anim_times[i + 1]) else wait_time = rand(BASE_BLINKING_DELAY - RAND_BLINKING_DELAY, BASE_BLINKING_DELAY + RAND_BLINKING_DELAY) . += wait_time if (anim_times && !sync_blinking) // Make sure that we're somewhat in sync with the other eye - animate(time = anim_times[1] - wait_time) - anim_times.Cut(1, 2) + animate(time = anim_times[i + 1] - wait_time) animate(alpha = 255, time = 0) animate(time = BLINK_DURATION) if (i != cycles) @@ -490,17 +486,18 @@ animate(time = wait_time) /obj/item/organ/eyes/proc/blink(duration = BLINK_DURATION, restart_animation = TRUE) - var/left_delayed = rand(50) + var/left_delayed = prob(50) // Storing blink delay so mistimed blinks of lizards don't get cut short - var/blink_delay = synchronized_blinking ? rand(0, RAND_BLINKING_DELAY) : 0 + var/sync_blinking = synchronized_blinking && (owner.get_organ_loss(ORGAN_SLOT_BRAIN) < BRAIN_DAMAGE_ASYNC_BLINKING) + var/blink_delay = sync_blinking ? 0 : rand(0, RAND_BLINKING_DELAY) animate(eyelid_left, alpha = 0, time = 0) - if (!synchronized_blinking && left_delayed) + if (!sync_blinking && left_delayed) animate(time = blink_delay) animate(alpha = 255, time = 0) animate(time = duration) animate(alpha = 0, time = 0) animate(eyelid_right, alpha = 0, time = 0) - if (!synchronized_blinking && !left_delayed) + if (!sync_blinking && !left_delayed) animate(time = blink_delay) animate(alpha = 255, time = 0) animate(time = duration) @@ -509,7 +506,7 @@ addtimer(CALLBACK(src, PROC_REF(animate_eyelids), owner), blink_delay + duration) /obj/item/organ/eyes/proc/animate_eyelids(mob/living/carbon/human/parent) - var/sync_blinking = synchronized_blinking && (parent.get_organ_loss(ORGAN_SLOT_BRAIN) < ASYNC_BLINKING_BRAIN_DAMAGE) + var/sync_blinking = synchronized_blinking && (parent.get_organ_loss(ORGAN_SLOT_BRAIN) < BRAIN_DAMAGE_ASYNC_BLINKING) // Randomize order for unsynched animations if (sync_blinking || prob(50)) var/list/anim_times = animate_eyelid(eyelid_left, parent, sync_blinking) @@ -532,7 +529,6 @@ #undef RAND_BLINKING_DELAY #undef BLINK_DURATION #undef BLINK_LOOPS -#undef ASYNC_BLINKING_BRAIN_DAMAGE /// by default, returns the eyes' penlight_message var as a notice span. May do other things when overridden, such as eldritch insanity, or eye damage, or whatnot. Whatever you want, really. /obj/item/organ/eyes/proc/penlight_examine(mob/living/viewer) diff --git a/code/modules/surgery/organs/internal/heart/_heart.dm b/code/modules/surgery/organs/internal/heart/_heart.dm index d0e386ac5a8f..0e00dce883af 100644 --- a/code/modules/surgery/organs/internal/heart/_heart.dm +++ b/code/modules/surgery/organs/internal/heart/_heart.dm @@ -21,6 +21,10 @@ // Love is stored in the heart. food_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue = 5, /datum/reagent/love = 2.5) + cell_line = CELL_LINE_ORGAN_HEART + cells_minimum = 1 + cells_maximum = 2 + // Heart attack code is in code/modules/mob/living/carbon/human/life.dm /// Whether the heart is currently beating. @@ -291,6 +295,7 @@ maxHealth = 2 * STANDARD_ORGAN_THRESHOLD stabilization_available = TRUE toxification_probability = 0 + bleed_prevention = TRUE emp_vulnerability = 20 /obj/item/organ/heart/cybernetic/surplus @@ -334,3 +339,69 @@ beat_noise = "the power of the podperson" // makes sense foodtype_flags = PODPERSON_ORGAN_FOODTYPES color = COLOR_LIME + +/// An improved version of the organic heart, with more health and more "keeping you alive" potential +/obj/item/organ/heart/evolved + name = "evolved heart" + desc = "It beats ever strong." + icon_state = "heart-evolved-on" + base_icon_state = "heart-evolved" + + maxHealth = STANDARD_ORGAN_THRESHOLD * 1.2 + + /// Chance to heal per on_life + var/healing_probability = 10 + /// Base healing we receive per tick at 0 damage and for standard versions + var/base_healing = 1 + +/obj/item/organ/heart/evolved/on_life(seconds_per_tick, times_fired) + . = ..() + + if(prob(healing_probability * seconds_per_tick)) + var/damage_to_heal = base_healing * ((maxHealth - damage) / initial(maxHealth)) * seconds_per_tick + owner.heal_overall_damage(damage_to_heal, damage_to_heal, required_bodytype = BODYTYPE_ORGANIC) + + if(owner.stat == HARD_CRIT && !owner.has_reagent(/datum/reagent/medicine/atropine, 5)) + owner.reagents.add_reagent(/datum/reagent/medicine/atropine, 1 * seconds_per_tick) + +/// A weaker evolved heart, but can block magic in exchange for our organs health! +/obj/item/organ/heart/evolved/sacred + name = "sacred heart" + desc = "Your foul magics stand no chance against the power of LOVE!!!" + + icon_state = "heart-sacred-on" + base_icon_state = "heart-sacred" + + healing_probability = 5 + base_healing = 0.5 + + // How much damage each magic block deals to us + var/damage_per_block = 50 + +/obj/item/organ/heart/evolved/sacred/on_life(seconds_per_tick, times_fired) + . = ..() + + if(IS_CULTIST(owner)) + owner.reagents.add_reagent(/datum/reagent/water/holywater, 5 * seconds_per_tick) + +/obj/item/organ/heart/evolved/sacred/on_mob_insert(mob/living/carbon/receiver, special, movement_flags) + . = ..() + + receiver.AddComponent(/datum/component/anti_magic, block_magic = CALLBACK(src, PROC_REF(on_blocked)), check_blocking = CALLBACK(src, PROC_REF(check_block))) + +/obj/item/organ/heart/evolved/sacred/on_mob_remove(mob/living/carbon/organ_owner, special, movement_flags) + . = ..() + + qdel(organ_owner.GetComponent(/datum/component/anti_magic)) + +/// When we blocked damage, do PAIN on us +/obj/item/organ/heart/evolved/sacred/proc/on_blocked() + apply_organ_damage(damage_per_block) + owner.vomit(VOMIT_CATEGORY_BLOOD) + playsound(owner, 'sound/effects/health/slowbeat.ogg', 80) + +/// We don't block magic if it would kill our heart +/obj/item/organ/heart/evolved/sacred/proc/check_block() + if(maxHealth - damage <= damage_per_block) + return FALSE + return TRUE diff --git a/code/modules/surgery/organs/internal/liver/_liver.dm b/code/modules/surgery/organs/internal/liver/_liver.dm index 6e6444edfb7e..f6995237c694 100755 --- a/code/modules/surgery/organs/internal/liver/_liver.dm +++ b/code/modules/surgery/organs/internal/liver/_liver.dm @@ -18,6 +18,10 @@ food_reagents = list(/datum/reagent/consumable/nutriment/organ_tissue = 5, /datum/reagent/iron = 5) grind_results = list(/datum/reagent/consumable/nutriment/peptides = 5) + cell_line = CELL_LINE_ORGAN_LIVER + cells_minimum = 1 + cells_maximum = 2 + /// Affects how much damage the liver takes from alcohol var/alcohol_tolerance = ALCOHOL_RATE /// The maximum volume of toxins the liver will ignore @@ -328,6 +332,60 @@ organ_owner.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM * seconds_per_tick) return COMSIG_MOB_STOP_REAGENT_TICK +/obj/item/organ/liver/evolved + name = "evolved liver" + desc = "A more robust liver, better at everything." + + icon_state = "evolved-liver" + + alcohol_tolerance = ALCOHOL_RATE * 0.5 + maxHealth = 1.2 * STANDARD_ORGAN_THRESHOLD + toxTolerance = 6 //can shrug off up to 6u of toxins + liver_resistance = 1.5 * LIVER_DEFAULT_TOX_RESISTANCE + +/obj/item/organ/liver/bloody + name = "leaky liver" + desc = "An extra spongy liver, only slightly better than a normal liver, but with an increased ability to replenish blood." + + icon_state = "leaky-liver" + + maxHealth = 1.1 * STANDARD_ORGAN_THRESHOLD + alcohol_tolerance = ALCOHOL_RATE * 0.8 + toxTolerance = LIVER_DEFAULT_TOX_TOLERANCE + 1 + liver_resistance = 1.1 * LIVER_DEFAULT_TOX_RESISTANCE + +/obj/item/organ/liver/bloody/on_life(seconds_per_tick, times_fired) + . = ..() + + if(owner.blood_volume < BLOOD_VOLUME_NORMAL) + owner.blood_volume += 4 * seconds_per_tick + +/// Convert all non-alcoholic drinks into alcohol +/obj/item/organ/liver/distillery + name = "alcoholics delight" + desc = "The perfect liver, distilling non-alcoholic reagents into alcohol whenever possible." + + icon_state = "liver-distillery" + + organ_traits = list(TRAIT_ALCOHOL_TOLERANCE) + + alcohol_tolerance = ALCOHOL_RATE * 0.1 + + /// Volume that is converted per second + var/ethanol_conversion = 0.2 + /// What to convert stuff into + var/convert_into = /datum/reagent/consumable/ethanol + +/obj/item/organ/liver/distillery/on_life(seconds_per_tick, times_fired) + . = ..() + + for(var/datum/reagent/reagent as anything in owner.reagents.reagent_list) + // Already alcohol + if(istype(reagent, convert_into)) + continue + + owner.reagents.convert_reagent(reagent.type, convert_into, ethanol_conversion) + #undef LIVER_DEFAULT_TOX_TOLERANCE #undef LIVER_DEFAULT_TOX_RESISTANCE #undef LIVER_FAILURE_STAGE_SECONDS diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm index 91933262ac53..27a88a6d94e0 100644 --- a/code/modules/surgery/organs/internal/lungs/_lungs.dm +++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm @@ -18,6 +18,10 @@ low_threshold_cleared = span_info("You can breathe normally again.") high_threshold_cleared = span_info("The constriction around your chest loosens as your breathing calms down.") + cell_line = CELL_LINE_ORGAN_LUNGS + cells_minimum = 1 + cells_maximum = 2 + var/failed = FALSE var/operated = FALSE //whether we can still have our damages fixed through surgery @@ -1077,6 +1081,17 @@ foodtype_flags = PODPERSON_ORGAN_FOODTYPES color = COLOR_LIME +/obj/item/organ/lungs/evolved + name = "evolved lungs" + desc = "A pair of lungs, with an organic filtering system and a stronger musculature." + + icon_state = "lungs-evolved" + + safe_plasma_max = 8 + safe_co2_max = 8 + maxHealth = 1.2 * STANDARD_ORGAN_THRESHOLD + safe_oxygen_min = 8 + #undef BREATH_RELATIONSHIP_INITIAL_GAS #undef BREATH_RELATIONSHIP_CONVERT #undef BREATH_RELATIONSHIP_MULTIPLIER diff --git a/code/modules/surgery/organs/internal/stomach/_stomach.dm b/code/modules/surgery/organs/internal/stomach/_stomach.dm index 12f76c6befd9..658598ee7d76 100644 --- a/code/modules/surgery/organs/internal/stomach/_stomach.dm +++ b/code/modules/surgery/organs/internal/stomach/_stomach.dm @@ -24,6 +24,10 @@ //This is a reagent user and needs more then the 10u from edible component reagent_vol = 1000 + cell_line = CELL_LINE_ORGAN_STOMACH + cells_minimum = 1 + cells_maximum = 2 + ///The rate that disgust decays var/disgust_metabolism = 1 @@ -565,4 +569,13 @@ movement_type = PHASING organ_flags = parent_type::organ_flags | ORGAN_GHOST +/obj/item/organ/stomach/evolved + name = "evolved stomach" + desc = "It can draw nutrients from your food even harder!" + icon_state = "stomach-evolved" + + maxHealth = 1.2 * STANDARD_ORGAN_THRESHOLD + disgust_metabolism = 2.5 + metabolism_efficiency = 0.08 + #undef STOMACH_METABOLISM_CONSTANT diff --git a/code/modules/surgery/organs/organ_movement.dm b/code/modules/surgery/organs/organ_movement.dm index d31c3e5e0b26..1eef03f08404 100644 --- a/code/modules/surgery/organs/organ_movement.dm +++ b/code/modules/surgery/organs/organ_movement.dm @@ -74,11 +74,6 @@ wash(CLEAN_TYPE_BLOOD) organ_flags &= ~ORGAN_VIRGIN - if(external_bodytypes) - receiver.synchronize_bodytypes() - if(external_bodyshapes) - receiver.synchronize_bodyshapes() - receiver.organs |= src receiver.organs_slot[slot] = src owner = receiver @@ -141,9 +136,16 @@ ADD_TRAIT(src, TRAIT_NODROP, ORGAN_INSIDE_BODY_TRAIT) interaction_flags_item &= ~INTERACT_ITEM_ATTACK_HAND_PICKUP + if(external_bodytypes) + limb.owner?.synchronize_bodytypes() + if(external_bodyshapes) + limb.owner?.synchronize_bodyshapes() + if(bodypart_overlay) limb.add_bodypart_overlay(bodypart_overlay) + SEND_SIGNAL(src, COMSIG_ORGAN_BODYPART_INSERTED, limb, movement_flags) + /* * Remove the organ from the select mob. * @@ -184,8 +186,6 @@ SEND_SIGNAL(organ_owner, COMSIG_CARBON_LOSE_ORGAN, src, special) ADD_TRAIT(src, TRAIT_USED_ORGAN, ORGAN_TRAIT) - organ_owner.synchronize_bodytypes() - organ_owner.synchronize_bodyshapes() if(!special) organ_owner.hud_used?.update_locked_slots() @@ -246,6 +246,9 @@ REMOVE_TRAIT(src, TRAIT_NODROP, ORGAN_INSIDE_BODY_TRAIT) interaction_flags_item |= INTERACT_ITEM_ATTACK_HAND_PICKUP + limb.owner?.synchronize_bodytypes() + limb.owner?.synchronize_bodyshapes() + if(!bodypart_overlay) return diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index a9905513e8c6..b4e090595b97 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -59,7 +59,7 @@ TOOL_SCALPEL = 100, /obj/item/knife = 50, TOOL_WIRECUTTER = 35) - time = 64 + time = 6.4 SECONDS surgery_effects_mood = TRUE /datum/surgery_step/reshape_face/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) @@ -93,7 +93,7 @@ for(var/namelist as anything in disguises.picture?.names_seen) names += namelist else - user.visible_message(span_warning("You have no picture to base the appearance on, reverting to random appearances.")) + to_chat(user, span_warning("You have no picture to base the appearance on, reverting to random appearances.")) for(var/i in 1 to 10) names += target.generate_random_mob_name(TRUE) else @@ -116,7 +116,7 @@ display_pain(target, "The pain fades, your face feels new and unfamiliar!") if(ishuman(target)) var/mob/living/carbon/human/human_target = target - human_target.sec_hud_set_ID() + human_target.update_ID_card() if(HAS_MIND_TRAIT(user, TRAIT_MORBID) && ishuman(user)) var/mob/living/carbon/human/morbid_weirdo = user morbid_weirdo.add_mood_event("morbid_abominable_surgery_success", /datum/mood_event/morbid_abominable_surgery_success) diff --git a/code/modules/surgery/stomachpump.dm b/code/modules/surgery/stomachpump.dm index 47f25074c3ac..be298cfd45cf 100644 --- a/code/modules/surgery/stomachpump.dm +++ b/code/modules/surgery/stomachpump.dm @@ -35,7 +35,7 @@ name = "pump stomach (hand)" accept_hand = TRUE repeatable = TRUE - time = 20 + time = 2 SECONDS success_sound = 'sound/items/handling/surgery/organ2.ogg' /datum/surgery_step/stomach_pump/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index b34de84da99c..672d29ad8257 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -9,7 +9,7 @@ var/implement_type = null //the current type of implement used. This has to be stored, as the actual typepath of the tool may not match the list type. var/accept_hand = FALSE //does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item. var/accept_any_item = FALSE //does the surgery step accept any item? If true, ignores implements. Compatible with require_hand. - var/time = 10 //how long does the step take? + var/time = 1 SECONDS //how long does the step take? var/repeatable = FALSE //can this step be repeated? Make shure it isn't last step, or else the surgeon will be stuck in the loop var/list/chems_needed = list() //list of chems needed to complete the step. Even on success, the step will have no effect if there aren't the chems required in the mob. var/require_all_chems = TRUE //any on the list or all on the list? diff --git a/code/modules/transport/tram/tram_doors.dm b/code/modules/transport/tram/tram_doors.dm index 5f9024978038..17173e79cd9a 100644 --- a/code/modules/transport/tram/tram_doors.dm +++ b/code/modules/transport/tram/tram_doors.dm @@ -159,19 +159,14 @@ for(var/turf/checked_turf in locs) for(var/mob/living/future_pancake in checked_turf) future_pancake.visible_message(span_warning("[src] beeps angrily and closes on [future_pancake]!"), span_userdanger("[src] beeps angrily and closes on you!")) - SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src) + var/sig_return = SEND_SIGNAL(future_pancake, COMSIG_LIVING_DOORCRUSHED, src) + future_pancake.add_splatter_floor(loc) + log_combat(src, future_pancake, "crushed") + var/door_wounding = (sig_return & DOORCRUSH_NO_WOUND) ? CANT_WOUND : 10 + future_pancake.apply_damage(DOOR_CRUSH_DAMAGE * 2, BRUTE, BODY_ZONE_CHEST, wound_bonus = door_wounding, attacking_item = src) + future_pancake.Paralyze(2 SECONDS) if(ishuman(future_pancake)) future_pancake.emote("scream") - future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 2) - future_pancake.Paralyze(2 SECONDS) - - else //for simple_animals & borgs - future_pancake.adjustBruteLoss(DOOR_CRUSH_DAMAGE * 2) - var/turf/location = get_turf(src) - //add_blood doesn't work for borgs/xenos, but add_blood_floor does. - future_pancake.add_splatter_floor(location) - - log_combat(src, future_pancake, "crushed") for(var/obj/vehicle/sealed/mecha/mech in checked_turf) // Your fancy metal won't save you here! mech.take_damage(DOOR_CRUSH_DAMAGE) diff --git a/code/modules/transport/tram/tram_signals.dm b/code/modules/transport/tram/tram_signals.dm index 52b3f45186c4..e160e3184724 100644 --- a/code/modules/transport/tram/tram_signals.dm +++ b/code/modules/transport/tram/tram_signals.dm @@ -658,9 +658,14 @@ var/list/obj/machinery/transport/guideway_sensor/sensor_candidates = list() for(var/obj/machinery/transport/guideway_sensor/sensor in SStransport.sensors) - if(sensor.z == src.z) - if((sensor.x == src.x && sensor.dir & NORTH|SOUTH) || (sensor.y == src.y && sensor.dir & EAST|WEST)) - sensor_candidates += sensor + if(sensor.z != src.z) + continue + if(sensor.x != src.x && !(sensor.dir & (NORTH|SOUTH))) + continue + if(sensor.y != src.y && !(sensor.dir & (EAST|WEST))) + continue + + sensor_candidates += sensor var/obj/machinery/transport/guideway_sensor/selected_sensor = get_closest_atom(/obj/machinery/transport/guideway_sensor, sensor_candidates, src) var/sensor_distance = get_dist(src, selected_sensor) diff --git a/code/modules/tutorials/tutorial_instruction.dm b/code/modules/tutorials/tutorial_instruction.dm index d5a1734978a3..acee2deee074 100644 --- a/code/modules/tutorials/tutorial_instruction.dm +++ b/code/modules/tutorials/tutorial_instruction.dm @@ -32,6 +32,7 @@ maptext_y = -2 mouse_opacity = MOUSE_OPACITY_TRANSPARENT layer = TUTORIAL_INSTRUCTIONS_LAYER + appearance_flags = parent_type::appearance_flags | KEEP_APART /atom/movable/screen/tutorial_instruction_text/Initialize(mapload, datum/hud/hud_owner, message, client/client) . = ..() diff --git a/code/modules/tutorials/tutorial_skip.dm b/code/modules/tutorials/tutorial_skip.dm index 48c4a9550dbc..6de6c7536191 100644 --- a/code/modules/tutorials/tutorial_skip.dm +++ b/code/modules/tutorials/tutorial_skip.dm @@ -24,6 +24,7 @@ /atom/movable/screen/tutorial_skip_text alpha = 0 layer = TUTORIAL_INSTRUCTIONS_LAYER + appearance_flags = parent_type::appearance_flags | KEEP_APART mouse_opacity = MOUSE_OPACITY_TRANSPARENT maptext_height = 32 maptext_width = 200 diff --git a/code/modules/tutorials/tutorials/switch_hands.dm b/code/modules/tutorials/tutorials/switch_hands.dm index a5214e91327c..d423667ac383 100644 --- a/code/modules/tutorials/tutorials/switch_hands.dm +++ b/code/modules/tutorials/tutorials/switch_hands.dm @@ -50,18 +50,28 @@ switch (stage) if (STAGE_SHOULD_SWAP_HAND) - var/hand_name = IS_RIGHT_INDEX(hand_to_watch) ? "right" : "left" + var/datum/keybinding/mob/select_hand/hand_keybinding + var/hand_name + if (IS_RIGHT_INDEX(hand_to_watch)) + hand_keybinding = /datum/keybinding/mob/select_hand/right + hand_name = "right" + else + hand_keybinding = /datum/keybinding/mob/select_hand/left + hand_name = "left" + show_instruction(keybinding_message( - /datum/keybinding/mob/swap_hands, + hand_keybinding, "Press '%KEY%' to use your [hand_name] hand", "Click 'SWAP' to use your [hand_name] hand", )) + if (STAGE_PICK_UP_ITEM) show_instruction("Pick something up!") /datum/tutorial/switch_hands/proc/on_swap_hands() SIGNAL_HANDLER + //FIXME: this checking breaks easily if (isnull(user.get_active_held_item())) stage = STAGE_PICK_UP_ITEM show_instructions() diff --git a/code/modules/unit_tests/crafting.dm b/code/modules/unit_tests/crafting.dm index d76926e2749e..ed4ee4f631c8 100644 --- a/code/modules/unit_tests/crafting.dm +++ b/code/modules/unit_tests/crafting.dm @@ -1,11 +1,3 @@ -/** - * The accepted discrepancy between the amount of material between an item when crafted and the same item when spawned - * so we don't have to be obnoxious about small portion of mats being lost for items that are processed in multiple other - * results (eg. a slab of meat being cut in three cutlets, and each cutlet can be used to craft different things) - * right now it's around 3 points per 100 units of a material. - */ -#define ACCEPTABLE_MATERIAL_DEVIATION 0.033 - /** * Check if a generic atom (because both mobs and the crafter machinery can do it) can potentially craft all recipes, * with the exact same types required in the recipe, and also compare the materials of crafted result with one of the same type @@ -153,35 +145,17 @@ if(result.custom_materials == copycat.custom_materials) delete_components(spawned_components) return - var/comparison_failed = TRUE - if(length(result.custom_materials) == length(copycat.custom_materials)) - comparison_failed = FALSE - for(var/mat in result.custom_materials) - var/enemy_amount = copycat.custom_materials[mat] - if(!enemy_amount) //break the loop early, we cannot perform a division by zero anyway - comparison_failed = TRUE - break - var/ratio_difference = abs((result.custom_materials[mat] / enemy_amount) - 1) - if(ratio_difference > ACCEPTABLE_MATERIAL_DEVIATION) - comparison_failed = TRUE - if(comparison_failed) - var/warning = "custom_materials of [result.type] when crafted and spawned don't match" - var/what_it_should_be = "null" + if(!result.compare_materials(copycat)) + var/warning = "custom_materials of [result.type] when crafted compared to just spawned don't match" + var/what_it_should_be = result.get_materials_english_list() //compose a text string containing the syntax and paths to use for editing the custom_materials var if(result.custom_materials) - what_it_should_be = "\[list(" - var/index = 1 - var/mats_len = length(result.custom_materials) - for(var/datum/material/mat as anything in result.custom_materials) - what_it_should_be += "[mat.type] = [result.custom_materials[mat]]" - if(index < mats_len) - what_it_should_be += ", " - index++ - what_it_should_be += ")\] (you can round values a bit)" + what_it_should_be += " (you can round values a bit)" TEST_FAIL("[warning]. custom_materials should be [what_it_should_be]. \ Otherwise set the requirements_mats_blacklist variable for [recipe] \ or remove the CRAFT_ENFORCE_MATERIALS_PARITY crafting flag from it") + delete_components(spawned_components) /** @@ -195,5 +169,3 @@ /datum/component/personal_crafting/unit_test ignored_flags = CRAFT_MUST_BE_LEARNED|CRAFT_ONE_PER_TURF|CRAFT_CHECK_DIRECTION|CRAFT_CHECK_DENSITY|CRAFT_ON_SOLID_GROUND|CRAFT_IGNORE_DO_AFTER - -#undef ACCEPTABLE_MATERIAL_DEVIATION diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index e70ef1a7eb65..7d9df1df417e 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -472,11 +472,11 @@ REMOVE_TRAIT(gourmet, TRAIT_FISH_EATER, TRAIT_FISH_TESTING) fish.attack(gourmet, gourmet) - TEST_ASSERT(gourmet.has_reagent(/datum/reagent/consumable/nutriment/protein), "Human doesn't have ingested protein after eating fish") - TEST_ASSERT(gourmet.has_reagent(/datum/reagent/blood), "Human doesn't have ingested blood after eating fish") + TEST_ASSERT(gourmet.has_reagent(/datum/reagent/consumable/nutriment/protein), "Human hasn't ingested protein when eating fish") + TEST_ASSERT(gourmet.has_reagent(/datum/reagent/blood), "Human hasn't ingested blood when eating fish") TEST_ASSERT(gourmet.has_reagent(/datum/reagent/fishdummy), "Human doesn't have the reagent from /datum/fish_trait/dummy after eating fish") - TEST_ASSERT_EQUAL(fish.status, FISH_DEAD, "The fish is not dead, despite having sustained enough damage that it should. health: [fish.health]") + TEST_ASSERT_EQUAL(fish.status, FISH_DEAD, "The fish is not dead, despite having sustained enough damage that it should. health: [PERCENT(fish.get_health_percentage())]%") var/obj/item/organ/stomach/belly = gourmet.get_organ_slot(ORGAN_SLOT_STOMACH) belly.reagents.clear_reagents() diff --git a/code/modules/unit_tests/focus_only_tests.dm b/code/modules/unit_tests/focus_only_tests.dm index bd2596e16d61..28caadc58ef5 100644 --- a/code/modules/unit_tests/focus_only_tests.dm +++ b/code/modules/unit_tests/focus_only_tests.dm @@ -59,3 +59,6 @@ /// Checks that foodtypes are the same for food whether it's spawned or crafted (with the exact required types) /datum/unit_test/focus_only/check_foodtypes + +///Checks that items have roughly the same materials whenever spawned via processing/microwaving/baking etc. or any other mean. +/datum/unit_test/focus_only/check_materials_when_processed diff --git a/code/modules/unit_tests/mob_damage.dm b/code/modules/unit_tests/mob_damage.dm index 6c8a2a19141b..1cc63466bc99 100644 --- a/code/modules/unit_tests/mob_damage.dm +++ b/code/modules/unit_tests/mob_damage.dm @@ -93,16 +93,20 @@ * * amount - the amount of damage to verify that the mob has * * included_types - Bitflag of damage types to check. */ -/datum/unit_test/mob_damage/proc/verify_damage(mob/living/testing_mob, amount, included_types = ALL) +/datum/unit_test/mob_damage/proc/verify_damage(mob/living/carbon/testing_mob, amount, included_types = ALL) if(included_types & TOXLOSS) TEST_ASSERT_EQUAL(testing_mob.getToxLoss(), amount, \ "[testing_mob] should have [amount] toxin damage, instead they have [testing_mob.getToxLoss()]!") if(included_types & BRUTELOSS) TEST_ASSERT_EQUAL(round(testing_mob.getBruteLoss(), 1), amount, \ - "[testing_mob] should have [amount] brute damage, instead they have [testing_mob.getBruteLoss()]!") + "(Testing getBruteLoss()) [testing_mob] should have [amount] brute damage, instead they have [testing_mob.getBruteLoss()]!") + TEST_ASSERT_EQUAL(round(testing_mob.getBruteLossForType(BODYTYPE_ORGANIC), 1), amount, \ + "(Testing getBruteLossForType(BODYTYPE_ORGANIC)) [testing_mob] should have [amount] brute damage, instead they have [testing_mob.getBruteLossForType(BODYTYPE_ORGANIC)]!") if(included_types & FIRELOSS) TEST_ASSERT_EQUAL(round(testing_mob.getFireLoss(), 1), amount, \ - "[testing_mob] should have [amount] burn damage, instead they have [testing_mob.getFireLoss()]!") + "(Testing getFireLoss()) [testing_mob] should have [amount] burn damage, instead they have [testing_mob.getFireLoss()]!") + TEST_ASSERT_EQUAL(round(testing_mob.getFireLossForType(BODYTYPE_ORGANIC), 1), amount, \ + "(Testing getFireLossForType(BODYTYPE_ORGANIC)) [testing_mob] should have [amount] burn damage, instead they have [testing_mob.getFireLossForType(BODYTYPE_ORGANIC)]!") if(included_types & OXYLOSS) TEST_ASSERT_EQUAL(testing_mob.getOxyLoss(), amount, \ "[testing_mob] should have [amount] oxy damage, instead they have [testing_mob.getOxyLoss()]!") @@ -124,7 +128,7 @@ * * bodytypes - the bodytypes of damage to apply * * forced - whether or not this is forced damage */ -/datum/unit_test/mob_damage/proc/apply_damage(mob/living/testing_mob, amount, expected = -amount, included_types = ALL, biotypes = ALL, bodytypes = ALL, forced = FALSE) +/datum/unit_test/mob_damage/proc/apply_damage(mob/living/carbon/testing_mob, amount, expected = -amount, included_types = ALL, biotypes = ALL, bodytypes = ALL, forced = FALSE) var/damage_returned if(included_types & TOXLOSS) damage_returned = testing_mob.adjustToxLoss(amount, updating_health = FALSE, forced = forced, required_biotype = biotypes) @@ -161,7 +165,7 @@ * * bodytypes - the bodytypes of damage to apply * * forced - whether or not this is forced damage */ -/datum/unit_test/mob_damage/proc/set_damage(mob/living/testing_mob, amount, expected = -amount, included_types = ALL, biotypes = ALL, bodytypes = ALL, forced = FALSE) +/datum/unit_test/mob_damage/proc/set_damage(mob/living/carbon/testing_mob, amount, expected = -amount, included_types = ALL, biotypes = ALL, bodytypes = ALL, forced = FALSE) var/damage_returned if(included_types & TOXLOSS) damage_returned = testing_mob.setToxLoss(amount, updating_health = FALSE, forced = forced, required_biotype = biotypes) @@ -469,7 +473,7 @@ * * expected - the expected return value of the damage procs, if it differs from the default of (amount * 4) * * included_types - Bitflag of damage types to check. */ -/datum/unit_test/mob_damage/animal/verify_damage(mob/living/testing_mob, amount, expected, included_types = ALL) +/datum/unit_test/mob_damage/animal/verify_damage(mob/living/carbon/testing_mob, amount, expected, included_types = ALL) if(included_types & TOXLOSS) TEST_ASSERT_EQUAL(testing_mob.getToxLoss(), 0, \ "[testing_mob] should have [0] toxin damage, instead they have [testing_mob.getToxLoss()]!") @@ -487,7 +491,7 @@ "[testing_mob] should have [amount] stamina damage, instead they have [testing_mob.getStaminaLoss()]!") return TRUE -/datum/unit_test/mob_damage/animal/test_sanity_simple(mob/living/test_mob) +/datum/unit_test/mob_damage/animal/test_sanity_simple(mob/living/carbon/test_mob) // check to see if basic mob damage works // Simple damage and healing @@ -518,7 +522,7 @@ if(!test_apply_damage(test_mob, amount = -35, expected = 0)) TEST_FAIL("ABOVE FAILURE: failed test_sanity_simple! overhealing was not applied correctly") -/datum/unit_test/mob_damage/animal/test_sanity_complex(mob/living/test_mob) +/datum/unit_test/mob_damage/animal/test_sanity_complex(mob/living/carbon/test_mob) // Heal up, so that errors from the previous tests we won't cause this one to fail test_mob.fully_heal(HEAL_DAMAGE) var/damage_returned diff --git a/code/modules/unit_tests/organs.dm b/code/modules/unit_tests/organs.dm index 6162bd43e5b0..f7c0b38f453c 100644 --- a/code/modules/unit_tests/organs.dm +++ b/code/modules/unit_tests/organs.dm @@ -83,6 +83,9 @@ "Mob level \"apply organ damage\" returned the wrong value for [slot_to_use] organ with default arguments.") TEST_ASSERT_EQUAL(dummy.get_organ_loss(slot_to_use), test_organ.maxHealth, \ "Mob level \"apply organ damage\" can exceed the [slot_to_use] organ's damage cap with default arguments.") + TEST_ASSERT_EQUAL(dummy.get_organ_loss(slot_to_use, required_organ_flag = test_organ.organ_flags), test_organ.maxHealth, \ + "(Testing get_organ_loss() with required_organ_flag = [test_organ.organ_flags]) \ + Mob level \"apply organ damage\" can exceed the [slot_to_use] organ's damage cap with default arguments.") dummy.fully_heal(HEAL_ORGANS) // Tests [mob/living/proc/set_organ_damage] @@ -97,6 +100,9 @@ "Mob level \"apply organ damage\" returned the wrong value for [slot_to_use] organ with a large maximum supplied.") TEST_ASSERT_EQUAL(dummy.get_organ_loss(slot_to_use), test_organ.maxHealth, \ "Mob level \"apply organ damage\" can exceed the [slot_to_use] organ's damage cap with a large maximum supplied.") + TEST_ASSERT_EQUAL(dummy.get_organ_loss(slot_to_use, required_organ_flag = test_organ.organ_flags), test_organ.maxHealth, \ + "(Testing get_organ_loss() with required_organ_flag = [test_organ.organ_flags]) \ + Mob level \"apply organ damage\" can exceed the [slot_to_use] organ's damage cap with a large maximum supplied.") dummy.fully_heal(HEAL_ORGANS) ///Allocate a human mob, give 'em a skillchip and a generic trauma, then see if it throws any error when the brain is removed. diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 1ed5c73ed480..49ee85862bee 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -276,8 +276,10 @@ GLOBAL_VAR_INIT(focused_tests, focused_tests()) /obj/effect/bug_moving, //The abstract grown item expects a seed, but doesn't have one /obj/item/food/grown, - ///Single use case holder atom requiring a user + //Single use case holder atom requiring a user /atom/movable/looking_holder, + //Should not exist outside of holders + /obj/effect/decal/cleanable/blood/trail, ) // Everything that follows is a typesof() check. diff --git a/code/modules/unit_tests/washing.dm b/code/modules/unit_tests/washing.dm index c593b7dfc3b6..795c66d018f1 100644 --- a/code/modules/unit_tests/washing.dm +++ b/code/modules/unit_tests/washing.dm @@ -10,7 +10,7 @@ VAR_PRIVATE/clean_sig_caught = 0 /datum/unit_test/washing/Run() - for(var/i in subtypesof(/obj/effect/decal/cleanable) + cleanable_bonus_list) + for(var/i in subtypesof(/obj/effect/decal/cleanable) + cleanable_bonus_list - uncreatables) var/atom/movable/to_clean = allocate(i) var/mopable = HAS_TRAIT(to_clean, TRAIT_MOPABLE) diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index bdcef67d046b..c2dbf1a675e9 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -397,3 +397,10 @@ progression_minimum = 30 MINUTES purchasable_from = parent_type::purchasable_from & ~UPLINK_SPY +/datum/uplink_item/role_restricted/concussivedisk + name = "Hyperconcussive Diode Disk" + desc = "A diode configuration disk that allows an emitter to shoot potent explosive lasers. \ + Please note that this will halve the fire-rate of the emitter." + item = /obj/item/emitter_disk/blast + cost = 5 + restricted_roles = list(JOB_STATION_ENGINEER, JOB_CHIEF_ENGINEER) diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm index 289cec43f1ec..2e4b17717808 100644 --- a/code/modules/uplink/uplink_items/nukeops.dm +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -498,18 +498,7 @@ item = /obj/item/storage/backpack/duffelbag/syndie/x4 cost = 10 // 50% discount! -/datum/uplink_item/explosives/military_grade/emp - name = "Syndicate EMP Bomb" - desc = "A variation of the syndicate bomb designed to produce a large EMP effect." - item = /obj/item/sbeacondrop/emp - cost = 6 - -/datum/uplink_item/explosives/syndicate_bomb/emp/New() - ..() - if(HAS_TRAIT(SSstation, STATION_TRAIT_CYBERNETIC_REVOLUTION)) - cost *= 2 - -/datum/uplink_item/explosives/syndicate_bomb +/datum/uplink_item/explosives/military_grade/syndicate_bomb name = "Syndicate Bomb" desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ with a minimum of %MIN_BOMB_TIMER seconds, and can be bolted to the floor with a wrench to prevent \ @@ -520,10 +509,21 @@ item = /obj/item/sbeacondrop/bomb cost = 8 -/datum/uplink_item/explosives/syndicate_bomb/New() +/datum/uplink_item/explosives/military_grade/syndicate_bomb/New() . = ..() desc = replacetext(desc, "%MIN_BOMB_TIMER", SYNDIEBOMB_MIN_TIMER_SECONDS) +/datum/uplink_item/explosives/military_grade/syndicate_bomb/emp + name = "Syndicate EMP Bomb" + desc = "A variation of the syndicate bomb designed to produce a large EMP effect." + item = /obj/item/sbeacondrop/emp + cost = 6 + +/datum/uplink_item/explosives/military_grade/syndicate_bomb/emp/New() + . = ..() + if(HAS_TRAIT(SSstation, STATION_TRAIT_CYBERNETIC_REVOLUTION)) + cost *= 2 + // Support (Borgs and Reinforcements) /datum/uplink_category/reinforcements diff --git a/code/modules/uplink/uplink_items/spy_unique.dm b/code/modules/uplink/uplink_items/spy_unique.dm index f0e25d7bb686..04f9b4ba6f54 100644 --- a/code/modules/uplink/uplink_items/spy_unique.dm +++ b/code/modules/uplink/uplink_items/spy_unique.dm @@ -155,3 +155,40 @@ item = /obj/item/melee/baton/nunchaku cost = SPY_UPPER_COST_THRESHOLD uplink_item_flags = SYNDIE_ILLEGAL_TECH | SYNDIE_TRIPS_CONTRABAND + +/datum/uplink_item/spy_unique/penbang + name = "Penbang" + desc = "A flashbang disguised as a normal pen - click and throw! Has no other warning upon being activated. \ + Fuse duration depends on how far the cap is twisted." + item = /obj/item/pen/penbang + cost = 1 + +/datum/uplink_item/spy_unique/cameraflash + name = "Camera Flash" + desc = "A camera with a high-powered flash. Can be used as a normal flash when in close proximity to a target." + item = /obj/item/camera/flash + cost = 1 + +/datum/uplink_item/spy_unique/daggerboot + name = "Boot Dagger" + desc = "A pair of boots with a dagger embedded into the sole. Kicks with these will stab the target, potentially causing bleeding." + item = /obj/item/clothing/shoes/jackboots/dagger + cost = 1 + +/datum/uplink_item/spy_unique/monster_cube_box + name = "Random Monster Cubes" + desc = "A box containing a bunch of random monster cubes. Add water and see what you get!" + item = /obj/item/storage/box/monkeycubes/random + cost = SPY_LOWER_COST_THRESHOLD // There's some really bad stuff in here but also some really mild stuff + +/datum/uplink_item/spy_unique/sleeping_carp + name = "Sleeping Carp Technique" + desc = "A scroll teaching you the basics of the Sleeping Carp martial art." + item = /datum/uplink_item/stealthy_weapons/martialarts::item + cost = /datum/uplink_item/stealthy_weapons/martialarts::cost + +/datum/uplink_item/spy_unique/spider_bite + name = "Spider Bite Technique" + desc = "A scroll teaching you the basics of the Spider Bite martial art." + item = /obj/item/book/granter/martial/spider_bite + cost = SPY_UPPER_COST_THRESHOLD // While SCarp is firmly in the upper threshold, Spider Bite can be in either middle or upper. diff --git a/code/modules/uplink/uplink_items/stealthy.dm b/code/modules/uplink/uplink_items/stealthy.dm index 53bc37f59e66..98edb0543a99 100644 --- a/code/modules/uplink/uplink_items/stealthy.dm +++ b/code/modules/uplink/uplink_items/stealthy.dm @@ -48,7 +48,7 @@ name = "Suppressor" desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Makarov, Stechkin APS and C-20r, but not revolvers or energy guns." item = /obj/item/suppressor - cost = 3 + cost = 1 surplus = 10 purchasable_from = ~UPLINK_CLOWN_OPS @@ -88,7 +88,7 @@ population_minimum = TRAITOR_POPULATION_LOWPOP cost = 17 surplus = 0 - purchasable_from = ~UPLINK_ALL_SYNDIE_OPS + purchasable_from = ~(UPLINK_ALL_SYNDIE_OPS|UPLINK_SPY) /datum/uplink_item/stealthy_weapons/crossbow name = "Miniature Energy Crossbow" diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 6bfbc1bbae19..eeacfbc17760 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -17,7 +17,7 @@ ///list of headlight colors we use to pick through when we have party mode due to emag var/headlight_colors = list(COLOR_RED, COLOR_ORANGE, COLOR_YELLOW, COLOR_LIME, COLOR_BRIGHT_BLUE, COLOR_CYAN, COLOR_PURPLE) ///Cooldown time inbetween [/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice()] usages - var/dice_cooldown_time = 150 + var/dice_cooldown_time = 15 SECONDS ///How many times kidnappers in the clown car said thanks var/thankscount = 0 ///Current status of the cannon, alternates between CLOWN_CANNON_INACTIVE, CLOWN_CANNON_BUSY and CLOWN_CANNON_READY diff --git a/code/modules/vehicles/lavaboat.dm b/code/modules/vehicles/lavaboat.dm index 3c9046b399ed..3a8d86879bc8 100644 --- a/code/modules/vehicles/lavaboat.dm +++ b/code/modules/vehicles/lavaboat.dm @@ -33,14 +33,14 @@ name = "Goliath Bone Oar" result = /obj/item/oar reqs = list(/obj/item/stack/sheet/bone = 2) - time = 15 + time = 1.5 SECONDS category = CAT_TOOLS /datum/crafting_recipe/boat name = "Goliath Hide Boat" result = /obj/vehicle/ridden/lavaboat reqs = list(/obj/item/stack/sheet/animalhide/goliath_hide = 3) - time = 50 + time = 5 SECONDS category = CAT_TOOLS /obj/vehicle/ridden/lavaboat/plasma diff --git a/code/modules/vehicles/mecha/combat/justice.dm b/code/modules/vehicles/mecha/combat/justice.dm deleted file mode 100644 index bf428ff7ed21..000000000000 --- a/code/modules/vehicles/mecha/combat/justice.dm +++ /dev/null @@ -1,768 +0,0 @@ -#define DISMEMBER_CHANCE_HIGH 50 -#define DISMEMBER_CHANCE_LOW 25 - -#define MOVEDELAY_IDLE 3 -#define MOVEDELAY_INVISIBILITY 2 -#define MOVEDELAY_PRE_CHARGE 4 - -/obj/vehicle/sealed/mecha/justice - name = "\improper Justice" - desc = "Black and red syndicate mech designed for execution orders. \ - For safety reasons, the syndicate advises against standing too close." - icon_state = "justice" - base_icon_state = "justice" - movedelay = MOVEDELAY_IDLE - max_integrity = 300 - accesses = list(ACCESS_SYNDICATE) - armor_type = /datum/armor/mecha_justice - max_temperature = 40000 - force = 60 // dangerous in melee - damtype = BRUTE - destruction_sleep_duration = 10 - exit_delay = 10 - wreckage = /obj/structure/mecha_wreckage/justice - mech_type = EXOSUIT_MODULE_JUSTICE - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - mecha_flags = ID_LOCK_ON | QUIET_STEPS | QUIET_TURNS | CAN_STRAFE | HAS_LIGHTS | MMI_COMPATIBLE | IS_ENCLOSED | AI_COMPATIBLE - destroy_wall_sound = 'sound/vehicles/mecha/mech_blade_break_wall.ogg' - brute_attack_sound = 'sound/vehicles/mecha/mech_blade_attack.ogg' - attack_verbs = list("cut", "cuts", "cutting") - weapons_safety = TRUE - safety_sound_custom = TRUE - max_equip_by_category = list( - MECHA_L_ARM = null, - MECHA_R_ARM = null, - MECHA_UTILITY = 3, - MECHA_POWER = 1, - MECHA_ARMOR = 2, - ) - step_energy_drain = 2 - allow_diagonal_movement = TRUE - /// What actions does justice execute? - var/justice_state = JUSTICE_IDLE - /// Refs to our engines - var/list/obj/justice_engines = list() - /// UI arrow which directs justice mech during charge - var/atom/movable/screen/justice_charge_arrow/charge_arrow - /// Track turf to where justice wanna charge while drag right mouse button - var/turf/turf_to_charge - /// Maximum range of charge attack. - var/max_charge_range = 7 - /// Is charge used or can be used. - var/charge_on_cooldown = FALSE - /// Remember strafe mode when we press right click to make charge attack. We need it to return strafe mode that was before we pressed right click button. - var/remember_strafe = FALSE - /// Sound when mech do charge attack. - var/charge_attack_sound = 'sound/vehicles/mecha/mech_charge_attack.ogg' - /// Aoe pre attack sound. - var/stealth_pre_attack_sound = 'sound/vehicles/mecha/mech_stealth_pre_attack.ogg' - /// Aoe attack sound. - var/stealth_attack_sound = 'sound/vehicles/mecha/mech_stealth_attack.ogg' - /// Sound plays when one of justice engine being succesful attacked. - var/engine_attacked_sound = 'sound/vehicles/mecha/justice_shield_broken.ogg' - /// Sound plays when justice lose all engines. - var/shields_disabled_sound = 'sound/vehicles/mecha/justice_warning.ogg' - /// Sound plays when justice pilot press right mouse button to prepare charge attack. - var/pre_charge_sound = 'sound/vehicles/mecha/justice_pre_charge.ogg' - -/datum/armor/mecha_justice - melee = 50 - bullet = 30 - laser = 30 - energy = 30 - fire = 100 - acid = 100 - -/obj/vehicle/sealed/mecha/justice/Initialize(mapload, built_manually) - . = ..() - RegisterSignal(src, COMSIG_MECHA_MELEE_CLICK, PROC_REF(justice_attack)) //We do not hit those who are in crit or stun. We are finishing them. - RegisterSignal(src, COMSIG_ATOM_PRE_BULLET_ACT, PROC_REF(on_ranged_hit)) - RegisterSignal(src, COMSIG_JUSTICE_INVISIBILITY_ACTIVATE, PROC_REF(visibility_active)) - RegisterSignal(src, COMSIG_JUSTICE_INVISIBILITY_DEACTIVATE, PROC_REF(visibility_deactive)) - transform = transform.Scale(1.04, 1.04) - for(var/i in 1 to 3) - addtimer(CALLBACK(src, PROC_REF(create_engine)), i * 1 SECONDS) - -/obj/vehicle/sealed/mecha/justice/generate_actions() - . = ..() - initialize_passenger_action_type(/datum/action/vehicle/sealed/mecha/invisibility) - -/obj/vehicle/sealed/mecha/justice/update_icon_state() - . = ..() - if(!LAZYLEN(occupants)) - return - icon_state = weapons_safety ? "[base_icon_state]" : "[base_icon_state]-angry" - if(!has_gravity()) - icon_state = "[icon_state]-fly" - -/obj/vehicle/sealed/mecha/justice/set_safety(mob/user) - . = ..() - - playsound(src, 'sound/vehicles/mecha/mech_blade_safty.ogg', 75, FALSE) //everyone need to hear this sound - - update_appearance(UPDATE_ICON_STATE) - -/obj/vehicle/sealed/mecha/justice/Move(newloc, dir) - if(HAS_TRAIT(src, TRAIT_IMMOBILIZED)) - return - . = ..() - update_appearance(UPDATE_ICON_STATE) - -/obj/vehicle/sealed/mecha/justice/mob_enter(mob/he_drive, silent) - . = ..() - if(!.) - return - if(!isliving(he_drive)) - return - if(!is_driver(he_drive)) - return - RegisterSignal(he_drive.canon_client, COMSIG_CLIENT_MOUSEDOWN, PROC_REF(driver_mousedown)) - activate_engines() - var/datum/hud/user_hud = he_drive.hud_used - if(!user_hud) - return - charge_arrow = new /atom/movable/screen/justice_charge_arrow(null, user_hud) - charge_arrow.screen_loc = around_player - charge_arrow.icon_state = charge_arrow.inactive_icon - user_hud.infodisplay += charge_arrow - user_hud.show_hud(user_hud.hud_version) - -/obj/vehicle/sealed/mecha/justice/mob_exit(mob/exiter, silent, randomstep, forced) - . = ..() - null_arrow(exiter.hud_used) - deactivate_engines() - UnregisterSignal(exiter.canon_client, COMSIG_CLIENT_MOUSEDOWN) - -/obj/vehicle/sealed/mecha/justice/Destroy() - if(LAZYLEN(justice_engines) < 1) - return ..() - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - QDEL_NULL(justice_engine) - return ..() - -/obj/vehicle/sealed/mecha/justice/proc/null_arrow(datum/hud/user_hud) - if(isnull(user_hud)) - return - user_hud.infodisplay -= charge_arrow - user_hud.show_hud(user_hud.hud_version) - -/obj/vehicle/sealed/mecha/justice/proc/driver_mousedown(client/source, atom/target, turf/location, control, params) - SIGNAL_HANDLER - - var/list/modifiers = params2list(params) - - if(!LAZYACCESS(modifiers, RIGHT_CLICK)) - return - if(charge_on_cooldown) - for(var/mob/mob_occupant as anything in occupants) - balloon_alert(mob_occupant, "on cooldown!") - return - if(!weapons_safety) - for(var/mob/mob_occupant as anything in occupants) - balloon_alert(mob_occupant, "katana is out of the sheath!") - return - - turf_to_charge = get_turf(target) - if(!isnull(turf_to_charge)) - var/rotate_dir = get_dir(src, turf_to_charge) - animate(charge_arrow, transform = matrix(dir2angle(rotate_dir), MATRIX_ROTATE), 0.2 SECONDS) - dir = rotate_dir - else - set_charge_mouse_pointer(TRUE) - charge_arrow.icon_state = charge_arrow.active_icon - justice_state = JUSTICE_CHARGE - movedelay = MOVEDELAY_PRE_CHARGE - remember_strafe = strafe - strafe = TRUE - set_charge_mouse_pointer() - playsound(src, pre_charge_sound, 75, FALSE) - SEND_SIGNAL(src, COMSIG_JUSTICE_CHARGE_BUTTON_DOWN) - RegisterSignal(source, COMSIG_CLIENT_MOUSEUP, PROC_REF(driver_mouseup)) - RegisterSignal(source, COMSIG_CLIENT_MOUSEDRAG, PROC_REF(driver_mousedrag)) - -/obj/vehicle/sealed/mecha/justice/proc/driver_mousedrag(client/source, atom/src_object, atom/over_object, turf/src_location, turf/over_location, src_control, over_control, params) - SIGNAL_HANDLER - - var/list/modifiers = params2list(params) - - if(!LAZYACCESS(modifiers, RIGHT_CLICK)) - return - - if(justice_state != JUSTICE_CHARGE) - return - - turf_to_charge = get_turf(over_object) - if(isnull(turf_to_charge)) - set_charge_mouse_pointer(TRUE) - return - set_charge_mouse_pointer() - var/rotate_dir = get_dir(src, turf_to_charge) - animate(charge_arrow, transform = matrix(dir2angle(rotate_dir), MATRIX_ROTATE), 0.2 SECONDS) - dir = rotate_dir - -/obj/vehicle/sealed/mecha/justice/proc/driver_mouseup(client/source, atom/target, turf/location, control, params) - SIGNAL_HANDLER - - var/list/modifiers = params2list(params) - - if(!LAZYACCESS(modifiers, RIGHT_CLICK)) - return - - charge_attack(turf_to_charge) - - UnregisterSignal(source, COMSIG_CLIENT_MOUSEUP) - UnregisterSignal(source, COMSIG_CLIENT_MOUSEDRAG) - charge_arrow.icon_state = charge_arrow.inactive_icon - strafe = remember_strafe - justice_state = JUSTICE_IDLE - movedelay = MOVEDELAY_IDLE - charge_on_cooldown = TRUE - for(var/mob/mob_occupant as anything in occupants) - set_safety(mob_occupant) - break - addtimer(CALLBACK(src, PROC_REF(charge_recharge)), 5 SECONDS) - set_charge_mouse_pointer() - -/obj/vehicle/sealed/mecha/justice/proc/charge_recharge() - charge_on_cooldown = FALSE - set_charge_mouse_pointer() - -/obj/vehicle/sealed/mecha/justice/proc/create_engine() - var/obj/effect/justice_engine/justice_engine = new /obj/effect/justice_engine(get_turf(src)) - justice_engine.transform *= 0.6 - justice_engine.orbit(src, 25, FALSE, 30) - justice_engine.change_engine_state(JUSTICE_ENGINE_DEACTIVE) - justice_engines.Add(justice_engine) - -/obj/vehicle/sealed/mecha/justice/proc/activate_engines() - if(LAZYLEN(justice_engines) < 1) - return - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - if(justice_engine.engine_state != JUSTICE_ENGINE_DEACTIVE) - continue - justice_engine.change_engine_state(JUSTICE_ENGINE_ACTIVATING) - addtimer(CALLBACK(src, PROC_REF(after_engine_activated), justice_engine), 0.4 SECONDS) - return null - -/obj/vehicle/sealed/mecha/justice/proc/after_engine_activated(obj/effect/justice_engine/justice_engine) - justice_engine.change_engine_state(justice_engine.remember_engine_state_on_deactivate) - -/obj/vehicle/sealed/mecha/justice/proc/deactivate_engines() - if(LAZYLEN(justice_engines) < 1) - return - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - justice_engine.remember_engine_state_on_deactivate = justice_engine.engine_state - if(justice_engine.engine_state == JUSTICE_ENGINE_DEACTIVE) - continue - justice_engine.change_engine_state(JUSTICE_ENGINE_DEACTIVATING) - addtimer(CALLBACK(src, PROC_REF(after_engine_deactivated), justice_engine), 0.4 SECONDS) - return null - -/obj/vehicle/sealed/mecha/justice/proc/after_engine_deactivated(obj/effect/justice_engine/justice_engine) - justice_engine.change_engine_state(JUSTICE_ENGINE_DEACTIVE) - -/obj/vehicle/sealed/mecha/justice/proc/get_engine_by_state(state) - if(LAZYLEN(justice_engines) < 1) - return - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - if(justice_engine.engine_state != state) - continue - return justice_engine - return null - -/obj/vehicle/sealed/mecha/justice/proc/justice_attack(datum/source, mob/living/pilot, atom/target, on_cooldown, is_adjacent) - SIGNAL_HANDLER - - if(justice_state == JUSTICE_INVISIBILITY) - stealth_attack_aoe(source, pilot, target, on_cooldown, is_adjacent) - return COMPONENT_CANCEL_MELEE_CLICK - - if(justice_state == JUSTICE_CHARGE) - return COMPONENT_CANCEL_MELEE_CLICK - - if(fatality_attack(source, pilot, target, on_cooldown, is_adjacent)) - return COMPONENT_CANCEL_MELEE_CLICK - - if(!iscarbon(target)) - return - var/mob/living/carbon/carbon_target = target - if(carbon_target.stat >= UNCONSCIOUS) - return - var/obj/effect/justice_engine/cooldown_engine = get_engine_by_state(JUSTICE_ENGINE_ONCOOLDOWN) - if(isnull(cooldown_engine)) - return - cooldown_engine.change_engine_state(JUSTICE_ENGINE_ACTIVE) - return - -/obj/vehicle/sealed/mecha/justice/proc/set_charge_mouse_pointer(disabled = FALSE) - if(justice_state != JUSTICE_CHARGE) - return set_mouse_pointer() - if(disabled) - mouse_pointer = 'icons/effects/mouse_pointers/justice_mouse_charge-disabled.dmi' - else - mouse_pointer = 'icons/effects/mouse_pointers/justice_mouse_charge.dmi' - - for(var/mob/mob_occupant as anything in occupants) - mob_occupant.update_mouse_pointer() - -/obj/vehicle/sealed/mecha/justice/set_mouse_pointer() - if(weapons_safety) - mouse_pointer = "" - else if(charge_on_cooldown) - mouse_pointer = 'icons/effects/mouse_pointers/justice_mouse_charge-cooldown.dmi' - else - if(equipment_disabled) - mouse_pointer = 'icons/effects/mouse_pointers/justice_mouse_charge-disabled.dmi' - else - mouse_pointer = 'icons/effects/mouse_pointers/justice_mouse.dmi' - - for(var/mob/mob_occupant as anything in occupants) - mob_occupant.update_mouse_pointer() - -/obj/vehicle/sealed/mecha/justice/hitby(atom/movable/throwed_by, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - . = ..() - if(isitem(throwed_by)) - var/obj/item/throwed_by_item = throwed_by - if(throwed_by_item.throwforce < 10) /// don't counts 0-9 damage for such moments like throwforce from severed limbs and other unpleasant little things for which you would not want to lose a charge. - block_effect() - return - - var/obj/effect/justice_engine/active_engine = get_engine_by_state(JUSTICE_ENGINE_ACTIVE) - if(isnull(active_engine)) - return ..() - - active_engine.change_engine_state(JUSTICE_ENGINE_ONCOOLDOWN) - playsound(src, engine_attacked_sound , 75, FALSE) - after_engine_attacked() - -/obj/vehicle/sealed/mecha/justice/attacked_by(obj/item/attacking_item, mob/living/user) - if(attacking_item.force < 10) /// don't counts 0-9 damage for such moments like throwforce from severed limbs and other unpleasant little things for which you would not want to lose a charge. - block_effect() - return - - var/obj/effect/justice_engine/active_engine = get_engine_by_state(JUSTICE_ENGINE_ACTIVE) - if(isnull(active_engine)) - return ..() - - active_engine.change_engine_state(JUSTICE_ENGINE_ONCOOLDOWN) - playsound(src, engine_attacked_sound , 75, FALSE) - after_engine_attacked() - -/obj/vehicle/sealed/mecha/justice/emp_act(severity) - var/obj/effect/justice_engine/active_engine = get_engine_by_state(JUSTICE_ENGINE_ACTIVE) - if(isnull(active_engine)) - return ..() - - active_engine.change_engine_state(JUSTICE_ENGINE_ONCOOLDOWN) - playsound(src, engine_attacked_sound , 75, FALSE) - after_engine_attacked() - - return EMP_PROTECT_SELF - -/obj/vehicle/sealed/mecha/justice/proc/on_ranged_hit(obj/vehicle/sealed/mecha/source, obj/projectile/hitting_projectile) - SIGNAL_HANDLER - - var/obj/effect/justice_engine/active_engine = get_engine_by_state(JUSTICE_ENGINE_ACTIVE) - if(isnull(active_engine)) - return NONE - - var/deflect_angel = dir2angle(get_dir(src, hitting_projectile.firer)) - hitting_projectile.firer = src - hitting_projectile.set_angle(deflect_angel) - playsound(src, 'sound/vehicles/mecha/mech_blade_break_wall.ogg' , 75, FALSE) - return COMPONENT_BULLET_PIERCED - -/obj/vehicle/sealed/mecha/justice/proc/block_effect() - new /obj/effect/temp_visual/mech_sparks(get_turf(src)) - playsound(src, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) - -/obj/vehicle/sealed/mecha/justice/proc/after_engine_attacked() - if(!isnull(get_engine_by_state(JUSTICE_ENGINE_ACTIVE))) - return - deactivate_engines() - for(var/mob/mob_occupant as anything in occupants) - balloon_alert(mob_occupant, "shields disabled! recharge after 10 seconds!") - addtimer(CALLBACK(src, PROC_REF(reactivate_engines)), 10 SECONDS) - playsound(src, shields_disabled_sound , 75, FALSE) - -/obj/vehicle/sealed/mecha/justice/proc/reactivate_engines() - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - justice_engine.remember_engine_state_on_deactivate = JUSTICE_ENGINE_ACTIVE - if(isnull(occupants)) - return - activate_engines() - -/obj/vehicle/sealed/mecha/justice/melee_attack_effect(mob/living/victim, heavy) - if(!heavy) - victim.Knockdown(4 SECONDS) - return - if(!prob(DISMEMBER_CHANCE_HIGH)) - return - var/obj/item/bodypart/cut_bodypart = victim.get_bodypart(pick(BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG)) - cut_bodypart?.dismember(BRUTE) - -/obj/vehicle/sealed/mecha/justice/proc/state_change(new_state) - if(new_state == justice_state) - return - if(new_state != JUSTICE_INVISIBILITY && LAZYLEN(justice_engines) > 0) - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - if(!justice_engine.is_in_invis) - continue - justice_engine.is_in_invis = FALSE - justice_engine.alpha = 255 - - if(new_state == JUSTICE_INVISIBILITY && LAZYLEN(justice_engines) > 0) - for(var/obj/effect/justice_engine/justice_engine as anything in justice_engines) - if(justice_engine.is_in_invis) - continue - justice_engine.is_in_invis = TRUE - justice_engine.alpha = 0 - - justice_state = new_state - -/obj/vehicle/sealed/mecha/justice/proc/visibility_active(obj/vehicle/sealed/mecha/source, datum/action/vehicle/sealed/mecha/invisibility/status_caller) - SIGNAL_HANDLER - - if(justice_state == JUSTICE_INVISIBILITY) - return COMPONENT_CANCEL_JUSTICE_INVISIBILITY_ACTIVATE - state_change(JUSTICE_INVISIBILITY) - movedelay = MOVEDELAY_INVISIBILITY - -/obj/vehicle/sealed/mecha/justice/proc/visibility_deactive(obj/vehicle/sealed/mecha/source, datum/action/vehicle/sealed/mecha/invisibility/status_caller) - SIGNAL_HANDLER - - if(justice_state == JUSTICE_IDLE) - return COMPONENT_CANCEL_JUSTICE_INVISIBILITY_DEACTIVATE - state_change(JUSTICE_IDLE) - movedelay = MOVEDELAY_IDLE - -/// Says 1 of 3 epic phrases before attacking and make a finishing blow to targets in stun or crit after 1 SECOND. -/obj/vehicle/sealed/mecha/justice/proc/fatality_attack(datum/source, mob/living/pilot, atom/target, on_cooldown, is_adjacent) - if(!ishuman(target)) - return FALSE - var/mob/living/carbon/human/live_or_dead = target - if(live_or_dead.stat < UNCONSCIOUS && live_or_dead.getStaminaLoss() < 100) - return FALSE - var/obj/item/bodypart/check_head = live_or_dead.get_bodypart(BODY_ZONE_HEAD) - if(!check_head) - return FALSE - INVOKE_ASYNC(src, PROC_REF(finish_him), src, pilot, live_or_dead) - return TRUE - -/** - * ## finish_him - * - * Target's head is cut off (if it has one) - * Attack from invisibility and charged attack have higher priority. - * Arguments: - * * finisher - Mech pilot who makes an attack. - * * him - Target at which the mech makes an attack. - */ -/obj/vehicle/sealed/mecha/justice/proc/finish_him(obj/vehicle/sealed/mecha/my_mech, mob/finisher, mob/living/him) - if(justice_state == JUSTICE_FATALITY) - return - justice_state = JUSTICE_FATALITY - say(pick("Take my Justice-Slash!", "A falling leaf...", "Justice is quite a lonely path"), forced = "Justice Mech") - playsound(src, 'sound/vehicles/mecha/mech_stealth_pre_attack.ogg', 75, FALSE) - if(!do_after(finisher, 1 SECONDS, him)) - justice_state = JUSTICE_IDLE - return - if(QDELETED(finisher) \ - || QDELETED(him) \ - || !LAZYLEN(my_mech?.occupants)) - justice_state = JUSTICE_IDLE - return - var/turf/finish_turf = get_step(him, get_dir(my_mech, him)) - var/turf/for_line_turf = get_turf(my_mech) - var/obj/item/bodypart/in_your_head = him.get_bodypart(BODY_ZONE_HEAD) - in_your_head?.dismember(BRUTE) - playsound(src, brute_attack_sound, 75, FALSE) - for_line_turf.Beam(src, icon_state = "mech_charge", time = 4) - forceMove(finish_turf) - justice_state = JUSTICE_IDLE - -/** - * Proc makes an AOE attack after 0.5 SECOND. - * Called by the mech pilot when he is in stealth mode and wants to attack. - * During this, mech cannot move. -*/ -/obj/vehicle/sealed/mecha/justice/proc/stealth_attack_aoe(datum/source, mob/living/pilot, atom/target, on_cooldown, is_adjacent) - if(justice_state == JUSTICE_INVISIBILITY_ATTACK) - return - justice_state = JUSTICE_INVISIBILITY_ATTACK - new /obj/effect/temp_visual/mech_attack_aoe_charge(get_turf(src)) - ADD_TRAIT(src, TRAIT_IMMOBILIZED, REF(src)) - playsound(src, stealth_pre_attack_sound, 75, FALSE) - addtimer(CALLBACK(src, PROC_REF(attack_in_aoe), pilot), 0.5 SECONDS) - return TRUE - -/** - * ## attack_in_aoe - * - * Brings mech out of invisibility. - * Deal everyone in range 3x3 35 damage and 25 chanse to cut off limb. - * Arguments: - * * pilot - occupant inside mech. - */ -/obj/vehicle/sealed/mecha/justice/proc/attack_in_aoe(mob/living/pilot) - new /obj/effect/temp_visual/mech_attack_aoe_attack(get_turf(src)) - for(var/mob/living/something_living in range(1, get_turf(src))) - if(something_living.stat >= UNCONSCIOUS \ - || something_living.getStaminaLoss() >= 100 \ - || something_living == pilot) - continue - if(prob(DISMEMBER_CHANCE_LOW)) - var/obj/item/bodypart/cut_bodypart = something_living.get_bodypart(pick(BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG)) - cut_bodypart?.dismember(BRUTE) - something_living.apply_damage(35, BRUTE) - playsound(src, stealth_attack_sound, 75, FALSE) - REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, REF(src)) - SEND_SIGNAL(src, COMSIG_JUSTICE_ATTACK_AOE) - justice_state = JUSTICE_IDLE - -/** - * ## charge_attack - * - * Deal everyone in line for mech location to mouse location 35 damage and 25 chanse to cut off limb. - * Teleport mech to the end of line. - * Arguments: - * * target - occupant inside mech. - */ -/obj/vehicle/sealed/mecha/justice/proc/charge_attack(atom/target) - var/turf/start_charge_here = get_turf(src) - var/turf/target_pos = get_turf(target) - var/turf/here_we_go = start_charge_here - for(var/turf/line_turf in get_line(start_charge_here, target_pos)) - if(floor(get_dist_euclidean(start_charge_here, line_turf)) > max_charge_range) - break - if(get_turf(src) == get_turf(line_turf)) - continue - if(isclosedturf(line_turf)) - break - var/obj/machinery/power/supermatter_crystal/funny_crystal = locate() in line_turf - if(funny_crystal) - funny_crystal.Bumped(src) - break - var/obj/machinery/door/airlock/like_a_wall = locate() in line_turf - if(like_a_wall?.density) - break - if(locate(/obj/structure/window) in line_turf) - break - for(var/mob/living/something_living in line_turf.contents) - if(something_living.stat >= UNCONSCIOUS \ - || something_living.getStaminaLoss() >= 100 \ - || is_driver(something_living) \ - || is_occupant(something_living)) - continue - if(prob(DISMEMBER_CHANCE_LOW)) - var/obj/item/bodypart/cut_bodypart = something_living.get_bodypart(pick(BODY_ZONE_R_ARM, BODY_ZONE_R_LEG, BODY_ZONE_L_ARM, BODY_ZONE_L_LEG, BODY_ZONE_HEAD)) - cut_bodypart?.dismember(BRUTE) - something_living.apply_damage(35, BRUTE) - here_we_go = line_turf - - // If the mech didn't move, it didn't charge - if(here_we_go == start_charge_here) - for(var/mob/occupant in occupants) - if(is_driver(occupant)) - balloon_alert(occupant, "invalid direction!") - return FALSE - - forceMove(here_we_go) - start_charge_here.Beam(src, icon_state = "mech_charge", time = 8) - playsound(src, charge_attack_sound, 75, FALSE) - use_energy(200) - return TRUE - -/datum/action/vehicle/sealed/mecha/invisibility - name = "Invisibility" - button_icon_state = "mech_stealth_off" - /// Is invisibility activated. - var/on = FALSE - /// Recharge check. - var/charge = TRUE - /// Energy cost to become invisibile - var/energy_cost = 200 - - -/datum/action/vehicle/sealed/mecha/invisibility/set_chassis(passed_chassis) - . = ..() - RegisterSignals(chassis, list(COMSIG_MECH_SAFETIES_TOGGLE, COMSIG_MECHA_MOB_EXIT, COMSIG_JUSTICE_ATTACK_AOE, COMSIG_JUSTICE_CHARGE_BUTTON_DOWN), PROC_REF(diactivate_invisibility_by_signal)) - -/datum/action/vehicle/sealed/mecha/invisibility/proc/diactivate_invisibility_by_signal() - SIGNAL_HANDLER - - make_visible() - build_all_button_icons(UPDATE_BUTTON_STATUS) - -/datum/action/vehicle/sealed/mecha/invisibility/Trigger(trigger_flags) - . = ..() - if(!.) - return - on = !on - if(on) - invisibility_on() - else - invisibility_off() - -/datum/action/vehicle/sealed/mecha/invisibility/IsAvailable(feedback) - . = ..() - if(!.) - return FALSE - if(!chassis.has_charge(energy_cost)) - if(feedback) - owner.balloon_alert(owner, "not enough energy!") - return FALSE - if(chassis.weapons_safety) - if(feedback) - owner.balloon_alert(owner, "safety is on!") - return FALSE - if(!charge) - if(feedback) - owner.balloon_alert(owner, "recharging!") - return FALSE - - return TRUE - -///Called when invisibility activated. -/datum/action/vehicle/sealed/mecha/invisibility/proc/invisibility_on() - if(SEND_SIGNAL(chassis, COMSIG_JUSTICE_INVISIBILITY_ACTIVATE, src) & COMPONENT_CANCEL_JUSTICE_INVISIBILITY_ACTIVATE) - return - new /obj/effect/temp_visual/mech_sparks(get_turf(chassis)) - playsound(chassis, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) - animate(chassis, alpha = 0, time = 0.5 SECONDS) - button_icon_state = "mech_stealth_on" - RegisterSignal(chassis, COMSIG_MOVABLE_BUMP, PROC_REF(bumb_on)) - RegisterSignal(chassis, COMSIG_ATOM_BUMPED, PROC_REF(bumbed_on)) - RegisterSignal(chassis, COMSIG_ATOM_TAKE_DAMAGE, PROC_REF(take_damage)) - chassis.use_energy(energy_cost) - build_all_button_icons() - -///Called when invisibility deactivated. -/datum/action/vehicle/sealed/mecha/invisibility/proc/invisibility_off() - if(SEND_SIGNAL(chassis, COMSIG_JUSTICE_INVISIBILITY_DEACTIVATE, src) & COMPONENT_CANCEL_JUSTICE_INVISIBILITY_DEACTIVATE) - return - new /obj/effect/temp_visual/mech_sparks(get_turf(chassis)) - playsound(chassis, 'sound/vehicles/mecha/mech_stealth_effect.ogg' , 75, FALSE) - charge = FALSE - addtimer(CALLBACK(src, PROC_REF(charge)), 5 SECONDS) - button_icon_state = "mech_stealth_cooldown" - animate(chassis, alpha = 255, time = 0.5 SECONDS) - UnregisterSignal(chassis, list( - COMSIG_MOVABLE_BUMP, - COMSIG_ATOM_BUMPED, - COMSIG_ATOM_TAKE_DAMAGE - )) - build_all_button_icons() - -/** - * ## bumb_on - * - * Called when mech bumb on somthing. If is living somthing shutdown mech invisibility. - */ -/datum/action/vehicle/sealed/mecha/invisibility/proc/bumb_on(obj/vehicle/sealed/mecha/our_mech, atom/obstacle) - SIGNAL_HANDLER - - if(!iscarbon(obstacle)) - return - make_visible() - -/** - * ## bumbed_on - * - * Called when somthing bumbed on mech. If is living somthing shutdown mech invisibility. - */ -/datum/action/vehicle/sealed/mecha/invisibility/proc/bumbed_on(obj/vehicle/sealed/mecha/our_mech, atom/movable/bumped_atom) - SIGNAL_HANDLER - - if(!iscarbon(bumped_atom)) - return - make_visible() - -/** - * ## take_damage - * - * Called when mech take damage. Shutdown mech invisibility. - */ -/datum/action/vehicle/sealed/mecha/invisibility/proc/take_damage(obj/vehicle/sealed/mecha/our_mech) - SIGNAL_HANDLER - - make_visible() - -/** - * ## make_visible - * - * Called when somthing force invisibility shutdown. - */ -/datum/action/vehicle/sealed/mecha/invisibility/proc/make_visible() - if(!on) - return - on = !on - invisibility_off() - -/** - * ## charge - * - * Recharge invisibility action after 5 SECONDS. - */ -/datum/action/vehicle/sealed/mecha/invisibility/proc/charge() - button_icon_state = "mech_stealth_off" - charge = TRUE - build_all_button_icons() - -/obj/vehicle/sealed/mecha/justice/loaded - equip_by_category = list( - MECHA_L_ARM = null, - MECHA_R_ARM = null, - MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion), - MECHA_POWER = list(), - MECHA_ARMOR = list(), - ) - -/obj/vehicle/sealed/mecha/justice/loaded/populate_parts() - cell = new /obj/item/stock_parts/power_store/cell/bluespace(src) - scanmod = new /obj/item/stock_parts/scanning_module/triphasic(src) - capacitor = new /obj/item/stock_parts/capacitor/quadratic(src) - servo = new /obj/item/stock_parts/servo/femto(src) - update_part_values() - -/obj/effect/justice_engine - name = "engine core" - icon = 'icons/effects/effects.dmi' - icon_state = "justice_engine_deactive" - base_icon_state = "justice_engine" - layer = ABOVE_ALL_MOB_LAYER - plane = ABOVE_GAME_PLANE - /// We need to orbit around someone. - var/datum/weakref/owner - /// Switch engine state for future justice checks. - var/engine_state = JUSTICE_ENGINE_DEACTIVE - /// Remember if engine is on cooldown when we exit justice mech - var/remember_engine_state_on_deactivate = JUSTICE_ENGINE_ACTIVE - /// Check if engine in invis - var/is_in_invis = FALSE; - -/obj/effect/justice_engine/update_icon_state() - . = ..() - icon_state = "[base_icon_state]_[engine_state]" - -/obj/effect/justice_engine/proc/change_engine_state(new_state) - engine_state = new_state - update_appearance(UPDATE_ICON_STATE) - -/atom/movable/screen/justice_charge_arrow - icon = 'icons/effects/96x96.dmi' - name = "justice charge arrow" - icon_state = "justice_charge_arrow" - pixel_x = -32 - pixel_y = -32 - /// Icon when we drag right mouse button to choice turf to charge - var/active_icon = "justice_charge_arrow" - /// Idle charge arrow icon - var/inactive_icon = "" - -#undef DISMEMBER_CHANCE_HIGH -#undef DISMEMBER_CHANCE_LOW - -#undef MOVEDELAY_IDLE -#undef MOVEDELAY_INVISIBILITY -#undef MOVEDELAY_PRE_CHARGE diff --git a/code/modules/vehicles/mecha/combat/marauder.dm b/code/modules/vehicles/mecha/combat/marauder.dm index 4d7aca910dae..93d8fb2e2c50 100644 --- a/code/modules/vehicles/mecha/combat/marauder.dm +++ b/code/modules/vehicles/mecha/combat/marauder.dm @@ -58,7 +58,7 @@ name = "Smoke" button_icon_state = "mech_smoke" -/datum/action/vehicle/sealed/mecha/mech_smoke/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_smoke/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -72,7 +72,7 @@ name = "Zoom" button_icon_state = "mech_zoom_off" -/datum/action/vehicle/sealed/mecha/mech_zoom/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_zoom/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!owner.client || !chassis || !(owner in chassis.occupants)) diff --git a/code/modules/vehicles/mecha/combat/phazon.dm b/code/modules/vehicles/mecha/combat/phazon.dm index 1ff67996e792..30d15edfe179 100644 --- a/code/modules/vehicles/mecha/combat/phazon.dm +++ b/code/modules/vehicles/mecha/combat/phazon.dm @@ -41,7 +41,7 @@ name = "Reconfigure arm microtool arrays" button_icon_state = "mech_damtype_brute" -/datum/action/vehicle/sealed/mecha/mech_switch_damtype/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_switch_damtype/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -66,7 +66,7 @@ name = "Toggle Phasing" button_icon_state = "mech_phasing_off" -/datum/action/vehicle/sealed/mecha/mech_toggle_phasing/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_toggle_phasing/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) diff --git a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm index a5496c77a069..15585e9caa5a 100644 --- a/code/modules/vehicles/mecha/combat/savannah_ivanov.dm +++ b/code/modules/vehicles/mecha/combat/savannah_ivanov.dm @@ -80,7 +80,7 @@ ///skyfall builds up in charges every 2 seconds, when it reaches 5 charges the ability actually starts var/skyfall_charge_level = 0 -/datum/action/vehicle/sealed/mecha/skyfall/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/skyfall/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!owner || !chassis || !(owner in chassis.occupants)) @@ -252,7 +252,7 @@ end_missile_targeting() return ..() -/datum/action/vehicle/sealed/mecha/ivanov_strike/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/ivanov_strike/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) diff --git a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm index c03240b4a66e..e4532f23f06c 100644 --- a/code/modules/vehicles/mecha/equipment/mecha_equipment.dm +++ b/code/modules/vehicles/mecha/equipment/mecha_equipment.dm @@ -64,11 +64,13 @@ return switch(action) if("detach") - chassis.ui_selected_module_index = null - detach(get_turf(src)) + if(detachable) + chassis.ui_selected_module_index = null + detach(get_turf(src)) . = TRUE if("toggle") - set_active(!active) + if(can_be_toggled) + set_active(!active) . = TRUE if("repair") ui.close() // allow watching for baddies and the ingame effects diff --git a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm index 8f1a1e704bd2..21831931296e 100644 --- a/code/modules/vehicles/mecha/equipment/tools/work_tools.dm +++ b/code/modules/vehicles/mecha/equipment/tools/work_tools.dm @@ -391,7 +391,7 @@ newmech.name = markone.name markone.wreckage = FALSE if(HAS_TRAIT(markone, TRAIT_MECHA_CREATED_NORMALLY)) - ADD_TRAIT(newmech, TRAIT_MECHA_CREATED_NORMALLY, newmech) + ADD_TRAIT(newmech, TRAIT_MECHA_CREATED_NORMALLY, REF(newmech)) qdel(markone) playsound(get_turf(newmech),'sound/items/tools/ratchet.ogg',50,TRUE) diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index 6292fed5e39f..c5318bc3cd64 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -53,9 +53,6 @@ /// Looping sound for printing items var/datum/looping_sound/lathe_print/print_sound - /// Local designs that only this mechfab have(using when mechfab emaged so it's illegal designs). - var/list/datum/design/illegal_local_designs - /// Direction the produced items will drop (0 means on top of us) var/drop_direction = SOUTH @@ -63,7 +60,6 @@ print_sound = new(src, FALSE) rmat = AddComponent(/datum/component/remote_materials, mapload && link_on_init) cached_designs = list() - illegal_local_designs = list() return ..() /obj/machinery/mecha_part_fabricator/Destroy() @@ -153,27 +149,6 @@ drop_direction = direction balloon_alert(user, "dropping [dir2text(drop_direction)]") -/obj/machinery/mecha_part_fabricator/emag_act(mob/user, obj/item/card/emag/emag_card) - if(obj_flags & EMAGGED) - return FALSE - if(!HAS_TRAIT(user, TRAIT_KNOW_ROBO_WIRES)) - to_chat(user, span_warning("You're unsure about [emag_card ? "where to swipe [emag_card] over" : "how to override"] [src] for any effect. Maybe if you had more knowledge of robotics...")) - - return FALSE - obj_flags |= EMAGGED - for(var/found_illegal_mech_nods in SSresearch.techweb_nodes) - var/datum/techweb_node/illegal_mech_node = SSresearch.techweb_nodes[found_illegal_mech_nods] - if(!illegal_mech_node?.illegal_mech_node) - continue - for(var/id in illegal_mech_node.design_ids) - var/datum/design/illegal_mech_design = SSresearch.techweb_design_by_id(id) - illegal_local_designs |= illegal_mech_design - cached_designs |= illegal_mech_design - say("R$c!i&ed ERROR de#i$ns. C@n%ec$%ng to ~NULL~ se%ve$s.") - playsound(src, 'sound/machines/uplink/uplinkerror.ogg', 50, TRUE) - update_static_data_for_all_viewers() - return TRUE - /** * Updates the `final_sets` and `buildable_parts` for the current mecha fabricator. */ @@ -187,9 +162,6 @@ if(design.build_type & MECHFAB) cached_designs |= design - for(var/datum/design/illegal_disign in illegal_local_designs) - cached_designs |= illegal_disign - var/design_delta = cached_designs.len - previous_design_count if(design_delta > 0) @@ -458,7 +430,7 @@ if(!istext(design_id)) continue - if(!(stored_research.researched_designs.Find(design_id) || is_type_in_list(SSresearch.techweb_design_by_id(design_id), illegal_local_designs))) + if(!stored_research.researched_designs.Find(design_id)) continue var/datum/design/design = SSresearch.techweb_design_by_id(design_id) diff --git a/code/modules/vehicles/mecha/mecha_actions.dm b/code/modules/vehicles/mecha/mecha_actions.dm index 7c85d047996a..47d4bc033367 100644 --- a/code/modules/vehicles/mecha/mecha_actions.dm +++ b/code/modules/vehicles/mecha/mecha_actions.dm @@ -23,7 +23,7 @@ name = "Eject From Mech" button_icon_state = "mech_eject" -/datum/action/vehicle/sealed/mecha/mech_eject/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_eject/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -35,7 +35,7 @@ button_icon_state = "mech_cabin_open" desc = "Airtight cabin preserves internal air and can be pressurized with a mounted air tank." -/datum/action/vehicle/sealed/mecha/mech_toggle_cabin_seal/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_toggle_cabin_seal/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -46,7 +46,7 @@ name = "Toggle Lights" button_icon_state = "mech_lights_off" -/datum/action/vehicle/sealed/mecha/mech_toggle_lights/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_toggle_lights/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -57,7 +57,7 @@ name = "View Stats" button_icon_state = "mech_view_stats" -/datum/action/vehicle/sealed/mecha/mech_view_stats/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_view_stats/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -73,7 +73,7 @@ . = ..() RegisterSignal(chassis, COMSIG_MECH_SAFETIES_TOGGLE, PROC_REF(update_action_icon)) -/datum/action/vehicle/sealed/mecha/mech_toggle_safeties/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_toggle_safeties/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -93,7 +93,7 @@ name = "Toggle Strafing. Disabled when Alt is held." button_icon_state = "strafe" -/datum/action/vehicle/sealed/mecha/strafe/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/strafe/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) @@ -123,7 +123,7 @@ name = "Switch Seats" button_icon_state = "mech_seat_swap" -/datum/action/vehicle/sealed/mecha/swap_seat/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/swap_seat/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) diff --git a/code/modules/vehicles/mecha/mecha_construction_paths.dm b/code/modules/vehicles/mecha/mecha_construction_paths.dm index 226b3e2107a4..35e394f5062a 100644 --- a/code/modules/vehicles/mecha/mecha_construction_paths.dm +++ b/code/modules/vehicles/mecha/mecha_construction_paths.dm @@ -35,7 +35,7 @@ content.forceMove(mech) mech.locate_parts() SSblackbox.record_feedback("tally", "mechas_created", 1, mech.name) - ADD_TRAIT(mech, TRAIT_MECHA_CREATED_NORMALLY, mech) + ADD_TRAIT(mech, TRAIT_MECHA_CREATED_NORMALLY, REF(mech)) QDEL_NULL(parent) // Default proc to generate mech steps. @@ -821,39 +821,3 @@ outer_plating = /obj/item/stack/sheet/plasteel outer_plating_amount = 5 - -//Justice -/datum/component/construction/unordered/mecha_chassis/justice - result = /datum/component/construction/mecha/justice - steps = list( - /obj/item/mecha_parts/part/justice_torso, - /obj/item/mecha_parts/part/justice_left_arm, - /obj/item/mecha_parts/part/justice_right_arm, - /obj/item/mecha_parts/part/justice_left_leg, - /obj/item/mecha_parts/part/justice_right_leg - ) - -/datum/component/construction/mecha/justice - result = /obj/vehicle/sealed/mecha/justice - base_icon = "justice" - - inner_plating = /obj/item/stack/telecrystal - inner_plating_amount = 8 - - outer_plating = /obj/item/mecha_parts/part/justice_armor - outer_plating_amount = 1 - -/datum/component/construction/mecha/justice/get_circuit_steps() - return list() - -/datum/component/construction/mecha/justice/get_inner_plating_steps() - return list( - list( - "key" = inner_plating, - "amount" = inner_plating_amount, - "back_key" = TOOL_SCREWDRIVER, - "desc" = "The power cell is secured, and [inner_plating_amount] telecrystals can be added.", - "forward_message" = "added telecrystal", - "backward_message" = "unsecured power cell" - ) - ) diff --git a/code/modules/vehicles/mecha/mecha_movement.dm b/code/modules/vehicles/mecha/mecha_movement.dm index 130e0e807b43..b5817d81378b 100644 --- a/code/modules/vehicles/mecha/mecha_movement.dm +++ b/code/modules/vehicles/mecha/mecha_movement.dm @@ -108,7 +108,7 @@ to_chat(occupants, "[icon2html(src, occupants)][span_warning("Missing [english_list(missing_parts)].")]") TIMER_COOLDOWN_START(src, COOLDOWN_MECHA_MESSAGE, 2 SECONDS) return FALSE - if(!use_energy(step_energy_drain)) + if((step_energy_drain != 0) && !use_energy(step_energy_drain)) if(TIMER_COOLDOWN_FINISHED(src, COOLDOWN_MECHA_MESSAGE)) to_chat(occupants, "[icon2html(src, occupants)][span_warning("Insufficient power to move!")]") TIMER_COOLDOWN_START(src, COOLDOWN_MECHA_MESSAGE, 2 SECONDS) diff --git a/code/modules/vehicles/mecha/mecha_parts.dm b/code/modules/vehicles/mecha/mecha_parts.dm index 427347bff513..57a3f6c04133 100644 --- a/code/modules/vehicles/mecha/mecha_parts.dm +++ b/code/modules/vehicles/mecha/mecha_parts.dm @@ -333,42 +333,6 @@ desc="Savannah-Ivanov armor plates. They are uniquely shaped and reinforced to deal with the stresses of two pilots, grandiose leaps, and missiles." icon_state = "savannah_ivanov_armor" -// Justice - -/obj/item/mecha_parts/chassis/justice - name = "\improper Justice chassis" - construct_type = /datum/component/construction/unordered/mecha_chassis/justice - -/obj/item/mecha_parts/part/justice_torso - name="\improper Justice torso" - desc="A Justice torso part." - icon_state = "justice_torso" - -/obj/item/mecha_parts/part/justice_left_arm - name="\improper Justice left arm" - desc="A Justice left arm." - icon_state = "justice_l_arm" - -/obj/item/mecha_parts/part/justice_right_arm - name="\improper Justice right arm" - desc="A Justice left arm." - icon_state = "justice_r_arm" - -/obj/item/mecha_parts/part/justice_left_leg - name="\improper Justice left leg" - desc="A Justice left leg." - icon_state = "justice_l_leg" - -/obj/item/mecha_parts/part/justice_right_leg - name="\improper Justice right leg" - desc="A Justice left leg." - icon_state = "justice_r_leg" - -/obj/item/mecha_parts/part/justice_armor - name="Justice armor" - desc="Justice armor plates." - icon_state = "justice_armor" - ///////// Circuitboards /obj/item/circuitboard/mecha diff --git a/code/modules/vehicles/mecha/mecha_wreckage.dm b/code/modules/vehicles/mecha/mecha_wreckage.dm index 8f972ef47815..dc0414e86063 100644 --- a/code/modules/vehicles/mecha/mecha_wreckage.dm +++ b/code/modules/vehicles/mecha/mecha_wreckage.dm @@ -245,8 +245,3 @@ /obj/item/mecha_parts/part/odysseus_right_arm, /obj/item/mecha_parts/part/odysseus_left_leg, /obj/item/mecha_parts/part/odysseus_right_leg) - -/obj/structure/mecha_wreckage/justice - name = "\improper Justice wreckage" - icon_state = "justice-broken" - welder_salvage = list(/obj/item/stack/sheet/iron, /obj/item/stack/rods) diff --git a/code/modules/vehicles/mecha/working/clarke.dm b/code/modules/vehicles/mecha/working/clarke.dm index 834ac17b5cf6..95b920aa047e 100644 --- a/code/modules/vehicles/mecha/working/clarke.dm +++ b/code/modules/vehicles/mecha/working/clarke.dm @@ -120,7 +120,7 @@ button_icon = 'icons/obj/devices/mecha_equipment.dmi' button_icon_state = "mecha_sleeper_miner" -/datum/action/vehicle/sealed/mecha/clarke_scoop_body/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/clarke_scoop_body/Trigger(mob/clicker, trigger_flags) if(!..()) return var/obj/item/mecha_parts/mecha_equipment/sleeper/clarke/sleeper = locate() in chassis @@ -139,7 +139,7 @@ button_icon_state = "mech_search_ruins" COOLDOWN_DECLARE(search_cooldown) -/datum/action/vehicle/sealed/mecha/mech_search_ruins/Trigger(trigger_flags) +/datum/action/vehicle/sealed/mecha/mech_search_ruins/Trigger(mob/clicker, trigger_flags) if(!..()) return if(!chassis || !(owner in chassis.occupants)) diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 63d9dff013fe..0463ac7bfa75 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -209,7 +209,7 @@ desc = "Climb out of your vehicle!" button_icon_state = "car_eject" -/datum/action/vehicle/sealed/climb_out/Trigger(trigger_flags) +/datum/action/vehicle/sealed/climb_out/Trigger(mob/clicker, trigger_flags) if(..() && istype(vehicle_entered_target)) vehicle_entered_target.mob_try_exit(owner, owner) @@ -221,7 +221,7 @@ desc = "Take your key out of the vehicle's ignition." button_icon_state = "car_removekey" -/datum/action/vehicle/sealed/remove_key/Trigger(trigger_flags) +/datum/action/vehicle/sealed/remove_key/Trigger(mob/clicker, trigger_flags) vehicle_entered_target.remove_key(owner) //CLOWN CAR ACTION DATUMS @@ -231,7 +231,7 @@ button_icon_state = "car_horn" var/hornsound = 'sound/items/carhorn.ogg' -/datum/action/vehicle/sealed/horn/Trigger(trigger_flags) +/datum/action/vehicle/sealed/horn/Trigger(mob/clicker, trigger_flags) if(TIMER_COOLDOWN_RUNNING(src, COOLDOWN_CAR_HONK)) return TIMER_COOLDOWN_START(src, COOLDOWN_CAR_HONK, 2 SECONDS) @@ -247,7 +247,7 @@ desc = "Turn on your brights!" button_icon_state = "car_headlights" -/datum/action/vehicle/sealed/headlights/Trigger(trigger_flags) +/datum/action/vehicle/sealed/headlights/Trigger(mob/clicker, trigger_flags) to_chat(owner, span_notice("You flip the switch for the vehicle's headlights.")) vehicle_entered_target.headlights_toggle = !vehicle_entered_target.headlights_toggle vehicle_entered_target.set_light_on(vehicle_entered_target.headlights_toggle) @@ -259,7 +259,7 @@ desc = "Dump all objects and people in your car on the floor." button_icon_state = "car_dump" -/datum/action/vehicle/sealed/dump_kidnapped_mobs/Trigger(trigger_flags) +/datum/action/vehicle/sealed/dump_kidnapped_mobs/Trigger(mob/clicker, trigger_flags) vehicle_entered_target.visible_message(span_danger("[vehicle_entered_target] starts dumping the people inside of it.")) vehicle_entered_target.dump_specific_mobs(VEHICLE_CONTROL_KIDNAPPED) @@ -269,7 +269,7 @@ desc = "Press one of those colorful buttons on your display panel!" button_icon_state = "car_rtd" -/datum/action/vehicle/sealed/roll_the_dice/Trigger(trigger_flags) +/datum/action/vehicle/sealed/roll_the_dice/Trigger(mob/clicker, trigger_flags) if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) return var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target @@ -280,7 +280,7 @@ desc = "Destroy them with their own fodder!" button_icon_state = "car_cannon" -/datum/action/vehicle/sealed/cannon/Trigger(trigger_flags) +/datum/action/vehicle/sealed/cannon/Trigger(mob/clicker, trigger_flags) if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) return var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target @@ -294,7 +294,7 @@ COOLDOWN_DECLARE(thank_time_cooldown) -/datum/action/vehicle/sealed/thank/Trigger(trigger_flags) +/datum/action/vehicle/sealed/thank/Trigger(mob/clicker, trigger_flags) if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) return if(!COOLDOWN_FINISHED(src, thank_time_cooldown)) @@ -317,7 +317,7 @@ check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_INCAPACITATED var/bell_cooldown -/datum/action/vehicle/ridden/wheelchair/bell/Trigger(trigger_flags) +/datum/action/vehicle/ridden/wheelchair/bell/Trigger(mob/clicker, trigger_flags) if(TIMER_COOLDOWN_RUNNING(src, bell_cooldown)) return TIMER_COOLDOWN_START(src, bell_cooldown, 0.5 SECONDS) @@ -330,7 +330,7 @@ button_icon_state = "skateboard_ollie" check_flags = AB_CHECK_CONSCIOUS -/datum/action/vehicle/ridden/scooter/skateboard/ollie/Trigger(trigger_flags) +/datum/action/vehicle/ridden/scooter/skateboard/ollie/Trigger(mob/clicker, trigger_flags) . = ..() if(!.) return @@ -375,7 +375,7 @@ button_icon_state = "skateboard_ollie" check_flags = AB_CHECK_CONSCIOUS -/datum/action/vehicle/ridden/scooter/skateboard/kickflip/Trigger(trigger_flags) +/datum/action/vehicle/ridden/scooter/skateboard/kickflip/Trigger(mob/clicker, trigger_flags) var/obj/vehicle/ridden/scooter/skateboard/board = vehicle_target var/mob/living/rider = owner @@ -424,7 +424,7 @@ var/sound_path = 'sound/items/carhorn.ogg' var/sound_message = "makes a sound." -/datum/action/vehicle/sealed/noise/Trigger(trigger_flags) +/datum/action/vehicle/sealed/noise/Trigger(mob/clicker, trigger_flags) var/obj/vehicle/sealed/car/vim/vim_mecha = vehicle_entered_target if(!COOLDOWN_FINISHED(vim_mecha, sound_cooldown)) vim_mecha.balloon_alert(owner, "on cooldown!") @@ -441,7 +441,7 @@ sound_path = 'sound/machines/chime.ogg' sound_message = "chimes!" -/datum/action/vehicle/sealed/noise/chime/Trigger(trigger_flags) +/datum/action/vehicle/sealed/noise/chime/Trigger(mob/clicker, trigger_flags) if(..()) SEND_SIGNAL(vehicle_entered_target, COMSIG_VIM_CHIME_USED) @@ -452,13 +452,13 @@ sound_path = 'sound/machines/buzz/buzz-sigh.ogg' sound_message = "buzzes." -/datum/action/vehicle/sealed/noise/buzz/Trigger(trigger_flags) +/datum/action/vehicle/sealed/noise/buzz/Trigger(mob/clicker, trigger_flags) if(..()) SEND_SIGNAL(vehicle_entered_target, COMSIG_VIM_BUZZ_USED) /datum/action/vehicle/sealed/headlights/vim button_icon_state = "vim_headlights" -/datum/action/vehicle/sealed/headlights/vim/Trigger(trigger_flags) +/datum/action/vehicle/sealed/headlights/vim/Trigger(mob/clicker, trigger_flags) . = ..() SEND_SIGNAL(vehicle_entered_target, COMSIG_VIM_HEADLIGHTS_TOGGLED, vehicle_entered_target.headlights_toggle) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm deleted file mode 100644 index 185c19369285..000000000000 --- a/code/modules/vending/_vending.dm +++ /dev/null @@ -1,1964 +0,0 @@ -/* - * Vending machine types - Can be found under /code/modules/vending/ - */ - -/* - -/obj/machinery/vending/[vendors name here] // --vending machine template :) - name = "" - desc = "" - icon = '' - icon_state = "" - products = list() - contraband = list() - premium = list() -*/ - -/// List of vending machines that players can restock, so only vending machines that are on station or don't have a unique condition. -GLOBAL_LIST_EMPTY(vending_machines_to_restock) - -/// Maximum amount of items in a storage bag that we're transferring items to the vendor from. -#define MAX_VENDING_INPUT_AMOUNT 30 -#define CREDITS_DUMP_THRESHOLD 50 -/** - * # vending record datum - * - * A datum that represents a product that is vendable - */ -/datum/data/vending_product - name = "generic" - ///Typepath of the product that is created when this record "sells" - var/product_path = null - ///How many of this product we currently have - var/amount = 0 - ///How many we can store at maximum - var/max_amount = 0 - ///The price of the item - var/price - ///Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item - var/age_restricted = FALSE - ///Whether the product can be recolored by the GAGS system - var/colorable - /// The category the product was in, if any. - /// Sourced directly from product_categories. - var/category - ///List of items that have been returned to the vending machine. - var/list/returned_products - -/** - * # vending machines - * - * Captalism in the year 2525, everything in a vending machine, even love - */ -/obj/machinery/vending - name = "\improper Vendomat" - desc = "A generic vending machine." - icon = 'icons/obj/machines/vending.dmi' - icon_state = "generic" - layer = BELOW_OBJ_LAYER - density = TRUE - verb_say = "beeps" - verb_ask = "beeps" - verb_exclaim = "beeps" - max_integrity = 300 - integrity_failure = 0.33 - armor_type = /datum/armor/machinery_vending - circuit = /obj/item/circuitboard/machine/vendor - payment_department = ACCOUNT_SRV - light_power = 0.7 - light_range = MINIMUM_USEFUL_LIGHT_RANGE - voice_filter = "alimiter=0.9,acompressor=threshold=0.2:ratio=20:attack=10:release=50:makeup=2,highpass=f=1000" - - /// Is the machine active (No sales pitches if off)! - var/active = 1 - ///Are we ready to vend?? Is it time?? - var/vend_ready = TRUE - ///Next world time to send a purchase message - var/purchase_message_cooldown - ///The ref of the last mob to shop with us - var/last_shopper - ///Whether the vendor is tilted or not - var/tilted = FALSE - /// If tilted, this variable should always be the rotation that was applied when we were tilted. Stored for the purposes of unapplying it. - var/tilted_rotation = 0 - ///Whether this vendor can be tilted over or not - var/tiltable = TRUE - ///Damage this vendor does when tilting onto an atom - var/squish_damage = 75 - /// The chance, in percent, of this vendor performing a critical hit on anything it crushes via [tilt]. - var/crit_chance = 15 - /// If set to a critical define in crushing.dm, anything this vendor crushes will always be hit with that effect. - var/forcecrit = null - ///Number of glass shards the vendor creates and tries to embed into an atom it tilted onto - var/num_shards = 7 - ///List of mobs stuck under the vendor - var/list/pinned_mobs = list() - ///Icon for the maintenance panel overlay - var/panel_type = "panel1" - - /** - * List of products this machine sells - * - * form should be list(/type/path = amount, /type/path2 = amount2) - */ - var/list/products = list() - - /** - * List of products this machine sells, categorized. - * Can only be used as an alternative to `products`, not alongside it. - * - * Form should be list( - * "name" = "Category Name", - * "icon" = "UI Icon (Font Awesome or tgfont)", - * "products" = list(/type/path = amount, ...), - * ) - */ - var/list/product_categories = null - - /** - * List of products this machine sells when you hack it - * - * form should be list(/type/path = amount, /type/path2 = amount2) - */ - var/list/contraband = list() - - /** - * List of premium products this machine sells - * - * form should be list(/type/path = amount, /type/path2 = amount2) - */ - var/list/premium = list() - - ///String of slogans separated by semicolons, optional - var/product_slogans = "" - ///String of small ad messages in the vending screen - random chance - var/product_ads = "" - - ///List of standard product records - var/list/product_records = list() - ///List of contraband product records - var/list/hidden_records = list() - ///List of premium product records - var/list/coin_records = list() - ///List of slogans to scream at potential customers; built upon Iniitialize() of the vendor from product_slogans - var/list/slogan_list = list() - ///Message sent post vend (Thank you for shopping!) - var/vend_reply - ///Last world tick we sent a vent reply - var/last_reply = 0 - ///Last world tick we sent a slogan message out - var/last_slogan = 0 - ///How many ticks until we can send another - var/slogan_delay = 10 MINUTES - ///Icon when vending an item to the user - var/icon_vend - ///Icon to flash when user is denied a vend - var/icon_deny - ///World ticks the machine is electified for - var/seconds_electrified = MACHINE_NOT_ELECTRIFIED - ///When this is TRUE, we fire items at customers! We're broken! - var/shoot_inventory = FALSE - ///How likely this is to happen (prob 100) per second - var/shoot_inventory_chance = 1 - //Stop spouting those godawful pitches! - var/shut_up = FALSE - ///can we access the hidden inventory? - var/extended_inventory = FALSE - ///Are we checking the users ID - var/scan_id = TRUE - ///Coins that we accept? - var/obj/item/coin/coin - ///Bills we accept? - var/obj/item/stack/spacecash/bill - ///Default price of items if not overridden - var/default_price = 25 - ///Default price of premium items if not overridden - var/extra_price = 50 - ///fontawesome icon name to use in to display the user's balance in the vendor UI - var/displayed_currency_icon = "coins" - ///String of the used currency to display in the vendor UI - var/displayed_currency_name = " cr" - ///Whether our age check is currently functional - var/age_restrictions = TRUE - /// How many credits does this vending machine have? 20% of all sales go to this pool, and are given freely when the machine is restocked, or successfully tilted. Lost on deconstruction. - var/credits_contained = 0 - /** - * Is this item on station or not - * - * if it doesn't originate from off-station during mapload, all_products_free gets automatically set to TRUE if it was unset previously. - * if it's off-station during mapload, it's also safe from the brand intelligence event - */ - var/onstation = TRUE - /** - * DO NOT APPLY THIS GLOBALLY. For mapping var edits only. - * A variable to change on a per instance basis that allows the instance to avoid having onstation set for them during mapload. - * Setting this to TRUE means that the vending machine is treated as if it were still onstation if it spawns off-station during mapload. - * Useful to specify an off-station machine that will be affected by machine-brand intelligence for whatever reason. - */ - var/onstation_override = FALSE - /** - * If this is set to TRUE, all products sold by the vending machine are free (cost nothing). - * If unset, this will get automatically set to TRUE during init if the machine originates from off-station during mapload. - * Defaults to null, set it to TRUE or FALSE explicitly on a per-machine basis if you want to force it to be a certain value. - */ - var/all_products_free - - ///Items that the players have loaded into the vendor - var/list/vending_machine_input = list() - - //The type of refill canisters used by this machine. - var/obj/item/vending_refill/refill_canister = null - - /// how many items have been inserted in a vendor - var/loaded_items = 0 - - ///Name of lighting mask for the vending machine - var/light_mask - - //the path of the fish_source datum to use for the fishing_spot component - var/fish_source_path = /datum/fish_source/vending - -/datum/armor/machinery_vending - melee = 20 - fire = 50 - acid = 70 - -/** - * Initialize the vending machine - * - * Builds the vending machine inventory, sets up slogans and other such misc work - * - * This also sets the onstation var to: - * * FALSE - if the machine was maploaded on a zlevel that doesn't pass the is_station_level check - * * TRUE - all other cases - */ -/obj/machinery/vending/Initialize(mapload) - var/build_inv = FALSE - if(!refill_canister) - circuit = null - build_inv = TRUE - . = ..() - set_wires(new /datum/wires/vending(src)) - - if(SStts.tts_enabled) - var/static/vendor_voice_by_type = list() - if(!vendor_voice_by_type[type]) - vendor_voice_by_type[type] = pick(SStts.available_speakers) - voice = vendor_voice_by_type[type] - - if(build_inv) //non-constructable vending machine - ///Non-constructible vending machines do not have a refill canister to populate its products list from, - ///Which apparently is still needed in the case we use product categories instead. - if(product_categories) - for(var/list/category as anything in product_categories) - products |= category["products"] - build_inventories() - - slogan_list = splittext(product_slogans, ";") - // So not all machines speak at the exact same time. - // The first time this machine says something will be at slogantime + this random value, - // so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated. - last_slogan = world.time + rand(0, slogan_delay) - power_change() - - if(mapload) //check if it was initially created off station during mapload. - if(!is_station_level(z)) - if(!onstation_override) - onstation = FALSE - if(isnull(all_products_free)) // Only auto-set the free products var if we haven't explicitly assigned a value to it yet. - all_products_free = TRUE - if(circuit) - circuit.all_products_free = all_products_free //sync up the circuit so the pricing schema is carried over if it's reconstructed. - - else if(circuit) - all_products_free = circuit.all_products_free //if it was constructed outside mapload, sync the vendor up with the circuit's var so you can't bypass price requirements by moving / reconstructing it off station. - if(!all_products_free) - AddComponent(/datum/component/payment, 0, SSeconomy.get_dep_account(payment_department), PAYMENT_VENDING) - GLOB.vending_machines_to_restock += src //We need to keep track of the final onstation vending machines so we can keep them restocked. - register_context() - - if(fish_source_path) - AddComponent(/datum/component/fishing_spot, fish_source_path) - -/obj/machinery/vending/Destroy() - QDEL_NULL(coin) - QDEL_NULL(bill) - GLOB.vending_machines_to_restock -= src - return ..() - -/obj/machinery/vending/vv_edit_var(vname, vval) - . = ..() - if (vname == NAMEOF(src, all_products_free)) - if (all_products_free) - qdel(GetComponent(/datum/component/payment)) - GLOB.vending_machines_to_restock -= src - else - AddComponent(/datum/component/payment, 0, SSeconomy.get_dep_account(payment_department), PAYMENT_VENDING) - GLOB.vending_machines_to_restock += src - -/obj/machinery/vending/can_speak(allow_mimes) - return is_operational && !shut_up && ..() - -/obj/machinery/vending/emp_act(severity) - . = ..() - var/datum/language_holder/vending_languages = get_language_holder() - var/datum/wires/vending/vending_wires = wires - // if the language wire got pulsed during an EMP, this will make sure the language_iterator is synched correctly - vending_languages.selected_language = vending_languages.spoken_languages[vending_wires.language_iterator] - -//Better would be to make constructable child -/obj/machinery/vending/RefreshParts() - SHOULD_CALL_PARENT(FALSE) - if(!component_parts) - return - - build_products_from_categories() - - product_records = list() - hidden_records = list() - coin_records = list() - - build_inventories(start_empty = TRUE) - - for(var/obj/item/vending_refill/installed_refill in component_parts) - restock(installed_refill) - -/obj/machinery/vending/on_deconstruction(disassembled) - if(refill_canister) - return ..() - new /obj/item/stack/sheet/iron(loc, 3) - -/obj/machinery/vending/update_appearance(updates=ALL) - . = ..() - if(machine_stat & BROKEN) - set_light(0) - return - set_light(powered() ? MINIMUM_USEFUL_LIGHT_RANGE : 0) - -/obj/machinery/vending/update_icon_state() - if(machine_stat & BROKEN) - icon_state = "[initial(icon_state)]-broken" - return ..() - icon_state = "[initial(icon_state)][powered() ? null : "-off"]" - return ..() - -/obj/machinery/vending/update_overlays() - . = ..() - if(panel_open) - . += panel_type - if(light_mask && !(machine_stat & BROKEN) && powered()) - . += emissive_appearance(icon, light_mask, src) - -/obj/machinery/vending/examine(mob/user) - . = ..() - if(isnull(refill_canister)) - return // you can add the comment here instead - if(total_max_stock()) - if(total_loaded_stock() < total_max_stock()) - . += span_notice("\The [src] can be restocked with [span_boldnotice("\a [initial(refill_canister.machine_name)] [initial(refill_canister.name)]")] with the panel open.") - else - . += span_notice("\The [src] is fully stocked.") - if(credits_contained < CREDITS_DUMP_THRESHOLD && credits_contained > 0) - . += span_notice("It should have a handfull of credits stored based on the missing items.") - else if (credits_contained > PAYCHECK_CREW) - . += span_notice("It should have at least a full paycheck worth of credits inside!") - /** - * Intentionally leaving out a case for zero credits as it should be covered by the vending machine's stock being full, - * or covered by first case if items were returned. - */ - - -/obj/machinery/vending/atom_break(damage_flag) - . = ..() - if(!.) - return - - var/dump_amount = 0 - var/found_anything = TRUE - while (found_anything) - found_anything = FALSE - for(var/datum/data/vending_product/record as anything in shuffle(product_records)) - //first dump any of the items that have been returned, in case they contain the nuke disk or something - for(var/i in 1 to LAZYLEN(record.returned_products)) - var/obj/item/returned_obj_to_dump = dispense(record, get_turf(src), dispense_returned = TRUE) - step(returned_obj_to_dump, pick(GLOB.alldirs)) - - if(record.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = record.product_path - if(!dump_path) - continue - // busting open a vendor will destroy some of the contents - if(found_anything && prob(80)) - record.amount-- - continue - - var/obj/obj_to_dump = dispense(record, loc) - step(obj_to_dump, pick(GLOB.alldirs)) - found_anything = TRUE - dump_amount++ - if (dump_amount >= 16) - return - -/** - * Build the inventory of the vending machine from its product and record lists - * - * This builds up a full set of /datum/data/vending_products from the product list of the vending machine type - * Arguments: - * * productlist - the list of products that need to be converted - * * recordlist - the list containing /datum/data/vending_product datums - * * categories - A list in the format of product_categories to source category from - * * startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart) - * * premium - Whether the ending products shall have premium or default prices - */ -/obj/machinery/vending/proc/build_inventory(list/productlist, list/recordlist, list/categories, start_empty = FALSE, premium = FALSE) - var/inflation_value = HAS_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING) ? SSeconomy.inflation_value() : 1 - default_price = round(initial(default_price) * inflation_value) - extra_price = round(initial(extra_price) * inflation_value) - - var/list/product_to_category = list() - for (var/list/category as anything in categories) - var/list/products = category["products"] - for (var/product_key in products) - product_to_category[product_key] = category - - for(var/typepath in productlist) - var/amount = productlist[typepath] - if(isnull(amount)) - amount = 0 - - var/obj/item/temp = typepath - var/datum/data/vending_product/new_record = new /datum/data/vending_product() - new_record.name = initial(temp.name) - new_record.product_path = typepath - if(!start_empty) - new_record.amount = amount - new_record.max_amount = amount - - ///Prices of vending machines are all increased uniformly. - var/custom_price = round(initial(temp.custom_price) * inflation_value) - if(!premium) - new_record.price = custom_price || default_price - else - var/premium_custom_price = round(initial(temp.custom_premium_price) * inflation_value) - if(!premium_custom_price && custom_price) //For some ungodly reason, some premium only items only have a custom_price - new_record.price = extra_price + custom_price - else - new_record.price = premium_custom_price || extra_price - - new_record.age_restricted = initial(temp.age_restricted) - new_record.colorable = !!(initial(temp.greyscale_config) && initial(temp.greyscale_colors) && (initial(temp.flags_1) & IS_PLAYER_COLORABLE_1)) - new_record.category = product_to_category[typepath] - recordlist += new_record - -/**Builds all available inventories for the vendor - standard, contraband and premium - * Arguments: - * start_empty - bool to pass into build_inventory that determines whether a product entry starts with available stock or not -*/ -/obj/machinery/vending/proc/build_inventories(start_empty) - build_inventory(products, product_records, product_categories, start_empty) - build_inventory(contraband, hidden_records, create_categories_from("Contraband", "mask", contraband), start_empty, premium = TRUE) - build_inventory(premium, coin_records, create_categories_from("Premium", "coins", premium), start_empty, premium = TRUE) - -/** - * Returns a list of data about the category - * Arguments: - * name - string for the name of the category - * icon - string for the fontawesome icon to use in the UI for the category - * products - list of products available in the category -*/ -/obj/machinery/vending/proc/create_categories_from(name, icon, products) - return list(list( - "name" = name, - "icon" = icon, - "products" = products, - )) - -///Populates list of products with categorized products -/obj/machinery/vending/proc/build_products_from_categories() - if (isnull(product_categories)) - return - - products = list() - - for (var/list/category in product_categories) - var/list/category_products = category["products"] - for (var/product_key in category_products) - products[product_key] += category_products[product_key] - -/** - * Reassign the prices of the vending machine as a result of the inflation value, as provided by SSeconomy - * - * This rebuilds both /datum/data/vending_products lists for premium and standard products based on their most relevant pricing values. - * Arguments: - * * recordlist - the list of standard product datums in the vendor to refresh their prices. - * * premiumlist - the list of premium product datums in the vendor to refresh their prices. - */ -/obj/machinery/vending/proc/reset_prices(list/recordlist, list/premiumlist) - var/inflation_value = HAS_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING) ? SSeconomy.inflation_value() : 1 - default_price = round(initial(default_price) * inflation_value) - extra_price = round(initial(extra_price) * inflation_value) - - for(var/datum/data/vending_product/record as anything in recordlist) - var/obj/item/potential_product = record.product_path - var/custom_price = round(initial(potential_product.custom_price) * inflation_value) - record.price = custom_price | default_price - for(var/datum/data/vending_product/premium_record as anything in premiumlist) - var/obj/item/potential_product = premium_record.product_path - var/premium_custom_price = round(initial(potential_product.custom_premium_price) * inflation_value) - var/custom_price = initial(potential_product.custom_price) - if(!premium_custom_price && custom_price) //For some ungodly reason, some premium only items only have a custom_price - premium_record.price = extra_price + round(custom_price * inflation_value) - else - premium_record.price = premium_custom_price || extra_price - -/** - * Refill a vending machine from a refill canister - * - * This takes the products from the refill canister and then fills the products, contraband and premium product categories - * - * Arguments: - * * canister - the vending canister we are refilling from - */ -/obj/machinery/vending/proc/restock(obj/item/vending_refill/canister) - if (!canister.products) - canister.products = products.Copy() - if (!canister.contraband) - canister.contraband = contraband.Copy() - if (!canister.premium) - canister.premium = premium.Copy() - - . = 0 - - if (isnull(canister.product_categories) && !isnull(product_categories)) - canister.product_categories = product_categories.Copy() - - if (!isnull(canister.product_categories)) - var/list/products_unwrapped = list() - for (var/list/category as anything in canister.product_categories) - var/list/products = category["products"] - for (var/product_key in products) - products_unwrapped[product_key] += products[product_key] - - . += refill_inventory(products_unwrapped, product_records) - else - . += refill_inventory(canister.products, product_records) - - . += refill_inventory(canister.contraband, hidden_records) - . += refill_inventory(canister.premium, coin_records) - - return . - -/** - * After-effects of refilling a vending machine from a refill canister - * - * This takes the amount of products restocked and gives the user our contained credits if needed, - * sending the user a fitting message. - * - * Arguments: - * * user - the user restocking us - * * restocked - the amount of items we've been refilled with - */ -/obj/machinery/vending/proc/post_restock(mob/living/user, restocked) - if(!restocked) - to_chat(user, span_warning("There's nothing to restock!")) - return - - to_chat(user, span_notice("You loaded [restocked] items in [src][credits_contained > 0 ? ", and are rewarded [credits_contained] credits." : "."]")) - var/datum/bank_account/cargo_account = SSeconomy.get_dep_account(ACCOUNT_CAR) - cargo_account.adjust_money(round(credits_contained * 0.5), "Vending: Restock") - var/obj/item/holochip/payday = new(src, credits_contained) - try_put_in_hand(payday, user) - credits_contained = 0 - -/** - * Refill our inventory from the passed in product list into the record list - * - * Arguments: - * * productlist - list of types -> amount - * * recordlist - existing record datums - */ -/obj/machinery/vending/proc/refill_inventory(list/productlist, list/recordlist) - . = 0 - for(var/datum/data/vending_product/record as anything in recordlist) - var/diff = min(record.max_amount - record.amount, productlist[record.product_path]) - if (diff) - productlist[record.product_path] -= diff - record.amount += diff - . += diff - -/** - * Set up a refill canister that matches this machine's products - * - * This is used when the machine is deconstructed, so the items aren't "lost" - */ -/obj/machinery/vending/proc/update_canister() - if (!component_parts) - return - - var/obj/item/vending_refill/installed_refill = locate() in component_parts - if (!installed_refill) - CRASH("Constructible vending machine did not have a refill canister") - - unbuild_inventory_into(product_records, installed_refill.products, installed_refill.product_categories) - - installed_refill.contraband = unbuild_inventory(hidden_records) - installed_refill.premium = unbuild_inventory(coin_records) - -/** - * Given a record list, go through and return a list of products in format of type -> amount - * Arguments: - * recordlist - list of records to unbuild products from - */ -/obj/machinery/vending/proc/unbuild_inventory(list/recordlist) - . = list() - for(var/datum/data/vending_product/record as anything in recordlist) - .[record.product_path] += record.amount - -/** - * Unbuild product_records into categorized product lists to the machine's refill canister. - * Does not handle contraband/premium products, only standard stock and any other categories used by the vendor(see: ClothesMate). - * If a product has no category, puts it into standard stock category. - * Arguments: - * product_records - list of products of the vendor - * products - list of products of the refill canister - * product_categories - list of product categories of the refill canister -*/ -/obj/machinery/vending/proc/unbuild_inventory_into(list/product_records, list/products, list/product_categories) - products?.Cut() - product_categories?.Cut() - - var/others_have_category = null - - var/list/categories_to_index = list() - - for (var/datum/data/vending_product/record as anything in product_records) - var/list/category = record.category - var/has_category = !isnull(category) - //check if there're any uncategorized products - if (isnull(others_have_category)) - others_have_category = has_category - else if (others_have_category != has_category) - if (has_category) - WARNING("[record.product_path] in [type] has a category, but other products don't") - else - WARNING("[record.product_path] in [type] does not have a category, but other products do") - - continue - - if (has_category) - var/index = categories_to_index.Find(category) - - if (index) //if we've already established a category, add the product there - var/list/category_in_list = product_categories[index] - var/list/products_in_category = category_in_list["products"] - products_in_category[record.product_path] += record.amount - else //create a category that the product is supposed to have and put it there - categories_to_index += list(category) - index = categories_to_index.len - - var/list/category_clone = category.Copy() - - var/list/initial_product_list = list() - initial_product_list[record.product_path] = record.amount - category_clone["products"] = initial_product_list - - product_categories += list(category_clone) - else //no category found - dump it into standard stock - products[record.product_path] = record.amount - -/** - * Returns the total amount of items in the vending machine based on the product records and premium records, but not contraband - */ -/obj/machinery/vending/proc/total_loaded_stock() - var/total = 0 - for(var/datum/data/vending_product/record as anything in product_records + coin_records) - total += record.amount - return total - -/** - * Returns the total amount of items in the vending machine based on the product records and premium records, but not contraband - */ -/obj/machinery/vending/proc/total_max_stock() - var/total_max = 0 - for(var/datum/data/vending_product/record as anything in product_records + coin_records) - total_max += record.max_amount - return total_max - -/obj/machinery/vending/crowbar_act(mob/living/user, obj/item/attack_item) - if(!component_parts) - return FALSE - default_deconstruction_crowbar(attack_item) - return TRUE - -/obj/machinery/vending/wrench_act(mob/living/user, obj/item/tool) - . = ..() - if(!panel_open) - return FALSE - if(default_unfasten_wrench(user, tool, time = 6 SECONDS)) - unbuckle_all_mobs(TRUE) - return ITEM_INTERACT_SUCCESS - return FALSE - -/obj/machinery/vending/screwdriver_act(mob/living/user, obj/item/attack_item) - if(..()) - return TRUE - if(anchored) - default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item) - update_appearance() - else - to_chat(user, span_warning("You must first secure [src].")) - return TRUE - -/obj/machinery/vending/attackby(obj/item/attack_item, mob/living/user, list/modifiers, list/attack_modifiers) - if(panel_open && is_wire_tool(attack_item)) - wires.interact(user) - return - - if(refill_canister && istype(attack_item, refill_canister)) - if (!panel_open) - to_chat(user, span_warning("You should probably unscrew the service panel first!")) - else if (machine_stat & (BROKEN|NOPOWER)) - to_chat(user, span_notice("[src] does not respond.")) - else - //if the panel is open we attempt to refill the machine - var/obj/item/vending_refill/canister = attack_item - if(canister.get_part_rating() == 0) - to_chat(user, span_warning("[canister] is empty!")) - else - // instantiate canister if needed - var/restocked = restock(canister) - post_restock(user, restocked) - return - - if(compartmentLoadAccessCheck(user) && !user.combat_mode) - if(canLoadItem(attack_item)) - loadingAttempt(attack_item, user) - - if(istype(attack_item, /obj/item/storage/bag)) //trays USUALLY - var/obj/item/storage/storage_item = attack_item - var/loaded = 0 - var/denied_items = 0 - for(var/obj/item/the_item in storage_item.contents) - if(contents.len >= MAX_VENDING_INPUT_AMOUNT) // no more than 30 item can fit inside, legacy from snack vending although not sure why it exists - to_chat(user, span_warning("[src]'s compartment is full.")) - break - if(canLoadItem(the_item) && loadingAttempt(the_item, user)) - storage_item.atom_storage?.attempt_remove(the_item, src) - loaded++ - else - denied_items++ - if(denied_items) - to_chat(user, span_warning("[src] refuses some items!")) - if(loaded) - to_chat(user, span_notice("You insert [loaded] dishes into [src]'s compartment.")) - else - . = ..() - if(tiltable && !tilted && attack_item.force) - if(isclosedturf(get_turf(user))) //If the attacker is inside of a wall, immediately fall in the other direction, with no chance for goodies. - var/opposite_direction = REVERSE_DIR(get_dir(src, user)) - var/target = get_step(src, opposite_direction) - tilt(get_turf(target)) - return - switch(rand(1, 100)) - if(1 to 5) - freebie(3) - if(6 to 15) - freebie(2) - if(16 to 25) - freebie(1) - if(26 to 75) - return - if(76 to 100) - tilt(user) - -/** - * Dispenses free items from the standard stock. - * Arguments: - * freebies - number of free items to vend - */ -/obj/machinery/vending/proc/freebie(freebies) - visible_message(span_notice("[src] yields [freebies > 1 ? "several free goodies" : "a free goody"][credits_contained > 0 ? " and some credits" : ""]!")) - - for(var/i in 1 to freebies) - playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) - for(var/datum/data/vending_product/record in shuffle(product_records)) - - if(record.amount <= 0) //Try to use a record that actually has something to dump. - continue - // Always give out new stuff that costs before free returned stuff, because of the risk getting gibbed involved - var/only_returned_left = (record.amount <= LAZYLEN(record.returned_products)) - dispense(record, get_turf(src), silent = TRUE, dispense_returned = only_returned_left) - break - deploy_credits() - -/** - * Tilts ontop of the atom supplied, if crit is true some extra shit can happen. See [fall_and_crush] for return values. - * Arguments: - * fatty - atom to tilt the vendor onto - * local_crit_chance - percent chance of a critical hit - * forced_crit - specific critical hit case to use, if any - * range - the range of the machine when thrown if not adjacent -*/ -/obj/machinery/vending/proc/tilt(atom/fatty, local_crit_chance = crit_chance, forced_crit = forcecrit, range = 1) - if(QDELETED(src) || !has_gravity(src)) - return - - . = NONE - - var/picked_rotation = pick(90, 270) - if(Adjacent(fatty)) - . = fall_and_crush(get_turf(fatty), squish_damage, local_crit_chance, forced_crit, 6 SECONDS, rotation = picked_rotation) - - if (. & SUCCESSFULLY_FELL_OVER) - visible_message(span_danger("[src] tips over!")) - tilted = TRUE - tilted_rotation = picked_rotation - layer = ABOVE_MOB_LAYER - - if(get_turf(fatty) != get_turf(src)) - throw_at(get_turf(fatty), range, 1, spin = FALSE, quickstart = FALSE) - -/** - * Causes src to fall onto [target], crushing everything on it (including itself) with [damage] - * and a small chance to do a spectacular effect per entity (if a chance above 0 is provided). - * - * Args: - * * turf/target: The turf to fall onto. Cannot be null. - * * damage: The raw numerical damage to do by default. - * * chance_to_crit: The percent chance of a critical hit occurring. Default: 0 - * * forced_crit_case: If given a value from crushing.dm, [target] and its contents will always be hit with that specific critical hit. Default: null - * * paralyze_time: The time, in deciseconds, a given mob/living will be paralyzed for if crushed. - * * crush_dir: The direction the crush is coming from. Default: dir of src to [target]. - * * damage_type: The type of damage to do. Default: BRUTE - * * damage_flag: The attack flag for armor purposes. Default: MELEE - * * rotation: The angle of which to rotate src's transform by on a successful tilt. Default: 90. - * - * Returns: A collection of bitflags defined in crushing.dm. Read that file's documentation for info. - */ -/atom/movable/proc/fall_and_crush(turf/target, damage, chance_to_crit = 0, forced_crit_case = null, paralyze_time, crush_dir = get_dir(get_turf(src), target), damage_type = BRUTE, damage_flag = MELEE, rotation = 90) - - ASSERT(!isnull(target)) - - var/flags_to_return = NONE - - if (!target.is_blocked_turf(TRUE, src, list(src))) - for(var/atom/atom_target in (target.contents) + target) - if (isarea(atom_target)) - continue - - if (SEND_SIGNAL(atom_target, COMSIG_PRE_TILT_AND_CRUSH, src) & COMPONENT_IMMUNE_TO_TILT_AND_CRUSH) - continue - - var/crit_case = forced_crit_case - if (isnull(crit_case) && chance_to_crit > 0) - if (prob(chance_to_crit)) - crit_case = pick_weight(get_crit_crush_chances()) - var/crit_rebate_mult = 1 // lessen the normal damage we deal for some of the crits - - if (!isnull(crit_case)) - crit_rebate_mult = fall_and_crush_crit_rebate_table(crit_case) - apply_crit_crush(crit_case, atom_target) - - var/adjusted_damage = damage * crit_rebate_mult - var/crushed - if (isliving(atom_target)) - crushed = TRUE - var/mob/living/carbon/living_target = atom_target - var/was_alive = (living_target.stat != DEAD) - var/blocked = living_target.run_armor_check(attack_flag = damage_flag) - if (iscarbon(living_target)) - var/mob/living/carbon/carbon_target = living_target - if(prob(30)) - carbon_target.apply_damage(max(0, adjusted_damage), damage_type, blocked = blocked, forced = TRUE, spread_damage = TRUE, attack_direction = crush_dir) // the 30% chance to spread the damage means you escape breaking any bones - else - var/brute = (damage_type == BRUTE ? damage : 0) * 0.5 - var/burn = (damage_type == BURN ? damage : 0) * 0.5 - carbon_target.take_bodypart_damage(brute, burn, check_armor = TRUE, wound_bonus = 5) // otherwise, deal it to 2 random limbs (or the same one) which will likely shatter something - carbon_target.take_bodypart_damage(brute, burn, check_armor = TRUE, wound_bonus = 5) - carbon_target.AddElement(/datum/element/squish, 80 SECONDS) - else - living_target.apply_damage(adjusted_damage, damage_type, blocked = blocked, forced = TRUE, attack_direction = crush_dir) - - living_target.Paralyze(paralyze_time) - living_target.emote("scream") - playsound(living_target, 'sound/effects/blob/blobattack.ogg', 40, TRUE) - playsound(living_target, 'sound/effects/splat.ogg', 50, TRUE) - post_crush_living(living_target, was_alive) - flags_to_return |= (SUCCESSFULLY_CRUSHED_MOB|SUCCESSFULLY_CRUSHED_ATOM) - - else if(check_atom_crushable(atom_target)) - atom_target.take_damage(adjusted_damage, damage_type, damage_flag, FALSE, crush_dir) - crushed = TRUE - flags_to_return |= SUCCESSFULLY_CRUSHED_ATOM - - if (crushed) - atom_target.visible_message(span_danger("[atom_target] is crushed by [src]!"), span_userdanger("You are crushed by [src]!")) - SEND_SIGNAL(atom_target, COMSIG_POST_TILT_AND_CRUSH, src) - - var/matrix/to_turn = turn(transform, rotation) - animate(src, transform = to_turn, 0.2 SECONDS) - playsound(src, 'sound/effects/bang.ogg', 40) - - visible_message(span_danger("[src] tips over, slamming hard onto [target]!")) - flags_to_return |= SUCCESSFULLY_FELL_OVER - post_tilt() - else - visible_message(span_danger("[src] rebounds comically as it fails to slam onto [target]!")) - - Move(target, crush_dir) // we still TRY to move onto it for shit like teleporters - return flags_to_return - -/** - * Exists for the purposes of custom behavior. - * Called directly after [crushed] is crushed. - * - * Args: - * * mob/living/crushed: The mob that was crushed. - * * was_alive: Boolean. True if the mob was alive before the crushing. - */ -/atom/movable/proc/post_crush_living(mob/living/crushed, was_alive) - return - -/** - * Exists for the purposes of custom behavior. - * Called directly after src actually rotates and falls over. - */ -/atom/movable/proc/post_tilt() - return - -/proc/check_atom_crushable(atom/atom_target) - /// Contains structures and items that vendors shouldn't crush when we land on them. - var/static/list/vendor_uncrushable_objects = list( - /obj/structure/chair, - /obj/machinery/conveyor, - ) + GLOB.WALLITEMS_INTERIOR + GLOB.WALLITEMS_EXTERIOR - - if(is_type_in_list(atom_target, vendor_uncrushable_objects)) //make sure its not in the list of "uncrushable" stuff - return FALSE - - if (atom_target.uses_integrity && !(atom_target.invisibility > SEE_INVISIBLE_LIVING)) //check if it has integrity + allow ninjas, etc to be crushed in cloak - return TRUE //SMUSH IT - - return FALSE - -/obj/machinery/vending/post_crush_living(mob/living/crushed, was_alive) - - if(was_alive && crushed.stat == DEAD && crushed.client) - crushed.client.give_award(/datum/award/achievement/misc/vendor_squish, crushed) // good job losing a fight with an inanimate object idiot - - add_memory_in_range(crushed, 7, /datum/memory/witness_vendor_crush, protagonist = crushed, antagonist = src) - - return ..() - -/** - * Allows damage to be reduced on certain crit cases. - * Args: - * * crit_case: The critical case chosen. - */ -/atom/movable/proc/fall_and_crush_crit_rebate_table(crit_case) - - ASSERT(!isnull(crit_case)) - - switch(crit_case) - if (CRUSH_CRIT_SHATTER_LEGS) - return 0.2 - else - return 1 - -/obj/machinery/vending/fall_and_crush_crit_rebate_table(crit_case) - - if (crit_case == VENDOR_CRUSH_CRIT_GLASSCANDY) - return 0.33 - - return ..() - -/** - * Returns a assoc list of (critcase -> num), where critcase is a critical define in crushing.dm and num is a weight. - * Use with pickweight to acquire a random critcase. - */ -/atom/movable/proc/get_crit_crush_chances() - RETURN_TYPE(/list) - - var/list/weighted_crits = list() - - weighted_crits[CRUSH_CRIT_SHATTER_LEGS] = 100 - weighted_crits[CRUSH_CRIT_PARAPLEGIC] = 80 - weighted_crits[CRUSH_CRIT_HEADGIB] = 20 - weighted_crits[CRUSH_CRIT_SQUISH_LIMB] = 100 - - return weighted_crits - -/obj/machinery/vending/get_crit_crush_chances() - var/list/weighted_crits = ..() - - weighted_crits[VENDOR_CRUSH_CRIT_GLASSCANDY] = 100 - weighted_crits[VENDOR_CRUSH_CRIT_PIN] = 100 - - return weighted_crits - -/** - * Should be where critcase effects are actually implemented. Use this to apply critcases. - * Args: - * * crit_case: The chosen critcase, defined in crushing.dm. - * * atom/atom_target: The target to apply the critical hit to. Cannot be null. Can be anything except /area. - * - * Returns: - * TRUE if a crit case is successfully applied, FALSE otherwise. - */ -/atom/movable/proc/apply_crit_crush(crit_case, atom/atom_target) - switch (crit_case) - if(CRUSH_CRIT_SHATTER_LEGS) // shatter their legs and bleed 'em - if (!iscarbon(atom_target)) - return FALSE - var/mob/living/carbon/carbon_target = atom_target - carbon_target.bleed(150) - var/obj/item/bodypart/leg/left/left_leg = carbon_target.get_bodypart(BODY_ZONE_L_LEG) - if(left_leg) - left_leg.receive_damage(brute = 200) - var/obj/item/bodypart/leg/right/right_leg = carbon_target.get_bodypart(BODY_ZONE_R_LEG) - if(right_leg) - right_leg.receive_damage(brute = 200) - if(left_leg || right_leg) - carbon_target.visible_message(span_danger("[carbon_target]'s legs shatter with a sickening crunch!"), span_userdanger("Your legs shatter with a sickening crunch!")) - return TRUE - if(CRUSH_CRIT_PARAPLEGIC) // paralyze this binch - // the new paraplegic gets like 4 lines of losing their legs so skip them - if (!iscarbon(atom_target)) - return FALSE - var/mob/living/carbon/carbon_target = atom_target - visible_message(span_danger("[carbon_target]'s spinal cord is obliterated with a sickening crunch!"), ignored_mobs = list(carbon_target)) - carbon_target.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) - return TRUE - if(CRUSH_CRIT_SQUISH_LIMB) // limb squish! - if (!iscarbon(atom_target)) - return FALSE - var/mob/living/carbon/carbon_target = atom_target - for(var/obj/item/bodypart/squish_part in carbon_target.bodyparts) - var/severity = pick(WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, WOUND_SEVERITY_CRITICAL) - if (!carbon_target.cause_wound_of_type_and_severity(WOUND_BLUNT, squish_part, severity, wound_source = "crushed by [src]")) - squish_part.receive_damage(brute = 30) - carbon_target.visible_message(span_danger("[carbon_target]'s body is maimed underneath the mass of [src]!"), span_userdanger("Your body is maimed underneath the mass of [src]!")) - return TRUE - if(CRUSH_CRIT_HEADGIB) // skull squish! - if (!iscarbon(atom_target)) - return FALSE - var/mob/living/carbon/carbon_target = atom_target - var/obj/item/bodypart/head/carbon_head = carbon_target.get_bodypart(BODY_ZONE_HEAD) - if(carbon_head) - if(carbon_head.dismember()) - carbon_target.visible_message(span_danger("[carbon_head] explodes in a shower of gore beneath [src]!"), span_userdanger("Oh f-")) - carbon_head.drop_organs() - qdel(carbon_head) - new /obj/effect/gibspawner/human/bodypartless(get_turf(carbon_target), carbon_target) - return TRUE - - return FALSE - -/obj/machinery/vending/apply_crit_crush(crit_case, atom_target) - . = ..() - - if (.) - return TRUE - - switch (crit_case) - if (VENDOR_CRUSH_CRIT_GLASSCANDY) - if (!iscarbon(atom_target)) - return FALSE - var/mob/living/carbon/carbon_target = atom_target - for(var/i in 1 to num_shards) - var/obj/item/shard/shard = new /obj/item/shard(get_turf(carbon_target)) - var/datum/embedding/embed = shard.get_embed() - embed.embed_chance = 100 - embed.ignore_throwspeed_threshold = TRUE - embed.impact_pain_mult = 1 - carbon_target.hitby(shard, skipcatch = TRUE, hitpush = FALSE) - embed.embed_chance = initial(embed.embed_chance) - embed.ignore_throwspeed_threshold = initial(embed.ignore_throwspeed_threshold) - embed.impact_pain_mult = initial(embed.impact_pain_mult) - return TRUE - if (VENDOR_CRUSH_CRIT_PIN) // pin them beneath the machine until someone untilts it - if (!isliving(atom_target)) - return FALSE - var/mob/living/living_target = atom_target - forceMove(get_turf(living_target)) - buckle_mob(living_target, force=TRUE) - living_target.visible_message(span_danger("[living_target] is pinned underneath [src]!"), span_userdanger("You are pinned down by [src]!")) - return TRUE - - return FALSE - -/** - * Rights the vendor up, unpinning mobs under it, if any. - * Arguments: - * user - mob that has untilted the vendor - */ -/obj/machinery/vending/proc/untilt(mob/user) - if(user) - user.visible_message(span_notice("[user] rights [src]."), \ - span_notice("You right [src].")) - - unbuckle_all_mobs(TRUE) - - tilted = FALSE - layer = initial(layer) - - var/matrix/to_turn = turn(transform, -tilted_rotation) - animate(src, transform = to_turn, 0.2 SECONDS) - tilted_rotation = 0 - -/** - * Tries to insert the item into the vendor, and depending on whether the product is a part of the vendor's - * stock or not, increments an already present product entry's available amount or creates a new entry. - * arguments: - * inserted_item - the item we're trying to insert - * user - mob who's trying to insert the item - */ -/obj/machinery/vending/proc/loadingAttempt(obj/item/inserted_item, mob/user) - . = TRUE - if(!user.transferItemToLoc(inserted_item, src)) - return FALSE - to_chat(user, span_notice("You insert [inserted_item] into [src]'s input compartment.")) - - for(var/datum/data/vending_product/product_datum in product_records + coin_records + hidden_records) - if(inserted_item.type == product_datum.product_path) - product_datum.amount++ - LAZYADD(product_datum.returned_products, inserted_item) - return - - if(vending_machine_input[inserted_item.type]) - vending_machine_input[inserted_item.type]++ - else - vending_machine_input[inserted_item.type] = 1 - loaded_items++ - - -/obj/machinery/vending/unbuckle_mob(mob/living/buckled_mob, force = FALSE, can_fall = TRUE) - if(!force) - return - . = ..() - -/** - * Is the passed in user allowed to load this vending machines compartments? This only is ran if we are using a /obj/item/storage/bag to load the vending machine, and not a dedicated restocker. - * - * Arguments: - * * user - mob that is doing the loading of the vending machine - */ -/obj/machinery/vending/proc/compartmentLoadAccessCheck(mob/user) - if(!req_access || allowed(user) || (obj_flags & EMAGGED) || !scan_id) - return TRUE - - to_chat(user, span_warning("[src]'s input compartment blinks red: Access denied.")) - return FALSE - -/obj/machinery/vending/exchange_parts(mob/user, obj/item/storage/part_replacer/replacer) - if(!istype(replacer) || !component_parts || !refill_canister) - return FALSE - - var/works_from_distance = istype(replacer, /obj/item/storage/part_replacer/bluespace) - - if(!panel_open || works_from_distance) - to_chat(user, display_parts(user)) - - if(!panel_open && !works_from_distance) - return FALSE - - var/restocked = 0 - for(var/replacer_item in replacer) - if(istype(replacer_item, refill_canister)) - restocked += restock(replacer_item) - post_restock(user, restocked) - if(restocked > 0) - replacer.play_rped_sound() - return TRUE - -/obj/machinery/vending/on_deconstruction(disassembled) - update_canister() - . = ..() - -/obj/machinery/vending/emag_act(mob/user, obj/item/card/emag/emag_card) - if(obj_flags & EMAGGED) - return FALSE - obj_flags |= EMAGGED - balloon_alert(user, "product lock disabled") - return TRUE - -/obj/machinery/vending/interact(mob/user) - if (HAS_AI_ACCESS(user)) - return ..() - - if(seconds_electrified && !(machine_stat & NOPOWER)) - if(shock(user, 100)) - return - - if(tilted && !user.buckled) - to_chat(user, span_notice("You begin righting [src].")) - if(do_after(user, 5 SECONDS, target=src)) - untilt(user) - return - - return ..() - -/obj/machinery/vending/attack_robot_secondary(mob/user, list/modifiers) - . = ..() - if (!Adjacent(user, src)) - return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - -/obj/machinery/vending/ui_assets(mob/user) - return list( - get_asset_datum(/datum/asset/spritesheet_batched/vending), - ) - -/obj/machinery/vending/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "Vending", name) - ui.open() - -/obj/machinery/vending/ui_static_data(mob/user) - var/list/data = list() - data["onstation"] = onstation - data["all_products_free"] = all_products_free - data["department"] = payment_department - data["jobDiscount"] = DEPARTMENT_DISCOUNT - data["product_records"] = list() - data["displayed_currency_icon"] = displayed_currency_icon - data["displayed_currency_name"] = displayed_currency_name - - var/list/categories = list() - - data["product_records"] = collect_records_for_static_data(product_records, categories) - data["coin_records"] = collect_records_for_static_data(coin_records, categories, premium = TRUE) - data["hidden_records"] = collect_records_for_static_data(hidden_records, categories, premium = TRUE) - - data["categories"] = categories - - return data - -/** - * Returns a list of given product records of the vendor to be used in UI. - * arguments: - * records - list of records available - * categories - list of categories available - * premium - bool of whether a record should be priced by a custom/premium price or not - */ -/obj/machinery/vending/proc/collect_records_for_static_data(list/records, list/categories, premium) - var/static/list/default_category = list( - "name" = "Products", - "icon" = "cart-shopping", - ) - - var/list/out_records = list() - - for (var/datum/data/vending_product/record as anything in records) - var/list/static_record = list( - path = replacetext(replacetext("[record.product_path]", "/obj/item/", ""), "/", "-"), - name = record.name, - price = record.price, - max_amount = record.max_amount, - ref = REF(record), - ) - - var/atom/printed = record.product_path - // If it's not GAGS and has no innate colors we have to care about, we use DMIcon - if(ispath(printed, /atom) \ - && (!initial(printed.greyscale_config) || !initial(printed.greyscale_colors)) \ - && !initial(printed.color) \ - ) - static_record["icon"] = initial(printed.icon) - static_record["icon_state"] = initial(printed.icon_state) - - var/list/category = record.category || default_category - if (!isnull(category)) - if (!(category["name"] in categories)) - categories[category["name"]] = list( - "icon" = category["icon"], - ) - - static_record["category"] = category["name"] - - if (premium) - static_record["premium"] = TRUE - - out_records += list(static_record) - - return out_records - -/obj/machinery/vending/ui_data(mob/user) - . = list() - var/obj/item/card/id/card_used - var/held_cash = 0 - if(isliving(user)) - var/mob/living/living_user = user - card_used = living_user.get_idcard(TRUE) - held_cash = living_user.tally_physical_credits() - - var/list/user_data = null - if(card_used?.registered_account) - user_data = list() - user_data["name"] = card_used.registered_account.account_holder - user_data["cash"] = fetch_balance_to_use(card_used) + held_cash - if(card_used.registered_account.account_job) - user_data["job"] = card_used.registered_account.account_job.title - user_data["department"] = card_used.registered_account.account_job.paycheck_department - else - user_data["job"] = "No Job" - user_data["department"] = DEPARTMENT_UNASSIGNED - .["user"] = user_data - - .["stock"] = list() - - for (var/datum/data/vending_product/product_record as anything in product_records + coin_records + hidden_records) - var/list/product_data = list( - name = product_record.name, - path = replacetext(replacetext("[product_record.product_path]", "/obj/item/", ""), "/", "-"), - amount = product_record.amount, - colorable = product_record.colorable, - ) - - .["stock"][product_data["path"]] = product_data - - .["extended_inventory"] = extended_inventory - -/obj/machinery/vending/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - switch(action) - if("vend") - . = vend(params) - if("select_colors") - . = select_colors(params) - -/** - * Whether this vendor can vend items or not. - * arguments: - * user - current customer - */ -/obj/machinery/vending/proc/can_vend(user) - . = FALSE - if(!vend_ready) - return - if(panel_open) - to_chat(user, span_warning("The vending machine cannot dispense products while its service panel is open!")) - return - return TRUE - -/** - * Brings up a color config menu for the picked greyscaled item - */ -/obj/machinery/vending/proc/select_colors(list/params) - . = TRUE - if(!can_vend(usr)) - return - var/datum/data/vending_product/product = locate(params["ref"]) - var/atom/fake_atom = product.product_path - - var/list/allowed_configs = list() - var/config = initial(fake_atom.greyscale_config) - if(!config) - return - allowed_configs += "[config]" - if(ispath(fake_atom, /obj/item)) - var/obj/item/item = fake_atom - if(initial(item.greyscale_config_worn)) - allowed_configs += "[initial(item.greyscale_config_worn)]" - if(initial(item.greyscale_config_inhand_left)) - allowed_configs += "[initial(item.greyscale_config_inhand_left)]" - if(initial(item.greyscale_config_inhand_right)) - allowed_configs += "[initial(item.greyscale_config_inhand_right)]" - - var/datum/greyscale_modify_menu/menu = new( - src, usr, allowed_configs, CALLBACK(src, PROC_REF(vend_greyscale), params), - starting_icon_state=initial(fake_atom.icon_state), - starting_config=initial(fake_atom.greyscale_config), - starting_colors=initial(fake_atom.greyscale_colors) - ) - menu.ui_interact(usr) - -/** - * Vends a greyscale modified item. - * arguments: - * menu - greyscale config menu that has been used to vend the item - */ -/obj/machinery/vending/proc/vend_greyscale(list/params, datum/greyscale_modify_menu/menu) - if(usr != menu.user) - return - vend(params, menu.split_colors) - -/** - * The entire shebang of vending the picked item. Processes the vending and initiates the payment for the item. - * arguments: - * greyscale_colors - greyscale config for the item we're about to vend, if any - */ -/obj/machinery/vending/proc/vend(list/params, list/greyscale_colors) - . = TRUE - if(!can_vend(usr)) - return - vend_ready = FALSE //One thing at a time!! - var/datum/data/vending_product/item_record = locate(params["ref"]) - var/list/record_to_check = product_records + coin_records - if(extended_inventory) - record_to_check = product_records + coin_records + hidden_records - if(!item_record || !istype(item_record) || !item_record.product_path) - vend_ready = TRUE - return - var/price_to_use = item_record.price - if(item_record in hidden_records) - if(!extended_inventory) - vend_ready = TRUE - return - else if (!(item_record in record_to_check)) - vend_ready = TRUE - message_admins("Vending machine exploit attempted by [ADMIN_LOOKUPFLW(usr)]!") - return - if (item_record.amount <= 0) - // MASSMETA EDIT BEGIN (ru_vendors) - //speak("Sold out of [item_record.name].") - - speak("Товар [item_record.name] распродан.") - // MASSMETA EDIT END - flick(icon_deny,src) - vend_ready = TRUE - return - if(onstation) - // Here we do additional handing ahead of the payment component's logic, such as age restrictions and additional logging - var/obj/item/card/id/card_used - var/mob/living/living_user - if(isliving(usr)) - living_user = usr - card_used = living_user.get_idcard(TRUE) - if(age_restrictions && item_record.age_restricted && (!card_used.registered_age || card_used.registered_age < AGE_MINOR)) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("You are not of legal age to purchase [item_record.name].") - - speak("Вы не достигли совершеннолетия для покупки [item_record.name].") - //MASSMETA EDIT END - - if(!(usr in GLOB.narcd_underages)) - aas_config_announce(/datum/aas_config_entry/vendomat_age_control, list( - "PERSON" = usr.name, - "LOCATION" = get_area_name(src), - "VENDOR" = name, - "PRODUCT" = item_record.name - ), src, list(RADIO_CHANNEL_SECURITY)) - GLOB.narcd_underages += usr - flick(icon_deny,src) - vend_ready = TRUE - return - - if(!proceed_payment(card_used, living_user, item_record, price_to_use, params["discountless"])) - vend_ready = TRUE - return - - if(last_shopper != REF(usr) || purchase_message_cooldown < world.time) - //MASSMETA EDIT BEGIN (ru_vendors) - //var/vend_response = vend_reply || "Thank you for shopping with [src]!" - - var/vend_response = vend_reply || "Спасибо за покупку в [src]!" - //MASSMETA EDIT END - speak(vend_response) - purchase_message_cooldown = world.time + 5 SECONDS - //This is not the best practice, but it's safe enough here since the chances of two people using a machine with the same ref in 5 seconds is fuck low - last_shopper = REF(usr) - use_energy(active_power_usage) - if(icon_vend) //Show the vending animation if needed - flick(icon_vend,src) - - // Always give out free returned stuff first, e.g. to avoid walling a traitor objective in a bag behind paid items - var/returned_available = LAZYLEN(item_record.returned_products) - var/obj/item/vended_item = dispense(item_record, get_turf(src), dispense_returned = returned_available) - - if(greyscale_colors) - vended_item.set_greyscale(colors=greyscale_colors) - if(usr.CanReach(src) && usr.put_in_hands(vended_item)) - to_chat(usr, span_notice("You take [item_record.name] out of the slot.")) - vended_item.do_pickup_animation(usr, src) - else - to_chat(usr, span_warning("[capitalize(format_text(item_record.name))] falls onto the floor!")) - SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[item_record.product_path]")) - vend_ready = TRUE - -///Common proc that dispenses an item. Called when the item is vended, or gotten some other way. -/obj/machinery/vending/proc/dispense(datum/data/vending_product/item_record, atom/spawn_location, silent = FALSE, dispense_returned = FALSE) - SHOULD_CALL_PARENT(TRUE) - if(!silent) - playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) - - var/obj/item/vended_item - if(dispense_returned) - vended_item = LAZYACCESS(item_record.returned_products, LAZYLEN(item_record.returned_products)) //first in, last out - LAZYREMOVE(item_record.returned_products, vended_item) - vended_item.forceMove(spawn_location) - else - vended_item = new item_record.product_path(spawn_location) - if(vended_item.type in contraband) - ADD_TRAIT(vended_item, TRAIT_CONTRABAND, INNATE_TRAIT) - - on_dispense(vended_item, dispense_returned) - item_record.amount-- - return vended_item - -///A proc meant to perform custom behavior on newly dispensed items. -/obj/machinery/vending/proc/on_dispense(obj/item/vended_item, dispense_returned = FALSE) - return - -/** - * Returns the balance that the vendor will use for proceeding payment. Most vendors would want to use the user's - * card's account credits balance. - * arguments: - * passed_id - the id card that will be billed for the product - */ -/obj/machinery/vending/proc/fetch_balance_to_use(obj/item/card/id/passed_id) - return passed_id.registered_account.account_balance - -/** - * Handles payment processing: discounts, logging, balance change etc. - * arguments: - * paying_id_card - the id card that will be billed for the product. - * mob_paying - the mob that is trying to purchase the item. - * product_to_vend - the product record of the item we're trying to vend. - * price_to_use - price of the item we're trying to vend. - * discountless - whether or not to apply discounts - */ -/obj/machinery/vending/proc/proceed_payment(obj/item/card/id/paying_id_card, mob/living/mob_paying, datum/data/vending_product/product_to_vend, price_to_use, discountless) - if(QDELETED(paying_id_card)) //not available(null) or somehow is getting destroyed - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("You do not possess an ID to purchase [product_to_vend.name].") - - speak("Требуется ID для покупки [product_to_vend.name].") - //MASSMETA EDIT END - - return FALSE - var/datum/bank_account/account = paying_id_card.registered_account - if(account.account_job && account.account_job.paycheck_department == payment_department && !discountless) - price_to_use = max(round(price_to_use * DEPARTMENT_DISCOUNT), 1) //No longer free, but signifigantly cheaper. - if(LAZYLEN(product_to_vend.returned_products)) - price_to_use = 0 //returned items are free - if(price_to_use && (attempt_charge(src, mob_paying, price_to_use) & COMPONENT_OBJ_CANCEL_CHARGE)) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("You do not possess the funds to purchase [product_to_vend.name].") - - speak("У вас недостаточно средств для покупки [product_to_vend.name].") - //MASSMETA EDIT END - flick(icon_deny,src) - vend_ready = TRUE - return FALSE - //actual payment here - var/datum/bank_account/paying_id_account = SSeconomy.get_dep_account(payment_department) - if(paying_id_account) - SSblackbox.record_feedback("amount", "vending_spent", price_to_use) - SSeconomy.track_purchase(account, price_to_use, name) - log_econ("[price_to_use] credits were inserted into [src] by [account.account_holder] to buy [product_to_vend].") - credits_contained += round(price_to_use * VENDING_CREDITS_COLLECTION_AMOUNT) - return TRUE - -/obj/machinery/vending/process(seconds_per_tick) - if(machine_stat & (BROKEN|NOPOWER)) - return PROCESS_KILL - if(!active) - return - - if(seconds_electrified > MACHINE_NOT_ELECTRIFIED) - seconds_electrified-- - - //Pitch to the people! Really sell it! - if(last_slogan + slogan_delay <= world.time && slogan_list.len > 0 && !shut_up && SPT_PROB(2.5, seconds_per_tick)) - var/slogan = pick(slogan_list) - speak(slogan) - last_slogan = world.time - - if(shoot_inventory && SPT_PROB(shoot_inventory_chance, seconds_per_tick)) - throw_item() - -/** - * Speak the given message verbally - * - * Checks if the machine is powered and the message exists - * - * Arguments: - * * message - the message to speak - */ -/obj/machinery/vending/proc/speak(message) - if(machine_stat & (BROKEN|NOPOWER)) - return - if(!message) - return - - say(message) - -/obj/machinery/vending/power_change() - . = ..() - if(powered()) - START_PROCESSING(SSmachines, src) - -//Somebody cut an important wire and now we're following a new definition of "pitch." -/** - * Throw an item from our internal inventory out in front of us - * - * This is called when we are hacked, it selects a random product from the records that has an amount > 0 - * This item is then created and tossed out in front of us with a visible message - */ -/obj/machinery/vending/proc/throw_item() - var/mob/living/target = locate() in view(7,src) - if(!target) - return FALSE - - var/obj/thrown_item - for(var/datum/data/vending_product/record in shuffle(product_records)) - if(record.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = record.product_path - if(!dump_path) - continue - // Always throw new stuff that costs before free returned stuff, because of the hacking effort and time between throws involved - var/only_returned_left = (record.amount <= LAZYLEN(record.returned_products)) - thrown_item = dispense(record, get_turf(src), silent = TRUE, dispense_returned = only_returned_left) - break - if(isnull(thrown_item)) - return FALSE - - pre_throw(thrown_item) - - thrown_item.throw_at(target, 16, 3) - visible_message(span_danger("[src] launches [thrown_item] at [target]!")) - return TRUE - -/** - * A callback called before an item is tossed out - * - * Override this if you need to do any special case handling - * - * Arguments: - * * thrown_item - obj/item being thrown - */ -/obj/machinery/vending/proc/pre_throw(obj/item/thrown_item) - return - -/** - * Shock the passed in user - * - * This checks we have power and that the passed in prob is passed, then generates some sparks - * and calls electrocute_mob on the user - * - * Arguments: - * * user - the user to shock - * * shock_chance - probability the shock happens - */ -/obj/machinery/vending/proc/shock(mob/living/user, shock_chance) - if(!istype(user) || machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock - return FALSE - if(!prob(shock_chance)) - return FALSE - do_sparks(5, TRUE, src) - if(electrocute_mob(user, get_area(src), src, 0.7, dist_check = TRUE)) - return TRUE - else - return FALSE -/** - * Are we able to load the item passed in - * - * Arguments: - * * loaded_item - the item being loaded - * * user - the user doing the loading - * * send_message - should we send a message to the user if the item can't be loaded? Either a to_chat or a speak depending on vending type. - */ -/obj/machinery/vending/proc/canLoadItem(obj/item/loaded_item, mob/user, send_message = TRUE) - if(!length(loaded_item.contents) && ((loaded_item.type in products) || (loaded_item.type in premium) || (loaded_item.type in contraband))) - return TRUE - if(send_message) - to_chat(user, span_warning("[src] does not accept [loaded_item]!")) - return FALSE - -/obj/machinery/vending/hitby(atom/movable/hitting_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - . = ..() - var/mob/living/living_mob = hitting_atom - if(tilted || !istype(living_mob) || !prob(20 * (throwingdatum.speed - living_mob.throw_speed))) // hulk throw = +20%, neckgrab throw = +20% - return - - tilt(living_mob) - -/obj/machinery/vending/attack_tk_grab(mob/user) - to_chat(user, span_warning("[src] seems to resist your mental grasp!")) - -///Crush the mob that the vending machine got thrown at -/obj/machinery/vending/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - if(isliving(hit_atom)) - tilt(fatty=hit_atom) - return ..() - -/** Drop credits when the vendor is attacked.*/ -/obj/machinery/vending/proc/deploy_credits() - if(credits_contained <= 0) - return - var/credits_to_remove = min(CREDITS_DUMP_THRESHOLD, round(credits_contained)) - var/obj/item/holochip/holochip = new(loc, credits_to_remove) - playsound(src, 'sound/effects/cashregister.ogg', 40, TRUE) - credits_contained = max(0, credits_contained - credits_to_remove) - SSblackbox.record_feedback("amount", "vending machine looted", holochip.credits) - -/obj/machinery/vending/add_context(atom/source, list/context, obj/item/held_item, mob/user) - if(tilted && !held_item) - context[SCREENTIP_CONTEXT_LMB] = "Right machine" - return CONTEXTUAL_SCREENTIP_SET - - if(held_item?.tool_behaviour == TOOL_SCREWDRIVER) - context[SCREENTIP_CONTEXT_LMB] = panel_open ? "Close panel" : "Open panel" - return CONTEXTUAL_SCREENTIP_SET - - if(panel_open && held_item?.tool_behaviour == TOOL_WRENCH) - context[SCREENTIP_CONTEXT_LMB] = anchored ? "Unsecure" : "Secure" - return CONTEXTUAL_SCREENTIP_SET - - if(panel_open && held_item?.tool_behaviour == TOOL_CROWBAR) - context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" - return CONTEXTUAL_SCREENTIP_SET - - if(!isnull(held_item) && (vending_machine_input[held_item.type] || canLoadItem(held_item, user, send_message = FALSE))) - context[SCREENTIP_CONTEXT_LMB] = "Load item" - return CONTEXTUAL_SCREENTIP_SET - - if(panel_open && istype(held_item, refill_canister)) - context[SCREENTIP_CONTEXT_LMB] = "Restock vending machine[credits_contained ? " and collect credits" : null]" - return TRUE - return NONE - -/obj/machinery/vending/custom - name = "Custom Vendor" - icon_state = "custom" - icon_deny = "custom-deny" - max_integrity = 400 - payment_department = NO_FREEBIES - light_mask = "custom-light-mask" - refill_canister = /obj/item/vending_refill/custom - fish_source_path = /datum/fish_source/vending/custom - /// where the money is sent - var/datum/bank_account/linked_account - /// max number of items that the custom vendor can hold - var/max_loaded_items = 20 - /// Base64 cache of custom icons. - var/list/base64_cache = list() - panel_type = "panel20" - -/obj/machinery/vending/custom/compartmentLoadAccessCheck(mob/user) - . = FALSE - if(!isliving(user)) - return FALSE - var/mob/living/living_user = user - var/obj/item/card/id/id_card = living_user.get_idcard(FALSE) - if(id_card?.registered_account && id_card.registered_account == linked_account) - return TRUE - -/obj/machinery/vending/custom/canLoadItem(obj/item/loaded_item, mob/user, send_message = TRUE) - . = FALSE - if(loaded_item.flags_1 & HOLOGRAM_1) - if(send_message) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("This vendor cannot accept nonexistent items.") - - speak("Этот вендор не может принимать несуществующие товары.") - //MASSMETA EDIT END - return - if(loaded_items >= max_loaded_items) - if(send_message) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("There are too many items in stock.") - - speak("Слишком много товаров в наличии.") - //MASSMETA EDIT END - return - if(isstack(loaded_item)) - if(send_message) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("Loose items may cause problems, try to use it inside wrapping paper.") - - speak("Незакрепленные предметы могут вызвать сбои, старайтесь помещать их в оберточную бумагу.") - //MASSMETA EDIT END - return - if(loaded_item.custom_price) - return TRUE - -/obj/machinery/vending/custom/ui_interact(mob/user, datum/tgui/ui) - if(!linked_account) - balloon_alert(user, "no registered owner!") - return FALSE - return ..() - -/obj/machinery/vending/custom/ui_data(mob/user) - . = ..() - .["access"] = compartmentLoadAccessCheck(user) - .["vending_machine_input"] = list() - for (var/obj/item/stocked_item as anything in vending_machine_input) - if(vending_machine_input[stocked_item] > 0) - var/base64 - var/price = 0 - var/itemname = initial(stocked_item.name) - for(var/obj/item/stored_item in contents) - if(stored_item.type == stocked_item) - price = stored_item.custom_price - itemname = stored_item.name - if(!base64) //generate an icon of the item to use in UI - if(base64_cache[stored_item.type]) - base64 = base64_cache[stored_item.type] - else - base64 = icon2base64(getFlatIcon(stored_item, no_anim=TRUE)) - base64_cache[stored_item.type] = base64 - break - var/list/data = list( - path = stocked_item, - name = itemname, - price = price, - img = base64, - amount = vending_machine_input[stocked_item], - colorable = FALSE - ) - .["vending_machine_input"] += list(data) - -/obj/machinery/vending/custom/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - switch(action) - if("dispense") - if(isliving(usr)) - vend_act(usr, params) - vend_ready = TRUE - return TRUE - -/obj/machinery/vending/custom/attackby(obj/item/attack_item, mob/user, list/modifiers, list/attack_modifiers) - if(!linked_account && isliving(user)) - var/mob/living/living_user = user - var/obj/item/card/id/card_used = living_user.get_idcard(TRUE) - if(card_used?.registered_account) - linked_account = card_used.registered_account - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("\The [src] has been linked to [card_used].") - - speak("[src] теперь привязанно к карте [card_used].") - //MASSMETA EDIT END - - if(!compartmentLoadAccessCheck(user) || !IS_WRITING_UTENSIL(attack_item)) - return ..() - - var/new_name = reject_bad_name(tgui_input_text(user, "Set name", "Name", name, max_length = 20), allow_numbers = TRUE, strict = TRUE, cap_after_symbols = FALSE) - if (new_name) - name = new_name - var/new_desc = reject_bad_text(tgui_input_text(user, "Set description", "Description", desc, max_length = 60)) - if (new_desc) - desc = new_desc - var/new_slogan = reject_bad_text(tgui_input_text(user, "Set slogan", "Slogan", "Epic", max_length = 60)) - if (new_slogan) - slogan_list += new_slogan - last_slogan = world.time + rand(0, slogan_delay) - -/obj/machinery/vending/custom/crowbar_act(mob/living/user, obj/item/attack_item) - return FALSE - -/obj/machinery/vending/custom/on_deconstruction(disassembled) - unbuckle_all_mobs(TRUE) - var/turf/current_turf = get_turf(src) - if(current_turf) - for(var/obj/item/stored_item in contents) - stored_item.forceMove(current_turf) - explosion(src, devastation_range = -1, light_impact_range = 3) - -/** - * Vends an item to the user. Handles all the logic: - * Updating stock, account transactions, alerting users. - * @return -- TRUE if a valid condition was met, FALSE otherwise. - */ -/obj/machinery/vending/custom/proc/vend_act(mob/living/user, list/params) - if(!vend_ready) - return - var/obj/item/choice = text2path(params["item"]) // typepath is a string coming from javascript, we need to convert it back - var/obj/item/dispensed_item - var/obj/item/card/id/id_card = user.get_idcard(TRUE) - vend_ready = FALSE - if(!id_card || !id_card.registered_account || !id_card.registered_account.account_job) - balloon_alert(usr, "no card found!") - flick(icon_deny, src) - return TRUE - var/datum/bank_account/payee = id_card.registered_account - for(var/obj/item/stock in contents) - if(istype(stock, choice)) - dispensed_item = stock - break - if(!dispensed_item) - return FALSE - /// Charges the user if its not the owner - if(!compartmentLoadAccessCheck(user)) - if(!payee.has_money(dispensed_item.custom_price)) - balloon_alert(user, "insufficient funds!") - return TRUE - /// Make the transaction - payee.adjust_money(-dispensed_item.custom_price, , "Vending: [dispensed_item]") - linked_account.adjust_money(dispensed_item.custom_price, "Vending: [dispensed_item] Bought") - linked_account.bank_card_talk("[payee.account_holder] made a [dispensed_item.custom_price] \ - cr purchase at your custom vendor.") - /// Log the transaction - SSblackbox.record_feedback("amount", "vending_spent", dispensed_item.custom_price) - log_econ("[dispensed_item.custom_price] credits were spent on [src] buying a \ - [dispensed_item] by [payee.account_holder], owned by [linked_account.account_holder].") - /// Make an alert - if(last_shopper != REF(usr) || purchase_message_cooldown < world.time) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("Thank you for your patronage [user]!") - - speak("Благодарим [user] за вашу поддержку!") - //MASSMETA EDIT END - purchase_message_cooldown = world.time + 5 SECONDS - last_shopper = REF(usr) - /// Remove the item - loaded_items-- - use_energy(active_power_usage) - vending_machine_input[choice] = max(vending_machine_input[choice] - 1, 0) - if(user.CanReach(src) && user.put_in_hands(dispensed_item)) - to_chat(user, span_notice("You take [dispensed_item.name] out of the slot.")) - else - to_chat(user, span_warning("[capitalize(format_text(dispensed_item.name))] falls onto the floor!")) - return TRUE - -/obj/machinery/vending/custom/unbreakable - name = "Indestructible Vendor" - resistance_flags = INDESTRUCTIBLE - -/obj/item/vending_refill/custom - machine_name = "Custom Vendor" - icon_state = "refill_custom" - custom_premium_price = PAYCHECK_CREW - -/obj/machinery/vending/custom/greed //name and like decided by the spawn - icon_state = "greed" - icon_deny = "greed-deny" - panel_type = "panel4" - max_integrity = 700 - max_loaded_items = 40 - light_mask = "greed-light-mask" - custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT * 5) - -/obj/machinery/vending/custom/greed/Initialize(mapload) - . = ..() - //starts in a state where you can move it - set_panel_open(TRUE) - set_anchored(FALSE) - add_overlay(panel_type) - //and references the deity - name = "[GLOB.deity]'s Consecrated Vendor" - desc = "A vending machine created by [GLOB.deity]." - slogan_list = list("[GLOB.deity] says: It's your divine right to buy!") - add_filter("vending_outline", 9, list("type" = "outline", "color" = COLOR_VERY_SOFT_YELLOW)) - add_filter("vending_rays", 10, list("type" = "rays", "size" = 35, "color" = COLOR_VIVID_YELLOW)) - -/datum/aas_config_entry/vendomat_age_control - name = "Security Alert: Underaged Substance Abuse" - announcement_lines_map = list( - "Message" = "SECURITY ALERT: Underaged crewmember %PERSON recorded attempting to purchase %PRODUCT in %LOCATION by %VENDOR. Please watch for substance abuse." - ) - vars_and_tooltips_map = list( - "PERSON" = "will be replaced with the name of the crewmember", - "PRODUCT" = "with the product, he attempted to purchase", - "LOCATION" = "with place of purchase", - "VENDOR" = "with the vending machine" - ) - -#undef MAX_VENDING_INPUT_AMOUNT diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index 9e5a3c4d8ec4..aff6ed1958ce 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -34,6 +34,7 @@ /obj/item/universal_scanner = 3, /obj/item/vending_refill/custom = 3, ) + allow_custom = TRUE refill_canister = /obj/item/vending_refill/assist product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index ffdf0bd5aa0d..8ed868b0391d 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -234,6 +234,7 @@ GLOBAL_VAR_INIT(all_autodrobe_items, (autodrobe_costumes_items +\ extra_price = PAYCHECK_COMMAND payment_department = ACCOUNT_SRV light_mask = "theater-light-mask" + allow_custom = TRUE /obj/machinery/vending/autodrobe/Initialize(mapload) product_categories = list( diff --git a/code/modules/vending/boozeomat.dm b/code/modules/vending/boozeomat.dm index f05dcb3e9f17..9f867f9f97b8 100644 --- a/code/modules/vending/boozeomat.dm +++ b/code/modules/vending/boozeomat.dm @@ -90,10 +90,12 @@ extra_price = PAYCHECK_COMMAND payment_department = ACCOUNT_SRV light_mask = "boozeomat-light-mask" + allow_custom = TRUE /obj/machinery/vending/boozeomat/syndicate age_restrictions = FALSE initial_language_holder = /datum/language_holder/syndicate + allow_custom = FALSE /obj/item/vending_refill/boozeomat machine_name = "Booze-O-Mat" diff --git a/code/modules/vending/cartridge.dm b/code/modules/vending/cartridge.dm index ccc13b7de720..852c88452ad5 100644 --- a/code/modules/vending/cartridge.dm +++ b/code/modules/vending/cartridge.dm @@ -20,6 +20,7 @@ extra_price = PAYCHECK_COMMAND * 2.5 payment_department = ACCOUNT_SRV light_mask = "cart-light-mask" + allow_custom = TRUE /obj/item/vending_refill/cart machine_name = "PTech" diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index 05c939bbcb87..8925d7ecd2ad 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -35,6 +35,7 @@ extra_price = PAYCHECK_COMMAND payment_department = ACCOUNT_SRV light_mask = "cigs-light-mask" + allow_custom = TRUE /obj/machinery/vending/cigarette/syndicate products = list( @@ -50,6 +51,7 @@ /obj/item/storage/fancy/rollingpapers = 5, ) initial_language_holder = /datum/language_holder/syndicate + allow_custom = FALSE /obj/machinery/vending/cigarette/beach //Used in the lavaland_biodome_beach.dmm ruin name = "\improper ShadyCigs Ultra" @@ -73,6 +75,7 @@ /obj/item/lighter = 3, ) initial_language_holder = /datum/language_holder/beachbum + allow_custom = FALSE /obj/item/vending_refill/cigarette machine_name = "ShadyCigs Deluxe" diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 9ad6ff54dfd3..b9acfe563e9d 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -232,6 +232,7 @@ payment_department = NO_FREEBIES light_mask = "wardrobe-light-mask" light_color = LIGHT_COLOR_ELECTRIC_GREEN + allow_custom = TRUE /obj/item/vending_refill/clothing machine_name = "ClothesMate" diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm index 10b895d1367f..e75cc4f47ceb 100644 --- a/code/modules/vending/coffee.dm +++ b/code/modules/vending/coffee.dm @@ -19,6 +19,7 @@ payment_department = ACCOUNT_SRV light_mask = "coffee-light-mask" light_color = COLOR_DARK_MODERATE_ORANGE + allow_custom = TRUE /obj/item/vending_refill/coffee machine_name = "Solar's Best Hot Drinks" diff --git a/code/modules/vending/cola.dm b/code/modules/vending/cola.dm index 9352c0c8b100..53aa82f8e12a 100644 --- a/code/modules/vending/cola.dm +++ b/code/modules/vending/cola.dm @@ -35,6 +35,7 @@ default_price = PAYCHECK_CREW * 0.7 extra_price = PAYCHECK_CREW payment_department = ACCOUNT_SRV + allow_custom = TRUE var/static/list/spiking_booze = list( // Your "common" spiking booze @@ -81,10 +82,12 @@ icon_state = "Cola_Machine" light_mask = "cola-light-mask" light_color = COLOR_MODERATE_BLUE + allow_custom = FALSE /obj/machinery/vending/cola/black icon_state = "cola_black" light_mask = "cola-light-mask" + allow_custom = FALSE /obj/machinery/vending/cola/red icon_state = "red_cola" @@ -93,6 +96,7 @@ product_slogans = "Cola in space!" light_mask = "red_cola-light-mask" light_color = COLOR_DARK_RED + allow_custom = FALSE /obj/machinery/vending/cola/space_up icon_state = "space_up" @@ -101,6 +105,7 @@ product_slogans = "Space-up! Like a hull breach in your mouth." light_mask = "space_up-light-mask" light_color = COLOR_DARK_MODERATE_LIME_GREEN + allow_custom = FALSE /obj/machinery/vending/cola/starkist icon_state = "starkist" @@ -110,12 +115,14 @@ panel_type = "panel7" light_mask = "starkist-light-mask" light_color = COLOR_LIGHT_ORANGE + allow_custom = FALSE /obj/machinery/vending/cola/sodie icon_state = "soda" panel_type = "panel7" light_mask = "soda-light-mask" light_color = COLOR_WHITE + allow_custom = FALSE /obj/machinery/vending/cola/pwr_game icon_state = "pwr_game" @@ -124,6 +131,7 @@ product_slogans = "The POWER that gamers crave! PWR GAME!" light_mask = "pwr_game-light-mask" light_color = COLOR_STRONG_VIOLET + allow_custom = FALSE /obj/machinery/vending/cola/shamblers name = "\improper Shambler's Vendor" @@ -145,6 +153,7 @@ product_ads = "Refreshing!;Thirsty for DNA? Satiate your craving!;Over 1 trillion souls drank!;Made with real DNA!;The hivemind demands your thirst!;Drink up!;Absorb your thirst." light_mask = "shamblers-light-mask" light_color = COLOR_MOSTLY_PURE_PINK + allow_custom = FALSE /obj/machinery/vending/cola/shamblers/Initialize(mapload) . = ..() diff --git a/code/modules/vending/custom.dm b/code/modules/vending/custom.dm new file mode 100644 index 000000000000..023ce8e0da1a --- /dev/null +++ b/code/modules/vending/custom.dm @@ -0,0 +1,361 @@ +///This unique key decides how items are stacked on the UI. We separate them based on name,price & type +#define ITEM_HASH(item)("[item.name][item.custom_price][item.type]") + +/obj/machinery/vending/custom + name = "Custom Vendor" + icon_state = "custom" + icon_deny = "custom-deny" + max_integrity = 400 + payment_department = NO_FREEBIES + light_mask = "custom-light-mask" + panel_type = "panel20" + allow_custom = TRUE + refill_canister = /obj/item/vending_refill/custom + fish_source_path = /datum/fish_source/vending/custom + + /// max number of items that the custom vendor can hold + var/max_loaded_items = 20 + /// where the money is sent + VAR_PRIVATE/datum/bank_account/linked_account + /// Base64 cache of custom icons. + VAR_PRIVATE/static/list/base64_cache = list() + +/obj/machinery/vending/custom/on_deconstruction(disassembled) + var/obj/item/vending_refill/custom/installed_refill = locate() in component_parts + + if(linked_account) + //we delete the canister so players don't resell our products as their own + component_parts -= installed_refill + qdel(installed_refill) + + //self destruct protocol for unauthorized destruction + explosion(get_turf(src), devastation_range = -1, light_impact_range = 3) + + return + + //copy product hash keys + installed_refill.products.Cut() + installed_refill.products += products + + //move products to canister + for(var/obj/item/stored_item in contents - component_parts) + stored_item.forceMove(installed_refill) + +/obj/machinery/vending/custom/add_context(atom/source, list/context, obj/item/held_item, mob/user) + if(panel_open && istype(held_item, refill_canister)) + context[SCREENTIP_CONTEXT_LMB] = "Restock vending machine" + return CONTEXTUAL_SCREENTIP_SET + + if(isliving(user) && istype(held_item, /obj/item/card/id)) + var/obj/item/card/id/card_used = held_item + if(card_used?.registered_account) + if(!linked_account) + context[SCREENTIP_CONTEXT_LMB] = "Link account" + return ITEM_INTERACT_SUCCESS + else if(linked_account == card_used.registered_account) + context[SCREENTIP_CONTEXT_LMB] = "Unlink account" + return ITEM_INTERACT_SUCCESS + + return ..() + +/obj/machinery/vending/custom/examine(mob/user) + . = ..() + if(linked_account) + . += span_warning("Machine is ID locked. Be sure to unlink before deconstructing the machine.") + +/obj/machinery/vending/custom/Exited(obj/item/gone, direction) + . = ..() + + var/hash_key = ITEM_HASH(gone) + if(products[hash_key]) + var/new_amount = products[hash_key] - 1 + if(!new_amount) + products -= hash_key + update_static_data_for_all_viewers() + else + products[hash_key] = new_amount + +///Returns the number of products loaded in this machine +/obj/machinery/vending/custom/proc/loaded_items() + PRIVATE_PROC(TRUE) + SHOULD_BE_PURE(TRUE) + + . = 0 + for(var/product_hash in products) + . += products[product_hash] + +/obj/machinery/vending/custom/canLoadItem(obj/item/loaded_item, mob/user, send_message = TRUE) + if(loaded_item.flags_1 & HOLOGRAM_1) + if(send_message) + speak("This vendor cannot accept nonexistent items.") + return FALSE + if(isstack(loaded_item)) + if(send_message) + speak("Loose items may cause problems, try to use it inside wrapping paper.") + return FALSE + if(!loaded_item.custom_price) + if(send_message) + speak("Item needs to have a custom price set.") + return FALSE + return TRUE + +/obj/machinery/vending/custom/loadingAttempt(obj/item/inserted_item, mob/user) + if(!canLoadItem(inserted_item, user)) + return FALSE + + if(loaded_items() == max_loaded_items) + speak("There are too many items in stock.") + return FALSE + + if(!user.transferItemToLoc(inserted_item, src)) + to_chat(user, span_warning("[inserted_item] is stuck in your hand!")) + return FALSE + + //the hash key decides how items stack in the UI. We diffrentiate them based on name & price + var/hash_key = ITEM_HASH(inserted_item) + if(products[hash_key]) + products[hash_key]++ + else + products[hash_key] = 1 + update_static_data_for_all_viewers() + return TRUE + +/obj/machinery/vending/custom/RefreshParts() + SHOULD_CALL_PARENT(FALSE) + + restock(locate(refill_canister) in component_parts) + +/obj/machinery/vending/custom/restock(obj/item/vending_refill/canister) + . = 0 + if(!canister.products?.len) + if(!canister.products) + canister.products = list() + return + + var/update_static_data = FALSE + var/available_load = max_loaded_items - loaded_items() + for(var/product_hash in canister.products) + //get available space + var/load_count = min(canister.products[product_hash], available_load) + if(!load_count) + break + //update canister record + canister.products[product_hash] -= load_count + if(!canister.products[product_hash]) + canister.products -= product_hash + //update vendor record + products[product_hash] += load_count + //reduce from available space + available_load -= load_count + + //update product + for(var/obj/item/product in canister) + if(!load_count) + break + if(ITEM_HASH(product) == product_hash) + . += 1 + product.forceMove(src) + load_count-- + + if(update_static_data) + update_static_data_for_all_viewers() + + +/obj/machinery/vending/custom/post_restock(mob/living/user, restocked) + if(!restocked) + to_chat(user, span_warning("There's nothing to restock!")) + return + + to_chat(user, span_notice("You loaded [restocked] items in [src]")) + +/obj/machinery/vending/custom/crowbar_act(mob/living/user, obj/item/attack_item) + if(linked_account) + visible_message( + span_warning("Security warning"), + span_warning("Unauthorized deconstruction of vending machine is prohibited. Please read the warning alert") + ) + if(tgui_alert(user, "Vending machine is ID locked.\ + Deconstruction will result in an catrostrophic self destruct.\ + If you are the owner of this machine please unlink your account with an ID swipe before proceeding.\ + Still proceed?", + "Vandalism protection protocol", + list("Yes", "No")) == "No") + return ITEM_INTERACT_FAILURE + + return ..() + +/obj/machinery/vending/custom/compartmentLoadAccessCheck(mob/user) + . = FALSE + if(!isliving(user)) + return FALSE + var/mob/living/living_user = user + var/obj/item/card/id/id_card = living_user.get_idcard(FALSE) + if(id_card?.registered_account && id_card.registered_account == linked_account) + return TRUE + +/obj/machinery/vending/custom/item_interaction(mob/living/user, obj/item/attack_item, list/modifiers) + if(isliving(user) && istype(attack_item, /obj/item/card/id)) + var/obj/item/card/id/card_used = attack_item + if(card_used?.registered_account) + if(!linked_account) + linked_account = card_used.registered_account + speak("\The [src] has been linked to [card_used].") + else if(linked_account == card_used.registered_account) + linked_account = null + speak("account unlinked.") + else + to_chat(user, "verification failed. unlinking process has been cancelled.") + return ITEM_INTERACT_SUCCESS + + if(!compartmentLoadAccessCheck(user) || !IS_WRITING_UTENSIL(attack_item)) + return ..() + + . ITEM_INTERACT_FAILURE + var/new_name = reject_bad_name(tgui_input_text(user, "Set name", "Name", name, max_length = 20), allow_numbers = TRUE, strict = TRUE, cap_after_symbols = FALSE) + if(!user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) + return + if (new_name) + name = new_name + var/new_desc = reject_bad_text(tgui_input_text(user, "Set description", "Description", desc, max_length = 60)) + if(!user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) + return + if (new_desc) + desc = new_desc + var/new_slogan = reject_bad_text(tgui_input_text(user, "Set slogan", "Slogan", "Epic", max_length = 60)) + if(!user.can_perform_action(src, FORBID_TELEKINESIS_REACH)) + return + if (new_slogan) + slogan_list += new_slogan + last_slogan = world.time + rand(0, slogan_delay) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/vending/custom/collect_records_for_static_data(list/records, list/categories, premium) + . = list() + if(records != product_records) //no coin or hidden stuff only product records + return + + categories["Products"] = list("icon" = "cart-shopping") + for(var/stocked_hash in products) + var/base64 = "" + var/obj/item/target = null + for(var/obj/item/stored_item in contents - component_parts) + if(ITEM_HASH(stored_item) == stocked_hash) + base64 = base64_cache[stocked_hash] + if(!base64) //generate an icon of the item to use in UI + base64 = icon2base64(getFlatIcon(stored_item, no_anim = TRUE)) + base64_cache[stocked_hash] = base64 + target = stored_item + break + + . += list(list( + path = stocked_hash, + name = target.name, + price = target.custom_price, + category = "Products", + ref = stocked_hash, + colorable = FALSE, + image = base64 + )) + + +/obj/machinery/vending/custom/ui_interact(mob/user, datum/tgui/ui) + if(!linked_account) + balloon_alert(user, "no registered owner!") + return FALSE + return ..() + +/obj/machinery/vending/custom/ui_data(mob/user) + . = ..() + + var/is_owner = compartmentLoadAccessCheck(user) + + .["stock"] = list() + for(var/stocked_hash in products) + .["stock"][stocked_hash] = list( + amount = products[stocked_hash], + free = is_owner + ) + +/obj/machinery/vending/custom/vend(list/params, mob/living/user, list/greyscale_colors) + . = FALSE + if(!isliving(user)) + return + var/obj/item/dispensed_item = params["ref"] + for(var/obj/item/product in contents - component_parts) + if(ITEM_HASH(product) == dispensed_item) + dispensed_item = product + break + if(QDELETED(dispensed_item)) + return + + var/obj/item/card/id/id_card = user.get_idcard(TRUE) + if(!id_card || !id_card.registered_account || !id_card.registered_account.account_job) + balloon_alert(user, "no card found!") + flick(icon_deny, src) + return + + /// Charges the user if its not the owner + var/datum/bank_account/payee = id_card.registered_account + if(!compartmentLoadAccessCheck(user)) + if(!payee.has_money(dispensed_item.custom_price)) + balloon_alert(user, "insufficient funds!") + return + /// Make the transaction + payee.adjust_money(-dispensed_item.custom_price, , "Vending: [dispensed_item]") + linked_account.adjust_money(dispensed_item.custom_price, "Vending: [dispensed_item] Bought") + linked_account.bank_card_talk("[payee.account_holder] made a [dispensed_item.custom_price] \ + cr purchase at your custom vendor.") + /// Log the transaction + SSblackbox.record_feedback("amount", "vending_spent", dispensed_item.custom_price) + log_econ("[dispensed_item.custom_price] credits were spent on [src] buying a \ + [dispensed_item] by [payee.account_holder], owned by [linked_account.account_holder].") + /// Make an alert + var/ref = REF(user) + if(last_shopper != ref || purchase_message_cooldown < world.time) + speak("Thank you for your patronage [user]!") + purchase_message_cooldown = world.time + 5 SECONDS + last_shopper = ref + + /// Remove the item + use_energy(active_power_usage) + try_put_in_hand(dispensed_item, user) + return TRUE + +/obj/item/vending_refill/custom + machine_name = "Custom Vendor" + icon_state = "refill_custom" + custom_premium_price = PAYCHECK_CREW + +/obj/item/vending_refill/custom/get_part_rating() + . = 0 + for(var/key in products) + . += products[key] + +/obj/machinery/vending/custom/unbreakable + name = "Indestructible Vendor" + resistance_flags = INDESTRUCTIBLE + allow_custom = FALSE + +/obj/machinery/vending/custom/greed //name and like decided by the spawn + icon_state = "greed" + icon_deny = "greed-deny" + panel_type = "panel4" + max_integrity = 700 + max_loaded_items = 40 + light_mask = "greed-light-mask" + allow_custom = FALSE + custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT * 5) + +/obj/machinery/vending/custom/greed/Initialize(mapload) + . = ..() + //starts in a state where you can move it + set_anchored(FALSE) + set_panel_open(TRUE) + //and references the deity + name = "[GLOB.deity]'s Consecrated Vendor" + desc = "A vending machine created by [GLOB.deity]." + slogan_list = list("[GLOB.deity] says: It's your divine right to buy!") + add_filter("vending_outline", 9, list("type" = "outline", "color" = COLOR_VERY_SOFT_YELLOW)) + add_filter("vending_rays", 10, list("type" = "rays", "size" = 35, "color" = COLOR_VIVID_YELLOW)) + +#undef ITEM_HASH diff --git a/code/modules/vending/cytopro.dm b/code/modules/vending/cytopro.dm index ce351be7769d..c27b9e537b21 100644 --- a/code/modules/vending/cytopro.dm +++ b/code/modules/vending/cytopro.dm @@ -29,6 +29,7 @@ default_price = PAYCHECK_CREW * 1 extra_price = PAYCHECK_COMMAND * 0.5 payment_department = ACCOUNT_SCI + allow_custom = TRUE /obj/item/vending_refill/cytopro machine_name = "CytoPro" diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index c37750a2d3d8..648d5762f9ea 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -69,6 +69,7 @@ extra_price = PAYCHECK_CREW * 2.4 payment_department = ACCOUNT_SRV light_mask = "dinnerware-light-mask" + allow_custom = TRUE /obj/item/vending_refill/dinnerware machine_name = "Plasteel Chef's Dinnerware Vendor" diff --git a/code/modules/vending/engineering.dm b/code/modules/vending/engineering.dm index f360b89a07fa..9b4999161df2 100644 --- a/code/modules/vending/engineering.dm +++ b/code/modules/vending/engineering.dm @@ -35,6 +35,7 @@ extra_price = PAYCHECK_COMMAND * 1.5 payment_department = ACCOUNT_ENG light_mask = "engi-light-mask" + allow_custom = TRUE /obj/item/vending_refill/engineering machine_name = "Robco Tool Maker" diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index 13e30e1783f9..256ea76870f9 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -32,6 +32,7 @@ extra_price = PAYCHECK_COMMAND * 1.5 payment_department = ACCOUNT_ENG light_mask = "engivend-light-mask" + allow_custom = TRUE /obj/item/vending_refill/engivend machine_name = "Engi-Vend" diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 1b5722dbc126..a5b38b8fa0df 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -115,6 +115,7 @@ extra_price = PAYCHECK_COMMAND * 1.25 payment_department = ACCOUNT_SRV light_mask = "games-light-mask" + allow_custom = TRUE /obj/item/vending_refill/games machine_name = "\improper Good Clean Fun" diff --git a/code/modules/vending/medical.dm b/code/modules/vending/medical.dm index 78e260431155..d8fadb9130f3 100644 --- a/code/modules/vending/medical.dm +++ b/code/modules/vending/medical.dm @@ -39,6 +39,7 @@ extra_price = PAYCHECK_COMMAND payment_department = ACCOUNT_MED light_mask = "med-light-mask" + allow_custom = TRUE /obj/item/vending_refill/medical machine_name = "NanoMed Plus" @@ -47,6 +48,7 @@ /obj/machinery/vending/medical/syndicate name = "\improper SyndiMed Plus" initial_language_holder = /datum/language_holder/syndicate + allow_custom = FALSE /obj/machinery/vending/medical/infested_frigate products = list( @@ -64,6 +66,8 @@ /obj/item/cane/white = 2, /obj/item/clothing/glasses/eyepatch/medical = 2, ) + allow_custom = FALSE + //Created out of a necessity to get these dumb chems out of the medical tools vendor. /obj/machinery/vending/drugs name = "\improper NanoDrug Plus" @@ -102,6 +106,7 @@ extra_price = 100 payment_department = ACCOUNT_MED refill_canister = /obj/item/vending_refill/drugs + allow_custom = TRUE /obj/item/vending_refill/drugs machine_name = "NanoDrug Plus" diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index d853010d15be..53027e5b7df5 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -26,6 +26,10 @@ payment_department = ACCOUNT_MED tiltable = FALSE light_mask = "wallmed-light-mask" + allow_custom = TRUE + +/obj/machinery/vending/wallmed/directional + allow_custom = FALSE MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/vending/wallmed, 32) diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index 130a0921a43a..1be33c56ca2c 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -105,6 +105,7 @@ default_price = PAYCHECK_LOWER extra_price = PAYCHECK_CREW payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/hydroseeds machine_name = "MegaSeed Servitor" diff --git a/code/modules/vending/modularpc.dm b/code/modules/vending/modularpc.dm index 415329366c7d..0e894147e220 100644 --- a/code/modules/vending/modularpc.dm +++ b/code/modules/vending/modularpc.dm @@ -19,6 +19,7 @@ default_price = PAYCHECK_CREW extra_price = PAYCHECK_COMMAND payment_department = ACCOUNT_SCI + allow_custom = TRUE /obj/item/vending_refill/modularpc machine_name = "Deluxe Silicate Selections" diff --git a/code/modules/vending/nutrimax.dm b/code/modules/vending/nutrimax.dm index d7b3a0aaa5cd..7438dedcfc3b 100644 --- a/code/modules/vending/nutrimax.dm +++ b/code/modules/vending/nutrimax.dm @@ -28,6 +28,7 @@ default_price = PAYCHECK_CREW * 0.8 extra_price = PAYCHECK_COMMAND * 0.8 payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/hydronutrients machine_name = "NutriMax" diff --git a/code/modules/vending/robotics.dm b/code/modules/vending/robotics.dm index 849640419538..7e813d78e08b 100644 --- a/code/modules/vending/robotics.dm +++ b/code/modules/vending/robotics.dm @@ -26,6 +26,7 @@ refill_canister = /obj/item/vending_refill/robotics default_price = PAYCHECK_COMMAND payment_department = ACCOUNT_SCI + allow_custom = TRUE /obj/item/vending_refill/robotics machine_name = "Robotech Deluxe" diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index bf0b9dbee386..5004a8749d58 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -37,6 +37,7 @@ default_price = PAYCHECK_CREW extra_price = PAYCHECK_COMMAND * 1.5 payment_department = ACCOUNT_SEC + allow_custom = TRUE /obj/machinery/vending/security/pre_throw(obj/item/thrown_item) if(isgrenade(thrown_item)) diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index 1e81679135b3..95c932b89999 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -45,18 +45,23 @@ default_price = PAYCHECK_CREW * 0.6 extra_price = PAYCHECK_CREW payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/snack machine_name = "Getmore Chocolate Corp" /obj/machinery/vending/snack/blue icon_state = "snackblue" + allow_custom = FALSE /obj/machinery/vending/snack/orange icon_state = "snackorange" + allow_custom = FALSE /obj/machinery/vending/snack/green icon_state = "snackgreen" + allow_custom = FALSE /obj/machinery/vending/snack/teal icon_state = "snackteal" + allow_custom = FALSE diff --git a/code/modules/vending/sovietsoda.dm b/code/modules/vending/sovietsoda.dm index aaf631c10555..5031a68ad64a 100644 --- a/code/modules/vending/sovietsoda.dm +++ b/code/modules/vending/sovietsoda.dm @@ -18,6 +18,7 @@ payment_department = NO_FREEBIES light_color = COLOR_PALE_ORANGE initial_language_holder = /datum/language_holder/spinwarder + allow_custom = TRUE /obj/item/vending_refill/sovietsoda machine_name = "BODA" diff --git a/code/modules/vending/subtype.dm b/code/modules/vending/subtype.dm index 360eb46defd3..e9633c56cb93 100644 --- a/code/modules/vending/subtype.dm +++ b/code/modules/vending/subtype.dm @@ -15,19 +15,18 @@ var/type_to_vend = /obj/item/food/grown/citrus /obj/machinery/vending/subtype_vendor/Initialize(mapload, type_to_vend) - . = ..() if(type_to_vend) src.type_to_vend = type_to_vend - load_subtypes() - -/obj/machinery/vending/subtype_vendor/proc/load_subtypes() - products = list() - product_records = list() + return ..() +///Adds the subtype to the product list +/obj/machinery/vending/subtype_vendor/RefreshParts() + products.Cut() for(var/type in typesof(type_to_vend)) LAZYADDASSOC(products, type, 50) - build_inventories() + //no refill canister so we fill the records with their max amounts directly + build_inventories(start_empty = FALSE) /obj/machinery/vending/subtype_vendor/attack_hand_secondary(mob/user, list/modifiers) . = ..() @@ -48,5 +47,5 @@ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN type_to_vend = type_to_vend_now - load_subtypes() + RefreshParts() return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/vending/sustenance.dm b/code/modules/vending/sustenance.dm index 2be9e684dfaa..83a0db0b8dd1 100644 --- a/code/modules/vending/sustenance.dm +++ b/code/modules/vending/sustenance.dm @@ -25,6 +25,19 @@ default_price = PAYCHECK_LOWER extra_price = PAYCHECK_LOWER * 0.6 payment_department = NO_FREEBIES + allow_custom = TRUE + +/obj/machinery/vending/sustenance/interact(mob/living/living_user) + if(!isliving(living_user)) + return + if(!istype(living_user.get_idcard(TRUE), /obj/item/card/id/advanced/prisoner)) + if(!req_access) + speak("No valid prisoner account found. Vending is not permitted.") + return + if(!allowed(living_user)) + speak("No valid permissions. Vending is not permitted.") + return + return ..() /obj/item/vending_refill/sustenance machine_name = "Sustenance Vendor" @@ -39,35 +52,12 @@ all_products_free = FALSE displayed_currency_icon = "digging" displayed_currency_name = " LP" + allow_custom = FALSE -/obj/machinery/vending/sustenance/interact(mob/user) - if(!isliving(user)) - return ..() - var/mob/living/living_user = user - if(!is_operational) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("No valid prisoner account found. Vending is not permitted.") - to_chat(user, span_warning("Не обнаружена действующая карта заключённого. Покупка не может быть произведена")) - //MASSMETA EDIT END - return - if(!istype(living_user.get_idcard(TRUE), /obj/item/card/id/advanced/prisoner)) - if(!req_access) - speak("No valid prisoner account found. Vending is not permitted.") - return - if(!allowed(user)) - speak("No valid permissions. Vending is not permitted.") - return - return ..() - -/obj/machinery/vending/sustenance/labor_camp/proceed_payment(obj/item/card/id/paying_id_card, mob/living/mob_paying, datum/data/vending_product/product_to_vend, price_to_use) - if(!istype(paying_id_card, /obj/item/card/id/advanced/prisoner)) - //MASSMETA EDIT BEGIN (ru_vendors) - //speak("I don't take bribes! Pay with labor points!") - - speak("Я не беру взяток! Плати каторжными очками!") - //MASSMETA EDIT END +/obj/machinery/vending/sustenance/labor_camp/proceed_payment(obj/item/card/id/advanced/prisoner/paying_scum_id, mob/living/mob_paying, datum/data/vending_product/product_to_vend, price_to_use) + if(!istype(paying_scum_id)) + speak("Не обнаружена действующая карта заключённого. Плати каторжными очками!") return FALSE - var/obj/item/card/id/advanced/prisoner/paying_scum_id = paying_id_card if(LAZYLEN(product_to_vend.returned_products)) price_to_use = 0 //returned items are free if(price_to_use && !(paying_scum_id.points >= price_to_use)) //not enough good prisoner points @@ -77,7 +67,6 @@ speak("Недостаточно очков для покупки [product_to_vend.name].") //MASSMETA EDIT END flick(icon_deny, src) - vend_ready = TRUE return FALSE paying_scum_id.points -= price_to_use diff --git a/code/modules/vending/syndichem.dm b/code/modules/vending/syndichem.dm new file mode 100644 index 000000000000..896198f65a65 --- /dev/null +++ b/code/modules/vending/syndichem.dm @@ -0,0 +1,21 @@ +/obj/machinery/vending/syndichem + name = "\improper SyndiChem" + desc = "A vending machine full of grenades and grenade accessories. Sponsored by Donk Co." + products = list( + /obj/item/stack/cable_coil = 5, + /obj/item/assembly/igniter = 20, + /obj/item/assembly/prox_sensor = 5, + /obj/item/assembly/signaler = 5, + /obj/item/assembly/timer = 5, + /obj/item/assembly/voice = 5, + /obj/item/assembly/health = 5, + /obj/item/assembly/infra = 5, + /obj/item/grenade/chem_grenade = 5, + /obj/item/grenade/chem_grenade/large = 5, + /obj/item/grenade/chem_grenade/pyro = 5, + /obj/item/grenade/chem_grenade/cryo = 5, + /obj/item/grenade/chem_grenade/adv_release = 5, + /obj/item/reagent_containers/cup/glass/bottle/holywater = 1 + ) + product_slogans = "It's not pyromania if you're getting paid!;You smell that? Plasma, son. Nothing else in the world smells like that.;I love the smell of Plasma in the morning." + resistance_flags = FIRE_PROOF diff --git a/code/modules/vending/vendor/_vending.dm b/code/modules/vending/vendor/_vending.dm new file mode 100644 index 000000000000..eec128f0f32c --- /dev/null +++ b/code/modules/vending/vendor/_vending.dm @@ -0,0 +1,478 @@ +///Maximum credits dump threshold +#define CREDITS_DUMP_THRESHOLD 50 +/** + * # vending record datum + * A datum that represents a product that is vendable + */ +/datum/data/vending_product + name = "generic" + ///Typepath of the product that is created when this record "sells" + var/product_path = null + ///How many of this product we currently have + var/amount = 0 + ///How many we can store at maximum + var/max_amount = 0 + ///The price of the item + var/price + ///Whether spessmen with an ID with an age below AGE_MINOR (20 by default) can buy this item + var/age_restricted = FALSE + ///Whether the product can be recolored by the GAGS system + var/colorable + /// The category the product was in, if any. + /// Sourced directly from product_categories. + var/category + ///List of items that have been returned to the vending machine. + var/list/returned_products + +/datum/data/vending_product/Destroy(force) + returned_products = null + return ..() + +/** + * # vending machines + * + * Captalism in the year 2525, everything in a vending machine, even love + */ +/obj/machinery/vending + name = "\improper Vendomat" + desc = "A generic vending machine." + icon = 'icons/obj/machines/vending.dmi' + icon_state = "generic" + layer = BELOW_OBJ_LAYER + density = TRUE + verb_say = "beeps" + verb_ask = "beeps" + verb_exclaim = "beeps" + max_integrity = 300 + integrity_failure = 0.33 + armor_type = /datum/armor/machinery_vending + circuit = /obj/item/circuitboard/machine/vendor + payment_department = ACCOUNT_SRV + light_power = 0.7 + light_range = MINIMUM_USEFUL_LIGHT_RANGE + voice_filter = "alimiter=0.9,acompressor=threshold=0.2:ratio=20:attack=10:release=50:makeup=2,highpass=f=1000" + + ///Next world time to send a purchase message + var/purchase_message_cooldown + ///The ref of the last mob to shop with us + var/last_shopper + ///Whether the vendor is tilted or not + var/tilted = FALSE + /// If tilted, this variable should always be the rotation that was applied when we were tilted. Stored for the purposes of unapplying it. + var/tilted_rotation = 0 + ///Whether this vendor can be tilted over or not + var/tiltable = TRUE + ///Damage this vendor does when tilting onto an atom + var/squish_damage = 75 + /// The chance, in percent, of this vendor performing a critical hit on anything it crushes via [tilt]. + var/crit_chance = 15 + ///List of mobs stuck under the vendor + var/list/pinned_mobs = list() + ///Icon for the maintenance panel overlay + var/panel_type = "panel1" + ///Whether this vendor can be selected when building a custom vending machine + var/allow_custom = FALSE + + /** + * List of products this machine sells + * + * form should be list(/type/path = amount, /type/path2 = amount2) + */ + var/list/products = list() + + /** + * List of products this machine sells, categorized. + * Can only be used as an alternative to `products`, not alongside it. + * + * Form should be list( + * "name" = "Category Name", + * "icon" = "UI Icon (Font Awesome or tgfont)", + * "products" = list(/type/path = amount, ...), + * ) + */ + var/list/product_categories = null + + /** + * List of products this machine sells when you hack it + * + * form should be list(/type/path = amount, /type/path2 = amount2) + */ + var/list/contraband = list() + + /** + * List of premium products this machine sells + * + * form should be list(/type/path = amount, /type/path2 = amount2) + */ + var/list/premium = list() + + ///String of slogans separated by semicolons, optional + var/product_slogans = "" + ///String of small ad messages in the vending screen - random chance + var/product_ads = "" + + ///List of standard product records + var/list/datum/data/vending_product/product_records = list() + ///List of contraband product records + var/list/datum/data/vending_product/hidden_records = list() + ///List of premium product records + var/list/datum/data/vending_product/coin_records = list() + ///List of slogans to scream at potential customers; built upon Iniitialize() of the vendor from product_slogans + var/list/slogan_list = list() + ///List of ads built from product_ads upon Iniitialize() + var/list/ad_list = list() + ///Message sent post vend (Thank you for shopping!) + var/vend_reply + ///Last world tick we sent a vent reply + var/last_reply = 0 + ///Last world tick we sent a slogan message out + var/last_slogan = 0 + ///How many ticks until we can send another + var/slogan_delay = 10 MINUTES + ///Icon when vending an item to the user + var/icon_vend + ///Icon to flash when user is denied a vend + var/icon_deny + ///World ticks the machine is electified for + var/seconds_electrified = MACHINE_NOT_ELECTRIFIED + ///When this is TRUE, we fire items at customers! We're broken! + var/shoot_inventory = FALSE + ///How likely this is to happen (prob 100) per second + var/shoot_inventory_chance = 1 + //Stop spouting those godawful pitches! + var/shut_up = FALSE + ///can we access the hidden inventory? + var/extended_inventory = FALSE + ///Are we checking the users ID + var/scan_id = TRUE + ///Default price of items if not overridden + var/default_price = 25 + ///Default price of premium items if not overridden + var/extra_price = 50 + ///fontawesome icon name to use in to display the user's balance in the vendor UI + var/displayed_currency_icon = "coins" + ///String of the used currency to display in the vendor UI + var/displayed_currency_name = " cr" + ///Whether our age check is currently functional + var/age_restrictions = TRUE + /// How many credits does this vending machine have? 20% of all sales go to this pool, and are given freely when the machine is restocked, or successfully tilted. Lost on deconstruction. + var/credits_contained = 0 + /** + * Is this item on station or not + * + * if it doesn't originate from off-station during mapload, all_products_free gets automatically set to TRUE if it was unset previously. + * if it's off-station during mapload, it's also safe from the brand intelligence event + */ + var/onstation = TRUE + /** + * DO NOT APPLY THIS GLOBALLY. For mapping var edits only. + * A variable to change on a per instance basis that allows the instance to avoid having onstation set for them during mapload. + * Setting this to TRUE means that the vending machine is treated as if it were still onstation if it spawns off-station during mapload. + * Useful to specify an off-station machine that will be affected by machine-brand intelligence for whatever reason. + */ + var/onstation_override = FALSE + /** + * If this is set to TRUE, all products sold by the vending machine are free (cost nothing). + * If unset, this will get automatically set to TRUE during init if the machine originates from off-station during mapload. + * Defaults to null, set it to TRUE or FALSE explicitly on a per-machine basis if you want to force it to be a certain value. + */ + var/all_products_free + + //The type of refill canisters used by this machine. + var/obj/item/vending_refill/refill_canister = null + + ///Name of lighting mask for the vending machine + var/light_mask + + //the path of the fish_source datum to use for the fishing_spot component + var/fish_source_path = /datum/fish_source/vending + +/datum/armor/machinery_vending + melee = 20 + fire = 50 + acid = 70 + +/** + * Initialize the vending machine + * + * Builds the vending machine inventory, sets up slogans and other such misc work + * + * This also sets the onstation var to: + * * FALSE - if the machine was maploaded on a zlevel that doesn't pass the is_station_level check + * * TRUE - all other cases + */ +/obj/machinery/vending/Initialize(mapload) + //means we produce products with fixed amounts + if(!refill_canister) + circuit = null + RefreshParts() + + . = ..() + + set_wires(new /datum/wires/vending(src)) + + if(SStts.tts_enabled) + var/static/vendor_voice_by_type = list() + if(!vendor_voice_by_type[type]) + vendor_voice_by_type[type] = pick(SStts.available_speakers) + voice = vendor_voice_by_type[type] + + slogan_list = splittext(product_slogans, ";") + ad_list = splittext(product_ads, ";") + // So not all machines speak at the exact same time. + // The first time this machine says something will be at slogantime + this random value, + // so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated. + last_slogan = world.time + rand(0, slogan_delay) + power_change() + + if(mapload) //check if it was initially created off station during mapload. + if(!is_station_level(z)) + if(!onstation_override) + onstation = FALSE + if(isnull(all_products_free)) // Only auto-set the free products var if we haven't explicitly assigned a value to it yet. + all_products_free = TRUE + if(circuit) + circuit.all_products_free = all_products_free //sync up the circuit so the pricing schema is carried over if it's reconstructed. + + else if(circuit) + all_products_free = circuit.all_products_free //if it was constructed outside mapload, sync the vendor up with the circuit's var so you can't bypass price requirements by moving / reconstructing it off station. + if(!all_products_free) + AddComponent(/datum/component/payment, 0, SSeconomy.get_dep_account(payment_department), PAYMENT_VENDING) + register_context() + + if(fish_source_path) + AddComponent(/datum/component/fishing_spot, fish_source_path) + +/obj/machinery/vending/atom_break(damage_flag) + . = ..() + if(!.) + return + + var/dump_amount = 0 + var/found_anything = TRUE + while (found_anything) + found_anything = FALSE + for(var/datum/data/vending_product/record as anything in shuffle(product_records)) + //first dump any of the items that have been returned, in case they contain the nuke disk or something + for(var/i in 1 to LAZYLEN(record.returned_products)) + var/obj/item/returned_obj_to_dump = dispense(record, get_turf(src), dispense_returned = TRUE) + step(returned_obj_to_dump, pick(GLOB.alldirs)) + + if(record.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = record.product_path + if(!dump_path) + continue + // busting open a vendor will destroy some of the contents + if(found_anything && prob(80)) + record.amount-- + continue + + var/obj/obj_to_dump = dispense(record, loc) + step(obj_to_dump, pick(GLOB.alldirs)) + found_anything = TRUE + dump_amount++ + if (dump_amount >= 16) + return + +/obj/machinery/vending/on_deconstruction(disassembled) + var/obj/item/vending_refill/installed_refill = locate() in component_parts + if(!installed_refill) + return + + var/list/datum/data/vending_product/record_list + var/list/canister_list + for(var/i in 1 to 3) + switch(i) + if (1) + record_list = product_records + canister_list = installed_refill.products + if (2) + record_list = hidden_records + canister_list = installed_refill.contraband + else + record_list = coin_records + canister_list = installed_refill.premium + + canister_list.Cut() + for(var/datum/data/vending_product/record as anything in record_list) + var/stock = record.amount - LAZYLEN(record.returned_products) + if(stock) + canister_list[record.product_path] = stock + +/obj/machinery/vending/Destroy() + QDEL_LIST(product_records) + QDEL_LIST(hidden_records) + QDEL_LIST(coin_records) + return ..() + +/obj/machinery/vending/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(tilted && !held_item) + context[SCREENTIP_CONTEXT_LMB] = "Right machine" + return CONTEXTUAL_SCREENTIP_SET + + if(held_item?.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "[panel_open ? "Close" : "Open"] Panel" + return CONTEXTUAL_SCREENTIP_SET + + if(panel_open && held_item?.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = anchored ? "Unsecure" : "Secure" + return CONTEXTUAL_SCREENTIP_SET + + if(panel_open && held_item?.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Deconstruct" + return CONTEXTUAL_SCREENTIP_SET + + if(!isnull(held_item) && canLoadItem(held_item, user, send_message = FALSE)) + context[SCREENTIP_CONTEXT_LMB] = "Load item" + return CONTEXTUAL_SCREENTIP_SET + + if(panel_open && istype(held_item, refill_canister)) + context[SCREENTIP_CONTEXT_LMB] = "Restock vending machine[credits_contained ? " and collect credits" : null]" + return CONTEXTUAL_SCREENTIP_SET + +/** + * Returns the total loaded & max amount of items i.e list(total_loaded, total_maximum) in the vending machine based on the product records and premium records + * + * Arguments + * * contraband - should we count contrabrand as well +*/ +/obj/machinery/vending/proc/total_stock(contrabrand = TRUE) + SHOULD_BE_PURE(TRUE) + SHOULD_NOT_OVERRIDE(TRUE) + RETURN_TYPE(/list) + + var/total_loaded = 0 + var/total_max = 0 + var/list/stock = product_records + coin_records + if(contrabrand) + stock += hidden_records + for(var/datum/data/vending_product/record as anything in stock) + total_loaded += record.amount + total_max += record.max_amount + return list(total_loaded, total_max) + +/obj/machinery/vending/examine(mob/user) + . = ..() + if(isnull(refill_canister)) + return // you can add the comment here instead + + . += span_notice("Its maintainence panel can be [EXAMINE_HINT("screwed")] [panel_open ? "closed" : "open"]") + if(panel_open) + . += span_notice("The machine may be [EXAMINE_HINT("pried")] apart.") + + var/list/total_stock = total_stock() + if(total_stock[2]) + if(total_stock[1] < total_stock[2]) + . += span_notice("\The [src] can be restocked with [span_boldnotice("\a [initial(refill_canister.machine_name)] [initial(refill_canister.name)]")] with the panel open.") + else + . += span_notice("\The [src] is fully stocked.") + if(credits_contained < CREDITS_DUMP_THRESHOLD && credits_contained > 0) + . += span_notice("It should have a handfull of credits stored based on the missing items.") + else if (credits_contained > PAYCHECK_CREW) + . += span_notice("It should have at least a full paycheck worth of credits inside!") + +/obj/machinery/vending/update_appearance(updates = ALL) + . = ..() + if(machine_stat & BROKEN) + set_light(0) + return + set_light(powered() ? MINIMUM_USEFUL_LIGHT_RANGE : 0) + +/obj/machinery/vending/update_icon_state() + if(machine_stat & BROKEN) + icon_state = "[initial(icon_state)]-broken" + return ..() + icon_state = "[initial(icon_state)][powered() ? null : "-off"]" + return ..() + +/obj/machinery/vending/update_overlays() + . = ..() + if(panel_open) + . += panel_type + if(light_mask && !(machine_stat & BROKEN) && powered()) + . += emissive_appearance(icon, light_mask, src) + +/obj/machinery/vending/vv_edit_var(vname, vval) + . = ..() + if(vname == NAMEOF(src, all_products_free)) + if (all_products_free) + qdel(GetComponent(/datum/component/payment)) + else + AddComponent(/datum/component/payment, 0, SSeconomy.get_dep_account(payment_department), PAYMENT_VENDING) + update_static_data_for_all_viewers() + +/obj/machinery/vending/emp_act(severity) + . = ..() + var/datum/language_holder/vending_languages = get_language_holder() + var/datum/wires/vending/vending_wires = wires + // if the language wire got pulsed during an EMP, this will make sure the language_iterator is synched correctly + vending_languages.selected_language = vending_languages.spoken_languages[vending_wires.language_iterator] + +/obj/machinery/vending/unbuckle_mob(mob/living/buckled_mob, force = FALSE, can_fall = TRUE) + if(!force) + return + . = ..() + +/obj/machinery/vending/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + obj_flags |= EMAGGED + balloon_alert(user, "product lock disabled") + return TRUE + + +/obj/machinery/vending/power_change() + . = ..() + if(powered()) + START_PROCESSING(SSmachines, src) + +/obj/machinery/vending/process(seconds_per_tick) + if(!is_operational) + return PROCESS_KILL + + if(seconds_electrified > MACHINE_NOT_ELECTRIFIED) + seconds_electrified-- + + //Pitch to the people! Really sell it! + if(last_slogan + slogan_delay <= world.time && slogan_list.len && !shut_up && SPT_PROB(2.5, seconds_per_tick)) + say(pick(slogan_list)) + last_slogan = world.time + + if(shoot_inventory && SPT_PROB(shoot_inventory_chance, seconds_per_tick)) + throw_item() + + +//===============================SPEACH=================================================== +/obj/machinery/vending/can_speak(allow_mimes) + return is_operational && !shut_up && ..() + + +/** + * Speak the given message verbally + * Checks if the machine is powered and the message exists + * + * Arguments: + * * message - the message to speak + */ +/obj/machinery/vending/proc/speak(message) + if(!is_operational) + return + if(!message) + return + + say(message) + +/datum/aas_config_entry/vendomat_age_control + name = "Security Alert: Underaged Substance Abuse" + announcement_lines_map = list( + "Message" = "SECURITY ALERT: Underaged crewmember %PERSON recorded attempting to purchase %PRODUCT in %LOCATION by %VENDOR. Please watch for substance abuse." + ) + vars_and_tooltips_map = list( + "PERSON" = "will be replaced with the name of the crewmember", + "PRODUCT" = "with the product, he attempted to purchase", + "LOCATION" = "with place of purchase", + "VENDOR" = "with the vending machine" + ) +//============================================================================= diff --git a/code/modules/vending/vendor/interaction.dm b/code/modules/vending/vendor/interaction.dm new file mode 100644 index 000000000000..641dc84b111b --- /dev/null +++ b/code/modules/vending/vendor/interaction.dm @@ -0,0 +1,227 @@ +//================================TOOL ACTS============================================== +/obj/machinery/vending/crowbar_act(mob/living/user, obj/item/attack_item) + if(!component_parts) + return ITEM_INTERACT_FAILURE + default_deconstruction_crowbar(attack_item) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/vending/wrench_act(mob/living/user, obj/item/tool) + . = NONE + if(!panel_open) + return ITEM_INTERACT_FAILURE + if(default_unfasten_wrench(user, tool, time = 6 SECONDS)) + unbuckle_all_mobs(TRUE) + return ITEM_INTERACT_SUCCESS + +/obj/machinery/vending/screwdriver_act(mob/living/user, obj/item/attack_item) + if(anchored) + default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item) + return ITEM_INTERACT_SUCCESS + else + to_chat(user, span_warning("You must first secure [src].")) + return ITEM_INTERACT_FAILURE + +/obj/machinery/vending/on_set_panel_open(old_value) + update_appearance(UPDATE_OVERLAYS) + +//=======================================RESTOCKING========================================== +/** + * Is the passed in user allowed to load this vending machines compartments? This only is ran if we are using a /obj/item/storage/bag to load the vending machine, and not a dedicated restocker. + * + * Arguments: + * * user - mob that is doing the loading of the vending machine + */ +/obj/machinery/vending/proc/compartmentLoadAccessCheck(mob/user) + PROTECTED_PROC(TRUE) + + return !req_access || allowed(user) || (obj_flags & EMAGGED) || !scan_id + +/** + * Are we able to load the item passed in + * + * Arguments: + * * loaded_item - the item being loaded + * * user - the user doing the loading + */ +/obj/machinery/vending/proc/canLoadItem(obj/item/loaded_item, mob/user, send_message = TRUE) + PROTECTED_PROC(TRUE) + + if(!length(loaded_item.contents) && (products[loaded_item.type] || premium[loaded_item.type] || contraband[loaded_item.type])) + return TRUE + if(send_message) + to_chat(user, span_warning("[src] does not accept [loaded_item]!")) + return FALSE + + +/** + * Tries to insert the item into the vendor, and depending on whether the product is a part of the vendor's + * stock or not, increments an already present product entry's available amount or creates a new entry. + * arguments: + * inserted_item - the item we're trying to insert + * user - mob who's trying to insert the item + */ +/obj/machinery/vending/proc/loadingAttempt(obj/item/inserted_item, mob/user) + PROTECTED_PROC(TRUE) + + . = TRUE + if(!canLoadItem(inserted_item, user)) + to_chat(user, span_warning("[src] does not accept [inserted_item]!")) + return FALSE + + to_chat(user, span_notice("You insert [inserted_item] into [src]'s input compartment.")) + for(var/datum/data/vending_product/product_datum in product_records + coin_records + hidden_records) + if(inserted_item.type == product_datum.product_path) + if(product_datum.amount == product_datum.max_amount) + to_chat(user, span_warning("no space for any more [product_datum.category || "Products"]!")) + return FALSE + + if(!user.transferItemToLoc(inserted_item, src)) + to_chat(user, span_warning("[inserted_item] is stuck in your hand!")) + return FALSE + + product_datum.amount++ + LAZYADD(product_datum.returned_products, inserted_item) + break + +/obj/machinery/vending/item_interaction(mob/living/user, obj/item/attack_item, list/modifiers) + . = NONE + if(panel_open && is_wire_tool(attack_item)) + wires.interact(user) + return ITEM_INTERACT_SUCCESS + + if(refill_canister && istype(attack_item, refill_canister)) + . = ITEM_INTERACT_FAILURE + if (!panel_open) + to_chat(user, span_warning("You should probably unscrew the service panel first!")) + else if (!is_operational) + to_chat(user, span_warning("[src] does not respond.")) + else + var/obj/item/vending_refill/canister = attack_item + if(canister.get_part_rating() == 0) + to_chat(user, span_warning("[canister] is empty!")) + else + post_restock(user, restock(canister)) + return ITEM_INTERACT_SUCCESS + + if(compartmentLoadAccessCheck(user) && !user.combat_mode) + . = ITEM_INTERACT_FAILURE + if (!is_operational) + to_chat(user, span_warning("[src] does not respond.")) + else if(istype(attack_item, /obj/item/storage/bag)) //trays USUALLY + var/obj/item/storage/storage_item = attack_item + var/loaded = 0 + var/denied_items = 0 + for(var/obj/item/the_item in storage_item.contents) + if(loadingAttempt(the_item, user)) + loaded++ + else + denied_items++ + if(denied_items) + to_chat(user, span_warning("[src] refuses some items!")) + if(loaded) + to_chat(user, span_notice("You insert [loaded] dishes into [src]'s compartment.")) + return ITEM_INTERACT_SUCCESS + else + return loadingAttempt(attack_item, user) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_FAILURE + +/** + * After-effects of refilling a vending machine from a refill canister + * + * This takes the amount of products restocked and gives the user our contained credits if needed, + * sending the user a fitting message. + * + * Arguments: + * * user - the user restocking us + * * restocked - the amount of items we've been refilled with + */ +/obj/machinery/vending/proc/post_restock(mob/living/user, restocked) + PROTECTED_PROC(TRUE) + + if(!restocked) + to_chat(user, span_warning("There's nothing to restock!")) + return + + to_chat(user, span_notice("You loaded [restocked] items in [src][credits_contained > 0 ? ", and are rewarded [credits_contained] credits." : "."]")) + var/datum/bank_account/cargo_account = SSeconomy.get_dep_account(ACCOUNT_CAR) + cargo_account.adjust_money(round(credits_contained * 0.5), "Vending: Restock") + var/obj/item/holochip/payday = new(src, credits_contained) + try_put_in_hand(payday, user) + credits_contained = 0 + +/obj/machinery/vending/exchange_parts(mob/user, obj/item/storage/part_replacer/replacer) + if(!istype(replacer) || !component_parts || !refill_canister) + return FALSE + + var/works_from_distance = istype(replacer, /obj/item/storage/part_replacer/bluespace) + + if(!panel_open || works_from_distance) + to_chat(user, display_parts(user)) + + if(!panel_open && !works_from_distance) + return FALSE + + var/restocked = 0 + for(var/replacer_item in replacer) + if(istype(replacer_item, refill_canister)) + restocked += restock(replacer_item) + post_restock(user, restocked) + if(restocked > 0) + replacer.play_rped_effect() + return TRUE + +//=======================================ATTACKS================================================ +/** + * Dispenses free items from the standard stock. + * + * Arguments: + * freebies - number of free items to vend + */ +/obj/machinery/vending/proc/freebie(freebies) + PRIVATE_PROC(TRUE) + + visible_message(span_notice("[src] yields [freebies > 1 ? "several free goodies" : "a free goody"][credits_contained > 0 ? " and some credits" : ""]!")) + + for(var/i in 1 to freebies) + playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) + for(var/datum/data/vending_product/record in shuffle(product_records)) + if(record.amount <= 0) //Try to use a record that actually has something to dump. + continue + // Always give out new stuff that costs before free returned stuff, because of the risk getting gibbed involved + var/only_returned_left = (record.amount <= LAZYLEN(record.returned_products)) + dispense(record, get_turf(src), silent = TRUE, dispense_returned = only_returned_left) + break + + if(credits_contained > 0) + var/credits_to_remove = min(CREDITS_DUMP_THRESHOLD, round(credits_contained)) + var/obj/item/holochip/holochip = new(loc, credits_to_remove) + playsound(src, 'sound/effects/cashregister.ogg', 40, TRUE) + credits_contained = max(0, credits_contained - credits_to_remove) + SSblackbox.record_feedback("amount", "vending machine looted", holochip.credits) + +/obj/machinery/vending/attacked_by(obj/item/attacking_item, mob/living/user, list/modifiers, list/attack_modifiers) + . = ..() + if(!tiltable || tilted || . <= 0) + return + if(isclosedturf(get_turf(user))) //If the attacker is inside of a wall, immediately fall in the other direction, with no chance for goodies. + tilt(get_turf(get_step(src, REVERSE_DIR(get_dir(src, user))))) + return + + switch(rand(1, 100)) + if(1 to 5) + freebie(3) + if(6 to 15) + freebie(2) + if(16 to 25) + freebie(1) + if(26 to 75) + pass() + if(76 to 100) + tilt(user) + +/obj/machinery/vending/attack_tk_grab(mob/user) + to_chat(user, span_warning("[src] seems to resist your mental grasp!")) + +/obj/machinery/vending/attack_robot_secondary(mob/user, list/modifiers) + . = ..() + if (!Adjacent(user, src)) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/code/modules/vending/vendor/inventory.dm b/code/modules/vending/vendor/inventory.dm new file mode 100644 index 000000000000..0777ea2b160d --- /dev/null +++ b/code/modules/vending/vendor/inventory.dm @@ -0,0 +1,284 @@ +//================================STOCKING IN ITEMS================================= + +/** + * Build the inventory of the vending machine from its product and record lists + * + * This builds up a full set of /datum/data/vending_products from the product list of the vending machine type + * Arguments: + * * productlist - the list of products that need to be converted + * * recordlist - the list containing /datum/data/vending_product datums + * * categories - A list in the format of product_categories to source category from + * * startempty - should we set vending_product record amount from the product list (so it's prefilled at roundstart) + * * premium - Whether the ending products shall have premium or default prices + */ +/obj/machinery/vending/proc/build_inventory(list/productlist, list/recordlist, list/categories, start_empty = FALSE, premium = FALSE) + PRIVATE_PROC(TRUE) + + var/inflation_value = HAS_TRAIT(SSeconomy, TRAIT_MARKET_CRASHING) ? SSeconomy.inflation_value() : 1 + default_price = round(initial(default_price) * inflation_value) + extra_price = round(initial(extra_price) * inflation_value) + + QDEL_LIST(recordlist) + + var/list/product_to_category = list() + for (var/list/category as anything in categories) + for (var/product_key in category["products"]) + product_to_category[product_key] = category + + for(var/typepath in productlist) + var/amount = productlist[typepath] + + var/obj/item/temp = typepath + var/datum/data/vending_product/new_record = new + new_record.name = initial(temp.name) + new_record.product_path = typepath + if(!start_empty) + new_record.amount = amount + new_record.max_amount = amount + + ///Prices of vending machines are all increased uniformly. + var/custom_price = round(initial(temp.custom_price) * inflation_value) + if(!premium) + new_record.price = custom_price || default_price + else + var/premium_custom_price = round(initial(temp.custom_premium_price) * inflation_value) + if(!premium_custom_price && custom_price) //For some ungodly reason, some premium only items only have a custom_price + new_record.price = extra_price + custom_price + else + new_record.price = premium_custom_price || extra_price + + new_record.age_restricted = initial(temp.age_restricted) + new_record.colorable = !!(initial(temp.greyscale_config) && initial(temp.greyscale_colors) && (initial(temp.flags_1) & IS_PLAYER_COLORABLE_1)) + new_record.category = product_to_category[typepath] + recordlist += new_record + +/** + * Builds all available inventories for the vendor - standard, contraband and premium + * + * Arguments + * start_empty - bool to pass into build_inventory that determines whether a product entry starts with available stock or not +*/ +/obj/machinery/vending/proc/build_inventories(start_empty = FALSE) + build_inventory(products, product_records, product_categories, start_empty) + build_inventory(contraband, hidden_records, list(list("name" = "Contraband", "icon" = "mask", "products" = contraband)), start_empty, premium = TRUE) + build_inventory(premium, coin_records, list(list("name" = "Premium", "icon" = "coins", "products" = premium)), start_empty, premium = TRUE) + +//Better would be to make constructable child +/obj/machinery/vending/RefreshParts() + SHOULD_CALL_PARENT(FALSE) + + //compress all product categories into an linear list + if(product_categories) + products.Cut() + for(var/list/category as anything in product_categories) + products |= category["products"] + + //locate canister + var/obj/item/vending_refill/canister = refill_canister ? locate(refill_canister) in component_parts : null + + //build the records, if we have a canister make the records empty so we can refill it from the canister else make it max amount + build_inventories(start_empty = !isnull(canister)) + + //fill the records if we have an canister + if(canister) + restock(canister) + +/** + * Refill a vending machine from a refill canister + * + * This takes the products from the refill canister and then fills the products, contraband and premium product categories + * + * Arguments: + * * canister - the vending canister we are refilling from + */ +/obj/machinery/vending/proc/restock(obj/item/vending_refill/canister) + . = 0 + + //to initialize product category & cargo ordered canisters for the 1st time + if(!canister.products) + canister.products = products.Copy() + canister.contraband = contraband.Copy() + canister.premium = premium.Copy() + + var/list/datum/data/vending_product/record_list + var/list/canister_list + + for(var/i in 1 to 3) + switch(i) + if (1) + record_list = product_records + canister_list = canister.products + if (2) + record_list = hidden_records + canister_list = canister.contraband + else + record_list = coin_records + canister_list = canister.premium + if(!record_list.len || !canister_list.len) + continue + + for(var/datum/data/vending_product/record as anything in record_list) + var/diff = min(record.max_amount - record.amount, canister_list[record.product_path] || 0) + if (diff) + canister_list[record.product_path] -= diff + if(!canister_list[record.product_path]) + canister_list -= record.product_path + record.amount += diff + . += diff + +//===========================VENDING OUT ITEMS================================ +/obj/machinery/vending/Exited(atom/movable/gone, direction) + . = ..() + for(var/datum/data/vending_product/record in product_records + coin_records + hidden_records) + if(gone in record.returned_products) + record.returned_products -= gone + record.amount -= 1 + break + +/** + * The entire shebang of vending the picked item. Processes the vending and initiates the payment for the item. + * arguments: + * greyscale_colors - greyscale config for the item we're about to vend, if any + */ +/obj/machinery/vending/proc/vend(list/params, mob/user, list/greyscale_colors) + PROTECTED_PROC(TRUE) + + . = TRUE + var/datum/data/vending_product/item_record = locate(params["ref"]) + var/list/record_to_check = product_records + coin_records + if(extended_inventory) + record_to_check = product_records + coin_records + hidden_records + if(!item_record || !istype(item_record) || !item_record.product_path) + return + var/price_to_use = item_record.price + if(item_record in hidden_records) + if(!extended_inventory) + return + else if (!(item_record in record_to_check)) + message_admins("Vending machine exploit attempted by [ADMIN_LOOKUPFLW(user)]!") + return + if (item_record.amount <= 0) + speak("Sold out of [item_record.name].") + flick(icon_deny, src) + return + if(!all_products_free) + // Here we do additional handing ahead of the payment component's logic, such as age restrictions and additional logging + var/obj/item/card/id/card_used + var/mob/living/living_user + if(isliving(user)) + living_user = user + card_used = living_user.get_idcard(TRUE) + if(age_restrictions && item_record.age_restricted && (!card_used.registered_age || card_used.registered_age < AGE_MINOR)) + speak("You are not of legal age to purchase [item_record.name].") + if(!(user in GLOB.narcd_underages)) + aas_config_announce(/datum/aas_config_entry/vendomat_age_control, list( + "PERSON" = usr.name, + "LOCATION" = get_area_name(src), + "VENDOR" = name, + "PRODUCT" = item_record.name + ), src, list(RADIO_CHANNEL_SECURITY)) + GLOB.narcd_underages += user + flick(icon_deny, src) + return + + if(!proceed_payment(card_used, living_user, item_record, price_to_use, params["discountless"])) + return + + if(last_shopper != REF(user) || purchase_message_cooldown < world.time) + var/vend_response = vend_reply || "Thank you for shopping with [src]!" + speak(vend_response) + purchase_message_cooldown = world.time + 5 SECONDS + //This is not the best practice, but it's safe enough here since the chances of two people using a machine with the same ref in 5 seconds is fuck low + last_shopper = REF(user) + use_energy(active_power_usage) + if(icon_vend) //Show the vending animation if needed + flick(icon_vend, src) + + // Always give out free returned stuff first, e.g. to avoid walling a traitor objective in a bag behind paid items + var/obj/item/vended_item = dispense(item_record, get_turf(src), dispense_returned = LAZYLEN(item_record.returned_products)) + if(!vended_item) + return + + if(greyscale_colors) + vended_item.set_greyscale(colors=greyscale_colors) + if(user.CanReach(src) && user.put_in_hands(vended_item)) + to_chat(user, span_notice("You take [item_record.name] out of the slot.")) + vended_item.do_pickup_animation(user, src) + else + to_chat(user, span_warning("[capitalize(format_text(item_record.name))] falls onto the floor!")) + SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[item_record.product_path]")) + +/** + * Common proc that dispenses an item. Called when the item is vended, or gotten some other way. + * + * Arguments + * * datum/data/vending_product/item_record - the vending record which contains the information of the item to dispense + * * atom/spawn_location - location to dispense the item to + * * silent - should we play the vending sound + * * dispense_returned - are we vending out an returned item +*/ +/obj/machinery/vending/proc/dispense(datum/data/vending_product/item_record, atom/spawn_location, silent = FALSE, dispense_returned = FALSE) + SHOULD_NOT_OVERRIDE(TRUE) + + if(!silent) + playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) + + var/obj/item/vended_item = null + if(dispense_returned) + vended_item = LAZYACCESS(item_record.returned_products, LAZYLEN(item_record.returned_products)) //first in, last out + if(!QDELETED(vended_item)) + vended_item.forceMove(spawn_location) + else if(item_record.amount) + vended_item = new item_record.product_path(spawn_location) + if(vended_item.type in contraband) + ADD_TRAIT(vended_item, TRAIT_CONTRABAND, INNATE_TRAIT) + item_record.amount-- + + if(!QDELETED(vended_item)) + on_dispense(vended_item, dispense_returned) + return vended_item + +/** + * A proc meant to perform custom behavior on newly dispensed items. + * + * Arguments + * * obj/item/vended_item - the item that has just been dispensed + * * dispense_returned - is this item an returned product +*/ +/obj/machinery/vending/proc/on_dispense(obj/item/vended_item, dispense_returned = FALSE) + PROTECTED_PROC(TRUE) + + return + +/** + * Handles payment processing: discounts, logging, balance change etc. + * arguments: + * paying_id_card - the id card that will be billed for the product. + * mob_paying - the mob that is trying to purchase the item. + * product_to_vend - the product record of the item we're trying to vend. + * price_to_use - price of the item we're trying to vend. + * discountless - whether or not to apply discounts + */ +/obj/machinery/vending/proc/proceed_payment(obj/item/card/id/paying_id_card, mob/living/mob_paying, datum/data/vending_product/product_to_vend, price_to_use, discountless) + PROTECTED_PROC(TRUE) + + if(QDELETED(paying_id_card)) //not available(null) or somehow is getting destroyed + speak("You do not possess an ID to purchase [product_to_vend.name].") + return FALSE + var/datum/bank_account/account = paying_id_card.registered_account + if(account.account_job && account.account_job.paycheck_department == payment_department && !discountless) + price_to_use = max(round(price_to_use * DEPARTMENT_DISCOUNT), 1) //No longer free, but signifigantly cheaper. + if(LAZYLEN(product_to_vend.returned_products)) + price_to_use = 0 //returned items are free + if(price_to_use && (attempt_charge(src, mob_paying, price_to_use) & COMPONENT_OBJ_CANCEL_CHARGE)) + speak("You do not possess the funds to purchase [product_to_vend.name].") + flick(icon_deny,src) + return FALSE + //actual payment here + var/datum/bank_account/paying_id_account = SSeconomy.get_dep_account(payment_department) + if(paying_id_account) + SSblackbox.record_feedback("amount", "vending_spent", price_to_use) + SSeconomy.track_purchase(account, price_to_use, name) + log_econ("[price_to_use] credits were inserted into [src] by [account.account_holder] to buy [product_to_vend].") + credits_contained += round(price_to_use * VENDING_CREDITS_COLLECTION_AMOUNT) + return TRUE diff --git a/code/modules/vending/vendor/throwing.dm b/code/modules/vending/vendor/throwing.dm new file mode 100644 index 000000000000..0b1cbbd0a178 --- /dev/null +++ b/code/modules/vending/vendor/throwing.dm @@ -0,0 +1,57 @@ + +/** + * Throw an item from our internal inventory out in front of us + * + * This is called when we are hacked, it selects a random product from the records that has an amount > 0 + * This item is then created and tossed out in front of us with a visible message + */ +/obj/machinery/vending/proc/throw_item() + var/mob/living/target = locate() in view(7,src) + if(!target) + return FALSE + + var/obj/thrown_item + for(var/datum/data/vending_product/record in shuffle(product_records)) + if(record.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = record.product_path + if(!dump_path) + continue + // Always throw new stuff that costs before free returned stuff, because of the hacking effort and time between throws involved + var/only_returned_left = (record.amount <= LAZYLEN(record.returned_products)) + thrown_item = dispense(record, get_turf(src), silent = TRUE, dispense_returned = only_returned_left) + break + if(isnull(thrown_item)) + return FALSE + + pre_throw(thrown_item) + + thrown_item.throw_at(target, 16, 3) + visible_message(span_danger("[src] launches [thrown_item] at [target]!")) + return TRUE + +/** + * A callback called before an item is tossed out + * + * Override this if you need to do any special case handling + * + * Arguments: + * * thrown_item - obj/item being thrown + */ +/obj/machinery/vending/proc/pre_throw(obj/item/thrown_item) + return + + +///Crush the mob that the vending machine got thrown at +/obj/machinery/vending/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + if(isliving(hit_atom)) + tilt(fatty=hit_atom) + return ..() + +/obj/machinery/vending/hitby(atom/movable/hitting_atom, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) + . = ..() + var/mob/living/living_mob = hitting_atom + if(tilted || !istype(living_mob) || !prob(20 * (throwingdatum.speed - living_mob.throw_speed))) // hulk throw = +20%, neckgrab throw = +20% + return + + tilt(living_mob) diff --git a/code/modules/vending/vendor/tilting.dm b/code/modules/vending/vendor/tilting.dm new file mode 100644 index 000000000000..1d7d899c0ea7 --- /dev/null +++ b/code/modules/vending/vendor/tilting.dm @@ -0,0 +1,312 @@ +/** + * Can this atom be curshed by the vending machine + * Arguments + * + * * atom/atom_target - the atom we are checking for +*/ +/proc/check_atom_crushable(atom/atom_target) + /// Contains structures and items that vendors shouldn't crush when we land on them. + var/static/list/vendor_uncrushable_objects = list( + /obj/structure/chair, + /obj/machinery/conveyor, + ) + GLOB.WALLITEMS_INTERIOR + GLOB.WALLITEMS_EXTERIOR + + //make sure its not in the list of "uncrushable" stuff + if(is_type_in_list(atom_target, vendor_uncrushable_objects)) + return FALSE + + //check if it has integrity + allow ninjas, etc to be crushed in cloak + if (atom_target.uses_integrity && !(atom_target.invisibility > SEE_INVISIBLE_LIVING)) + return TRUE //SMUSH IT + + return FALSE + +/** + * Causes src to fall onto [target], crushing everything on it (including itself) with [damage] + * and a small chance to do a spectacular effect per entity (if a chance above 0 is provided). + * + * Args: + * * turf/target: The turf to fall onto. Cannot be null. + * * damage: The raw numerical damage to do by default. + * * chance_to_crit: The percent chance of a critical hit occurring. Default: 0 + * * forced_crit_case: If given a value from crushing.dm, [target] and its contents will always be hit with that specific critical hit. Default: null + * * paralyze_time: The time, in deciseconds, a given mob/living will be paralyzed for if crushed. + * * crush_dir: The direction the crush is coming from. Default: dir of src to [target]. + * * damage_type: The type of damage to do. Default: BRUTE + * * damage_flag: The attack flag for armor purposes. Default: MELEE + * * rotation: The angle of which to rotate src's transform by on a successful tilt. Default: 90. + * + * Returns: A collection of bitflags defined in crushing.dm. Read that file's documentation for info. + */ +/atom/movable/proc/fall_and_crush(turf/target, damage, chance_to_crit = 0, forced_crit_case = null, paralyze_time, crush_dir = get_dir(get_turf(src), target), damage_type = BRUTE, damage_flag = MELEE, rotation = 90) + + ASSERT(!isnull(target)) + + var/flags_to_return = NONE + + if (!target.is_blocked_turf(TRUE, src, list(src))) + for(var/atom/atom_target in (target.contents) + target) + if (isarea(atom_target)) + continue + + if (SEND_SIGNAL(atom_target, COMSIG_PRE_TILT_AND_CRUSH, src) & COMPONENT_IMMUNE_TO_TILT_AND_CRUSH) + continue + + var/crit_case = forced_crit_case + if (isnull(crit_case) && chance_to_crit > 0) + if (prob(chance_to_crit)) + crit_case = pick_weight(get_crit_crush_chances()) + var/crit_rebate_mult = 1 // lessen the normal damage we deal for some of the crits + + if (!isnull(crit_case)) + crit_rebate_mult = fall_and_crush_crit_rebate_table(crit_case) + apply_crit_crush(crit_case, atom_target) + + var/adjusted_damage = damage * crit_rebate_mult + var/crushed + if (isliving(atom_target)) + crushed = TRUE + var/mob/living/carbon/living_target = atom_target + var/was_alive = living_target.stat != DEAD + var/blocked = living_target.run_armor_check(attack_flag = damage_flag) + if (iscarbon(living_target)) + var/mob/living/carbon/carbon_target = living_target + if(prob(30)) + carbon_target.apply_damage(max(0, adjusted_damage), damage_type, blocked = blocked, forced = TRUE, spread_damage = TRUE, attack_direction = crush_dir) // the 30% chance to spread the damage means you escape breaking any bones + else + var/brute = (damage_type == BRUTE ? damage : 0) * 0.5 + var/burn = (damage_type == BURN ? damage : 0) * 0.5 + carbon_target.take_bodypart_damage(brute, burn, check_armor = TRUE, wound_bonus = 5) // otherwise, deal it to 2 random limbs (or the same one) which will likely shatter something + carbon_target.take_bodypart_damage(brute, burn, check_armor = TRUE, wound_bonus = 5) + carbon_target.AddElement(/datum/element/squish, 80 SECONDS) + else + living_target.apply_damage(adjusted_damage, damage_type, blocked = blocked, forced = TRUE, attack_direction = crush_dir) + + living_target.Paralyze(paralyze_time) + living_target.emote("scream") + playsound(living_target, 'sound/effects/blob/blobattack.ogg', 40, TRUE) + playsound(living_target, 'sound/effects/splat.ogg', 50, TRUE) + post_crush_living(living_target, was_alive) + flags_to_return |= (SUCCESSFULLY_CRUSHED_MOB|SUCCESSFULLY_CRUSHED_ATOM) + + else if(check_atom_crushable(atom_target)) + atom_target.take_damage(adjusted_damage, damage_type, damage_flag, FALSE, crush_dir) + crushed = TRUE + flags_to_return |= SUCCESSFULLY_CRUSHED_ATOM + + if (crushed) + atom_target.visible_message(span_danger("[atom_target] is crushed by [src]!"), span_userdanger("You are crushed by [src]!")) + SEND_SIGNAL(atom_target, COMSIG_POST_TILT_AND_CRUSH, src) + + var/matrix/to_turn = turn(transform, rotation) + animate(src, transform = to_turn, 0.2 SECONDS) + playsound(src, 'sound/effects/bang.ogg', 40) + + visible_message(span_danger("[src] tips over, slamming hard onto [target]!")) + flags_to_return |= SUCCESSFULLY_FELL_OVER + post_tilt() + else + visible_message(span_danger("[src] rebounds comically as it fails to slam onto [target]!")) + + Move(target, crush_dir) // we still TRY to move onto it for shit like teleporters + return flags_to_return + +/** + * Returns a assoc list of (critcase -> num), where critcase is a critical define in crushing.dm and num is a weight. + * Use with pickweight to acquire a random critcase. + */ +/atom/movable/proc/get_crit_crush_chances() + RETURN_TYPE(/list) + + return list( + CRUSH_CRIT_SHATTER_LEGS = 100, + CRUSH_CRIT_PARAPLEGIC = 80, + CRUSH_CRIT_HEADGIB = 20, + CRUSH_CRIT_SQUISH_LIMB = 100 + ) + +/** + * Exists for the purposes of custom behavior. + * Called directly after [crushed] is crushed. + * + * Args: + * * mob/living/crushed: The mob that was crushed. + * * was_alive: Boolean. True if the mob was alive before the crushing. + */ +/atom/movable/proc/post_crush_living(mob/living/crushed, was_alive) + return + +/** + * Exists for the purposes of custom behavior. + * Called directly after src actually rotates and falls over. + */ +/atom/movable/proc/post_tilt() + return + +/** + * Should be where critcase effects are actually implemented. Use this to apply critcases. + * Args: + * * crit_case: The chosen critcase, defined in crushing.dm. + * * atom/atom_target: The target to apply the critical hit to. Cannot be null. Can be anything except /area. + * + * Returns: + * TRUE if a crit case is successfully applied, FALSE otherwise. + */ +/atom/movable/proc/apply_crit_crush(crit_case, atom/atom_target) + switch (crit_case) + if(CRUSH_CRIT_SHATTER_LEGS) // shatter their legs and bleed 'em + if (!iscarbon(atom_target)) + return FALSE + var/mob/living/carbon/carbon_target = atom_target + carbon_target.bleed(150) + var/obj/item/bodypart/leg/left/left_leg = carbon_target.get_bodypart(BODY_ZONE_L_LEG) + if(left_leg) + left_leg.receive_damage(brute = 200) + var/obj/item/bodypart/leg/right/right_leg = carbon_target.get_bodypart(BODY_ZONE_R_LEG) + if(right_leg) + right_leg.receive_damage(brute = 200) + if(left_leg || right_leg) + carbon_target.visible_message(span_danger("[carbon_target]'s legs shatter with a sickening crunch!"), span_userdanger("Your legs shatter with a sickening crunch!")) + return TRUE + if(CRUSH_CRIT_PARAPLEGIC) // paralyze this binch + // the new paraplegic gets like 4 lines of losing their legs so skip them + if (!iscarbon(atom_target)) + return FALSE + var/mob/living/carbon/carbon_target = atom_target + visible_message(span_danger("[carbon_target]'s spinal cord is obliterated with a sickening crunch!"), ignored_mobs = list(carbon_target)) + carbon_target.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) + return TRUE + if(CRUSH_CRIT_SQUISH_LIMB) // limb squish! + if (!iscarbon(atom_target)) + return FALSE + var/mob/living/carbon/carbon_target = atom_target + for(var/obj/item/bodypart/squish_part in carbon_target.bodyparts) + var/severity = pick(WOUND_SEVERITY_MODERATE, WOUND_SEVERITY_SEVERE, WOUND_SEVERITY_CRITICAL) + if (!carbon_target.cause_wound_of_type_and_severity(WOUND_BLUNT, squish_part, severity, wound_source = "crushed by [src]")) + squish_part.receive_damage(brute = 30) + carbon_target.visible_message(span_danger("[carbon_target]'s body is maimed underneath the mass of [src]!"), span_userdanger("Your body is maimed underneath the mass of [src]!")) + return TRUE + if(CRUSH_CRIT_HEADGIB) // skull squish! + if (!iscarbon(atom_target)) + return FALSE + var/mob/living/carbon/carbon_target = atom_target + var/obj/item/bodypart/head/carbon_head = carbon_target.get_bodypart(BODY_ZONE_HEAD) + if(carbon_head) + if(carbon_head.dismember()) + carbon_target.visible_message(span_danger("[carbon_head] explodes in a shower of gore beneath [src]!"), span_userdanger("Oh f-")) + carbon_head.drop_organs() + qdel(carbon_head) + new /obj/effect/gibspawner/human/bodypartless(get_turf(carbon_target), carbon_target) + return TRUE + + return FALSE + +/** + * Tilts ontop of the atom supplied, if crit is true some extra shit can happen. See [fall_and_crush] for return values. + * Arguments: + * fatty - atom to tilt the vendor onto + * local_crit_chance - percent chance of a critical hit + * forced_crit - specific critical hit case to use, if any + * range - the range of the machine when thrown if not adjacent +*/ +/obj/machinery/vending/proc/tilt(atom/fatty, local_crit_chance = crit_chance, forced_crit, range = 1) + if(QDELETED(src) || !has_gravity(src)) + return + + . = NONE + + var/picked_rotation = pick(90, 270) + if(Adjacent(fatty)) + . = fall_and_crush(get_turf(fatty), squish_damage, local_crit_chance, forced_crit, 6 SECONDS, rotation = picked_rotation) + + if (. & SUCCESSFULLY_FELL_OVER) + visible_message(span_danger("[src] tips over!")) + tilted = TRUE + tilted_rotation = picked_rotation + layer = ABOVE_MOB_LAYER + + if(get_turf(fatty) != get_turf(src)) + throw_at(get_turf(fatty), range, 1, spin = FALSE, quickstart = FALSE) + +/obj/machinery/vending/post_crush_living(mob/living/crushed, was_alive) + + if(was_alive && crushed.stat == DEAD && crushed.client) + crushed.client.give_award(/datum/award/achievement/misc/vendor_squish, crushed) // good job losing a fight with an inanimate object idiot + + add_memory_in_range(crushed, 7, /datum/memory/witness_vendor_crush, protagonist = crushed, antagonist = src) + + return ..() + +/** + * Allows damage to be reduced on certain crit cases. + * Args: + * * crit_case: The critical case chosen. + */ +/atom/movable/proc/fall_and_crush_crit_rebate_table(crit_case) + ASSERT(!isnull(crit_case)) + + switch(crit_case) + if (CRUSH_CRIT_SHATTER_LEGS) + return 0.2 + else + return 1 + +/obj/machinery/vending/fall_and_crush_crit_rebate_table(crit_case) + return crit_case == VENDOR_CRUSH_CRIT_GLASSCANDY ? 0.33 : ..() + +/obj/machinery/vending/get_crit_crush_chances() + return list( + VENDOR_CRUSH_CRIT_GLASSCANDY = 100, + VENDOR_CRUSH_CRIT_PIN = 100 + ) + +/obj/machinery/vending/apply_crit_crush(crit_case, atom_target) + . = ..() + if (.) + return TRUE + + switch (crit_case) + if (VENDOR_CRUSH_CRIT_GLASSCANDY) + if (!iscarbon(atom_target)) + return FALSE + var/mob/living/carbon/carbon_target = atom_target + for(var/i in 1 to 7) + var/obj/item/shard/shard = new /obj/item/shard(get_turf(carbon_target)) + var/datum/embedding/embed = shard.get_embed() + embed.embed_chance = 100 + embed.ignore_throwspeed_threshold = TRUE + embed.impact_pain_mult = 1 + carbon_target.hitby(shard, skipcatch = TRUE, hitpush = FALSE) + embed.embed_chance = initial(embed.embed_chance) + embed.ignore_throwspeed_threshold = initial(embed.ignore_throwspeed_threshold) + embed.impact_pain_mult = initial(embed.impact_pain_mult) + return TRUE + if (VENDOR_CRUSH_CRIT_PIN) // pin them beneath the machine until someone untilts it + if (!isliving(atom_target)) + return FALSE + var/mob/living/living_target = atom_target + forceMove(get_turf(living_target)) + buckle_mob(living_target, force=TRUE) + living_target.visible_message(span_danger("[living_target] is pinned underneath [src]!"), span_userdanger("You are pinned down by [src]!")) + return TRUE + + return FALSE + +/** + * Rights the vendor up, unpinning mobs under it, if any. + * Arguments: + * user - mob that has untilted the vendor + */ +/obj/machinery/vending/proc/untilt(mob/user) + if(user) + user.visible_message(span_notice("[user] rights [src]."), \ + span_notice("You right [src].")) + + unbuckle_all_mobs(TRUE) + + tilted = FALSE + layer = initial(layer) + + var/matrix/to_turn = turn(transform, -tilted_rotation) + animate(src, transform = to_turn, 0.2 SECONDS) + tilted_rotation = 0 diff --git a/code/modules/vending/vendor/ui_data.dm b/code/modules/vending/vendor/ui_data.dm new file mode 100644 index 000000000000..3b5c5016d3d0 --- /dev/null +++ b/code/modules/vending/vendor/ui_data.dm @@ -0,0 +1,180 @@ +///Helper to create a typepath to be used in the UI +#define SANITIZED_PATH(path)(replacetext(replacetext("[path]", "/obj/item/", ""), "/", "-")) + +/obj/machinery/vending/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet_batched/vending), + ) + +/obj/machinery/vending/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Vending", name) + ui.open() + +/** + * Returns a list of given product records of the vendor to be used in UI. + * arguments: + * records - list of records available + * categories - list of categories available + * premium - bool of whether a record should be priced by a custom/premium price or not + */ +/obj/machinery/vending/proc/collect_records_for_static_data(list/records, list/categories, premium) + PROTECTED_PROC(TRUE) + + var/static/list/default_category = list( + "name" = "Products", + "icon" = "cart-shopping", + ) + + var/list/out_records = list() + + for (var/datum/data/vending_product/record as anything in records) + var/list/static_record = list( + path = SANITIZED_PATH(record.product_path), + name = record.name, + price = record.price, + ref = REF(record), + colorable = record.colorable, + ) + + var/atom/printed = record.product_path + // If it's not GAGS and has no innate colors we have to care about, we use DMIcon + if(ispath(printed, /atom) \ + && (!initial(printed.greyscale_config) || !initial(printed.greyscale_colors)) \ + && !initial(printed.color) \ + ) + static_record["icon"] = initial(printed.icon) + static_record["icon_state"] = initial(printed.icon_state) + + var/list/category = record.category || default_category + if (!isnull(category)) + if (!(category["name"] in categories)) + categories[category["name"]] = list("icon" = category["icon"]) + + static_record["category"] = category["name"] + + if (premium) + static_record["premium"] = TRUE + + out_records += list(static_record) + + return out_records + +/obj/machinery/vending/ui_static_data(mob/user) + var/list/data = list() + data["onstation"] = onstation + if(ad_list.len) + data["ad"] = ad_list[rand(1, ad_list.len)] + data["all_products_free"] = all_products_free + data["department"] = payment_department + data["jobDiscount"] = DEPARTMENT_DISCOUNT + data["product_records"] = list() + data["displayed_currency_icon"] = displayed_currency_icon + data["displayed_currency_name"] = displayed_currency_name + + var/list/categories = list() + + data["product_records"] = collect_records_for_static_data(product_records, categories) + data["coin_records"] = collect_records_for_static_data(coin_records, categories, premium = TRUE) + data["hidden_records"] = collect_records_for_static_data(hidden_records, categories, premium = TRUE) + + data["categories"] = categories + + return data + + +/** + * Returns the balance that the vendor will use for proceeding payment. Most vendors would want to use the user's + * card's account credits balance. + * arguments: + * passed_id - the id card that will be billed for the product + */ +/obj/machinery/vending/proc/fetch_balance_to_use(obj/item/card/id/passed_id) + PROTECTED_PROC(TRUE) + + return passed_id.registered_account.account_balance + +/obj/machinery/vending/ui_data(mob/user) + . = list() + + var/obj/item/card/id/card_used + var/held_cash = 0 + if(isliving(user)) + var/mob/living/living_user = user + card_used = living_user.get_idcard(TRUE) + held_cash = living_user.tally_physical_credits() + + var/list/user_data = null + if(card_used?.registered_account) + user_data = list() + user_data["name"] = card_used.registered_account.account_holder + user_data["cash"] = fetch_balance_to_use(card_used) + held_cash + if(card_used.registered_account.account_job) + user_data["job"] = card_used.registered_account.account_job.title + user_data["department"] = card_used.registered_account.account_job.paycheck_department + else + user_data["job"] = "No Job" + user_data["department"] = DEPARTMENT_UNASSIGNED + .["user"] = user_data + + .["stock"] = list() + for (var/datum/data/vending_product/product_record as anything in product_records + coin_records + hidden_records) + .["stock"][SANITIZED_PATH(product_record.product_path)] = list( + amount = product_record.amount, + free = length(product_record.returned_products) + ) + + if(prob(10) && ad_list.len) + .["ad"] = ad_list[rand(1, ad_list.len)] + + .["extended_inventory"] = extended_inventory + +/obj/machinery/vending/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("vend") + . = vend(params, ui.user) + if("select_colors") + var/datum/data/vending_product/product = locate(params["ref"]) + if(!istype(product)) + return FALSE + var/atom/fake_atom = product.product_path + var/config = initial(fake_atom.greyscale_config) + if(!config) + return FALSE + + var/list/allowed_configs = list("[config]") + if(ispath(fake_atom, /obj/item)) + var/obj/item/item = fake_atom + if(initial(item.greyscale_config_worn)) + allowed_configs += "[initial(item.greyscale_config_worn)]" + if(initial(item.greyscale_config_inhand_left)) + allowed_configs += "[initial(item.greyscale_config_inhand_left)]" + if(initial(item.greyscale_config_inhand_right)) + allowed_configs += "[initial(item.greyscale_config_inhand_right)]" + var/datum/greyscale_modify_menu/menu = new( + src, ui.user, allowed_configs, CALLBACK(src, PROC_REF(_vend_greyscale), params, ui.user), + starting_icon_state=initial(fake_atom.icon_state), + starting_config = initial(fake_atom.greyscale_config), + starting_colors = initial(fake_atom.greyscale_colors) + ) + menu.ui_interact(ui.user) + return TRUE + +/** + * Vends a greyscale modified item. + * arguments: + * menu - greyscale config menu that has been used to vend the item + */ +/obj/machinery/vending/proc/_vend_greyscale(list/params, mob/user, datum/greyscale_modify_menu/menu) + PRIVATE_PROC(TRUE) + + if(user != menu.user) + return + vend(params, user, menu.split_colors) + +#undef SANITIZED_PATH diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 85f502d73d80..ee35c89a461a 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -71,6 +71,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/sec_wardrobe payment_department = ACCOUNT_SEC light_color = COLOR_MOSTLY_PURE_RED + allow_custom = TRUE /obj/item/vending_refill/wardrobe/sec_wardrobe machine_name = "SecDrobe" @@ -117,6 +118,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/medi_wardrobe payment_department = ACCOUNT_MED + allow_custom = TRUE /obj/item/vending_refill/wardrobe/medi_wardrobe machine_name = "MediDrobe" @@ -147,6 +149,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/engi_wardrobe payment_department = ACCOUNT_ENG light_color = COLOR_VIVID_YELLOW + allow_custom = TRUE /obj/item/vending_refill/wardrobe/engi_wardrobe machine_name = "EngiDrobe" @@ -155,7 +158,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) name = "AtmosDrobe" desc = "This relatively unknown vending machine delivers clothing for Atmospherics Technicians, an equally unknown job." icon_state = "atmosdrobe" - product_ads = "Get your inflammable clothing right here!!!" + product_slogans = "Get your inflammable clothing right here!!!" vend_reply = "Thank you for using the AtmosDrobe!" products = list( /obj/item/clothing/accessory/pocketprotector = 3, @@ -172,6 +175,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/atmos_wardrobe payment_department = ACCOUNT_ENG light_color = COLOR_VIVID_YELLOW + allow_custom = TRUE /obj/item/vending_refill/wardrobe/atmos_wardrobe machine_name = "AtmosDrobe" @@ -215,6 +219,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/cargo_wardrobe payment_department = ACCOUNT_CAR + allow_custom = TRUE /obj/item/vending_refill/wardrobe/cargo_wardrobe machine_name = "CargoDrobe" @@ -249,6 +254,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe extra_price = PAYCHECK_COMMAND * 1.2 payment_department = ACCOUNT_SCI + allow_custom = TRUE /obj/item/vending_refill/wardrobe/robo_wardrobe machine_name = "RoboDrobe" @@ -278,6 +284,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/science_wardrobe payment_department = ACCOUNT_SCI + allow_custom = TRUE /obj/item/vending_refill/wardrobe/science_wardrobe machine_name = "SciDrobe" @@ -306,6 +313,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/hydro_wardrobe payment_department = ACCOUNT_SRV light_color = LIGHT_COLOR_ELECTRIC_GREEN + allow_custom = TRUE /obj/item/vending_refill/wardrobe/hydro_wardrobe machine_name = "HyDrobe" @@ -314,7 +322,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) name = "CuraDrobe" desc = "A low-stock vendor only capable of vending clothing for curators and librarians." icon_state = "curadrobe" - product_ads = "Glasses for your eyes and literature for your soul, Curadrobe has it all!; Impress & enthrall your library guests with Curadrobe's extended line of pens!" + product_slogans = "Glasses for your eyes and literature for your soul, Curadrobe has it all!; Impress & enthrall your library guests with Curadrobe's extended line of pens!" vend_reply = "Thank you for using the CuraDrobe!" products = list( /obj/item/clothing/accessory/pocketprotector = 2, @@ -339,6 +347,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/curator_wardrobe payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/wardrobe/curator_wardrobe machine_name = "CuraDrobe" @@ -388,6 +397,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/coroner_wardrobe payment_department = ACCOUNT_MED + allow_custom = TRUE /obj/item/vending_refill/wardrobe/coroner_wardrobe machine_name = "MortiDrobe" @@ -425,6 +435,8 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/bar_wardrobe payment_department = ACCOUNT_MED extra_price = PAYCHECK_COMMAND + allow_custom = TRUE + /obj/item/vending_refill/wardrobe/bar_wardrobe machine_name = "BarDrobe" @@ -455,6 +467,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/chef_wardrobe payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/wardrobe/chef_wardrobe machine_name = "ChefDrobe" @@ -494,6 +507,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) extra_price = PAYCHECK_COMMAND * 0.8 payment_department = ACCOUNT_SRV light_color = COLOR_STRONG_MAGENTA + allow_custom = TRUE /obj/item/vending_refill/wardrobe/jani_wardrobe machine_name = "JaniDrobe" @@ -536,6 +550,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/law_wardrobe payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/wardrobe/law_wardrobe machine_name = "LawDrobe" @@ -582,6 +597,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/chap_wardrobe payment_department = ACCOUNT_SRV + allow_custom = TRUE /obj/item/vending_refill/wardrobe/chap_wardrobe machine_name = "DeusVend" @@ -613,6 +629,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/chem_wardrobe payment_department = ACCOUNT_MED + allow_custom = TRUE /obj/item/vending_refill/wardrobe/chem_wardrobe machine_name = "ChemDrobe" @@ -638,6 +655,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/gene_wardrobe payment_department = ACCOUNT_SCI + allow_custom = TRUE /obj/item/vending_refill/wardrobe/gene_wardrobe machine_name = "GeneDrobe" @@ -646,7 +664,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) name = "ViroDrobe" desc = "An unsterilized machine for dispensing virology related clothing." icon_state = "virodrobe" - product_ads = " Viruses getting you down? Then upgrade to sterilized clothing today!" + product_slogans = " Viruses getting you down? Then upgrade to sterilized clothing today!" vend_reply = "Thank you for using the ViroDrobe" products = list( /obj/item/clothing/mask/surgical = 2, @@ -665,6 +683,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) ) refill_canister = /obj/item/vending_refill/wardrobe/viro_wardrobe payment_department = ACCOUNT_MED + allow_custom = TRUE /obj/item/vending_refill/wardrobe/viro_wardrobe machine_name = "ViroDrobe" @@ -711,6 +730,7 @@ GLOBAL_VAR_INIT(roaches_deployed, FALSE) refill_canister = /obj/item/vending_refill/wardrobe/det_wardrobe extra_price = PAYCHECK_COMMAND * 1.75 payment_department = ACCOUNT_SEC + allow_custom = TRUE /obj/item/vending_refill/wardrobe/det_wardrobe machine_name = "DetDrobe" diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 819ddbe22089..b73b183fad24 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -33,6 +33,7 @@ default_price = PAYCHECK_CREW extra_price = PAYCHECK_COMMAND * 1.5 payment_department = ACCOUNT_ENG + allow_custom = TRUE /obj/item/vending_refill/youtool machine_name = "YouTool" diff --git a/code/modules/wiremod/core/component_printer.dm b/code/modules/wiremod/core/component_printer.dm index 7797d6c8b62a..343f0db5e6f4 100644 --- a/code/modules/wiremod/core/component_printer.dm +++ b/code/modules/wiremod/core/component_printer.dm @@ -139,6 +139,7 @@ . = ..() if (.) return + var/alist/user_data = ID_DATA(usr) switch (action) if ("print") @@ -150,7 +151,7 @@ if (!(design.build_type & COMPONENT_PRINTER)) return TRUE - if (!materials.can_use_resource(user_data = ID_DATA(usr))) + if (!materials.can_use_resource(user_data = user_data)) return TRUE if (!materials.mat_container.has_materials(design.materials, efficiency_coeff)) @@ -159,7 +160,7 @@ balloon_alert_to_viewers("printed [design.name]") - materials.use_materials(design.materials, efficiency_coeff, 1, "printed", "[design.name]") + materials.use_materials(design.materials, efficiency_coeff, 1, "printed", "[design.name]", user_data) var/atom/printed_design = new design.build_path(drop_location()) printed_design.pixel_x = printed_design.base_pixel_x + rand(-5, 5) printed_design.pixel_y = printed_design.base_pixel_y + rand(-5, 5) @@ -167,7 +168,7 @@ var/datum/material/material = locate(params["ref"]) var/amount = text2num(params["amount"]) // SAFETY: eject_sheets checks for valid mats - materials.eject_sheets(material, amount) + materials.eject_sheets(material_ref = material, eject_amount = amount, user_data = user_data) return TRUE diff --git a/code/modules/wiremod/shell/brain_computer_interface.dm b/code/modules/wiremod/shell/brain_computer_interface.dm index 72d6ca751805..0b61abe7eefd 100644 --- a/code/modules/wiremod/shell/brain_computer_interface.dm +++ b/code/modules/wiremod/shell/brain_computer_interface.dm @@ -250,7 +250,7 @@ return ..() -/datum/action/innate/bci_charge_action/Trigger(trigger_flags) +/datum/action/innate/bci_charge_action/Trigger(mob/clicker, trigger_flags) var/obj/item/stock_parts/power_store/cell/cell = circuit_component.parent.cell if (isnull(cell)) diff --git a/code/modules/wiremod/shell/gun.dm b/code/modules/wiremod/shell/gun.dm index 9bfa8764f41d..6e9043a146a7 100644 --- a/code/modules/wiremod/shell/gun.dm +++ b/code/modules/wiremod/shell/gun.dm @@ -34,10 +34,12 @@ /obj/item/gun/energy/wiremod_gun/Initialize(mapload) . = ..() - AddComponent(/datum/component/shell, list( + var/datum/component/shell/shell = AddComponent(/datum/component/shell, list( new /obj/item/circuit_component/wiremod_gun() ), SHELL_CAPACITY_MEDIUM) + RegisterSignal(shell, COMSIG_SHELL_CIRCUIT_ATTACHED, PROC_REF(on_circuit_attached)) + /obj/item/circuit_component/wiremod_gun display_name = "Gun" desc = "Used to receive entities hit by projectiles from a gun." @@ -62,6 +64,18 @@ /obj/item/circuit_component/wiremod_gun/unregister_shell(atom/movable/shell) UnregisterSignal(shell, list(COMSIG_PROJECTILE_ON_HIT, COMSIG_GUN_CHAMBER_PROCESSED)) +/obj/item/gun/energy/wiremod_gun/proc/on_circuit_attached(datum/component/shell/source) + SIGNAL_HANDLER + + if (istype(source, /datum/component/shell)) + var/datum/component/shell/comp = source + var/obj/item/integrated_circuit/circuit = comp.attached_circuit + if (!circuit.cell) + return + var/transferred = src.cell.give(min(0.1 * STANDARD_CELL_CHARGE, circuit.cell.charge)) + if (transferred) + circuit.cell.use(transferred, force=TRUE) + /** * Called when the shell item shoots something */ diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 5a70881851e0..10f1b5cf1c8d 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -6,11 +6,11 @@ icon_state = "blacktumor" var/causes_damage = TRUE var/datum/species/old_species = /datum/species/human - var/living_transformation_time = 30 + var/living_transformation_time = 3 SECONDS var/converts_living = FALSE - var/revive_time_min = 450 - var/revive_time_max = 700 + var/revive_time_min = 45 SECONDS + var/revive_time_max = 70 SECONDS var/timer_id /obj/item/organ/zombie_infection/Initialize(mapload) diff --git a/config/config.txt b/config/config.txt index 498457502117..0f946c67d46d 100644 --- a/config/config.txt +++ b/config/config.txt @@ -465,10 +465,15 @@ MINUTE_CLICK_LIMIT 400 BASE_MC_TICK_RATE 1 ##High population MC tick rate -## Byond rounds timer values UP, but the tick rate is modified with heuristics during lag spites so setting this to something like 2 +## Byond rounds timer values DOWN, but the tick rate is modified with heuristics during lag spites so setting this to something like 2 ## will make it run every 2 byond ticks, but will also double the effect of anti-lag heuristics. You can instead set it to something like -## 1.1 to make it run every 2 byond ticks, but only increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%. +## 1.1 to make it run every 1 byond ticks, but will increase the effect of anti-lag heuristics by 10%. or 1.5 for 50%. ## (As an aside, you could in theory also reduce the effect of anti-lag heuristics in the base tick rate by setting it to something like 0.5) +## +## Note: The reason to set this at/above 2 would be to carve out more time for sleeping procs and muck with scheduling the mc. +## Basically if set to 2 one tick will be dominated by sleeping procs, and the other has... a chance of being dominated by the mc (a low chance but yaknow) +## This is largely deprecated behavior, we have systems that do this automatically and more effectively. I'm keeping this here because of the heuristics stuff +## since I have a weaker grasp on that, but it should basically never be set above 2 (guarantees skipped ticks and horrible gameplay) HIGH_POP_MC_TICK_RATE 1.1 ##Engage high pop mode if player count raises above this (Player in this context means any connected user. Lobby, ghost or in-game all count) diff --git a/config/dynamic.toml b/config/dynamic.toml index f275a7b26dc2..3d8b6d296552 100644 --- a/config/dynamic.toml +++ b/config/dynamic.toml @@ -452,7 +452,7 @@ weight = 10 min_pop = 3 blacklisted_roles = [] min_antag_cap = 1 -max_antag_cap.denominator = 38 +max_antag_cap.denominator = 24 repeatable_weight_decrease = 2 repeatable = 1 minimum_required_age = 0 diff --git a/config/game_options.txt b/config/game_options.txt index ae0ae01bc92a..d79503aae04d 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -55,6 +55,11 @@ HUMANS_NEED_SURNAMES ## If uncommented, this forces all players to use random names !and appearances!. #FORCE_RANDOM_NAMES +## Amount of time after the round starts that the player disconnect report is issued, randomized by ROUNDSTART_LOGOUT_REPORT_TIME_VARIANCE as a lower and upper possible timer +## Setting ROUNDSTART_LOGOUT_REPORT_TIME_VARIANCE to 0 will result in no variance, and only display the time in ROUNDSTART_LOGOUT_REPORT_TIME_AVERAGE +ROUNDSTART_LOGOUT_REPORT_TIME_VARIANCE 1800 +ROUNDSTART_LOGOUT_REPORT_TIME_AVERAGE 6000 + ## Unhash this to turn on automatic reopening of a player's job if they suicide at roundstart #REOPEN_ROUNDSTART_SUICIDE_ROLES diff --git a/cutter_templates/bitmask/cardinal_32x32.toml b/cutter_templates/bitmask/cardinal_32x32.toml index 987e9126b2d8..f06fb8264771 100644 --- a/cutter_templates/bitmask/cardinal_32x32.toml +++ b/cutter_templates/bitmask/cardinal_32x32.toml @@ -1,9 +1,18 @@ mode = "BitmaskSlice" -# Don't try and put directions in our icon states -produce_dirs = false +# Dictates what sort of directions this dmi will have. +# There are currently 4 possible values: +# Standard (Default, used if none is specified) -> only 1 direction per frame +# Cardinals -> 4 directions per frame, arranged as duplicates of the full input set out to the right +# ... in order SOUTH, NORTH, EAST, WEST +# All -> 8 directions per frame, arranged in the same pattern as cardinals +# ... in order SOUTH, NORTH, EAST, WEST, SOUTHEAST, SOUTHWEST, NORTHEAST, NORTHWEST +# CardinalsRotated -> 1 direction per frame, will be expanded in the dmi to be Cardinals, with each +# ... direction being that base junction, rotated in whatever way. Exists mostly so client.dir supporting states +# ... can be created. Creates a lot of duplicate blocks otherwise. +directional_strategy = "Standard" # We smooth only with our cardinal neighbors, not the ones on the diagonal -smooth_diagonally = false +output_type = "Cardinal" # Take as input a set of 32x32 blocks [icon_size] diff --git a/cutter_templates/bitmask/diagonal_32x32.toml b/cutter_templates/bitmask/diagonal_32x32.toml index 1e80e3627e92..0da4d2a10c40 100644 --- a/cutter_templates/bitmask/diagonal_32x32.toml +++ b/cutter_templates/bitmask/diagonal_32x32.toml @@ -1,7 +1,7 @@ template = "bitmask/cardinal_32x32" # We're diagonal -smooth_diagonally = true +output_type = "StandardDiagonal" # And because of that we need a state for all directions [positions] diff --git a/cutter_templates/bitmask/diagonal_corner_32x32.toml b/cutter_templates/bitmask/diagonal_corner_32x32.toml new file mode 100644 index 000000000000..a895df5b0b25 --- /dev/null +++ b/cutter_templates/bitmask/diagonal_corner_32x32.toml @@ -0,0 +1,20 @@ +template = "bitmask/diagonal_32x32" + +# We're a corner diagonal +output_type = "CornerDiagonal" + +# And because of that we need a state for all directions and all our asshole corner bits +[positions] +convex = 0 +vertical = 1 +horizontal = 2 +concave = 3 +flat = 4 +bottom_right_inner = 5 +bottom_left_inner = 6 +top_right_inner = 7 +top_left_inner = 8 +bottom_right_outer = 9 +bottom_left_outer = 10 +top_right_outer = 11 +top_left_outer = 12 diff --git a/cutter_templates/bitmask/restore_corners.toml b/cutter_templates/bitmask/restore_corners.toml new file mode 100644 index 000000000000..fbbcdc086284 --- /dev/null +++ b/cutter_templates/bitmask/restore_corners.toml @@ -0,0 +1,25 @@ +# Bitmask restoration! (Corners) +# Allows for easy mass extraction of template pngs and their configs from a dmi +# Use this if you have a dmi and you want a cutter config you can edit easily +# Of note, while it tries its best it is nowhere near perfect. We don't parity check against the existing dmi +# And we also do not account for overrided states very well +# Always double check (and be aware that dmi is weird so you may get diffs of 1 rgb value when doin this) +mode = "BitmaskSliceReconstruct" +# List of icon states to pull out, expanded to get the standard ordering for diagonals +extract = [ + "0", "3", "12", "15", "255", + "6-diagonal", "10-diagonal", "5-diagonal", "9-diagonal", + "38-diagonal", "74-diagonal", "21-diagonal", "137-diagonal" +] + +# Map of name -> state that will be encoded into a positions list later +# Lets you extract particular states and use them to fill in for states later +# Useful to carry over odd snowflake states +#[bespoke] + +# Map of key -> value to set on the created config +# Lets you set arbitrary values on the created config, mostly useful for batch processing +# IMPORTANT NOTE: We sort of assume you'll setup a default template here (since this is for batch processing), +# so if things work odd that's likely why +#[set] +#template = "\"bitmask/diagonal_corner_32x32\"" diff --git a/dependencies.sh b/dependencies.sh index c89c1d8597a7..910fc9d0281f 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -8,7 +8,7 @@ export BYOND_MAJOR=516 export BYOND_MINOR=1659 #rust_g git tag -export RUST_G_VERSION=3.9.0 +export RUST_G_VERSION=4.0.0 # node version export NODE_VERSION_LTS=22.11.0 @@ -32,5 +32,5 @@ export DREAMLUAU_VERSION=0.1.2 export CUTTER_REPO=spacestation13/hypnagogic #hypnagogic git tag -export CUTTER_VERSION=v4.0.0 +export CUTTER_VERSION=v5.0.0 diff --git a/html/changelogs/AutoChangeLog-pr-92146.yml b/html/changelogs/AutoChangeLog-pr-92146.yml deleted file mode 100644 index 9a96e3013fe5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-92146.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Rhials" -delete-after: True -changes: - - balance: "Nightmares/Shadowpeople are no longer stunned by intense flashes like flashbangs or handheld flashes." - - balance: "Nightmares/Shadowpeople are now harmed and confused by ALL flash sources, including welding or other sources of flash-like flashing." - - sound: "Nightmares now have a wretched hiss as their default scream sound. Spooky!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-92329.yml b/html/changelogs/AutoChangeLog-pr-92329.yml deleted file mode 100644 index d56bbbda78e7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-92329.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Bisar" -delete-after: True -changes: - - qol: "Power cells and megacells now take much less time to print." - - balance: "Power cells now take the base-item time-to-print ( 10 seconds -> 3.2 seconds ), WITHOUT the stock-item print speed increase." - - balance: "Megacells now take 5 seconds to print ( 10 seconds -> 5 seconds), WITHOUT the stock-item print speed increase." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-92609.yml b/html/changelogs/AutoChangeLog-pr-92609.yml new file mode 100644 index 000000000000..d8280c3a594c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-92609.yml @@ -0,0 +1,9 @@ +author: "timothymtorres" +delete-after: True +changes: + - bugfix: "Fixed move subsystem bypassing status checks" + - bugfix: "Fixed elastic arms mutation bypassing abstract object checks for picking up objects" + - bugfix: "Fixed species radiation bypassing hair checks for balding" + - bugfix: "Fixed damaged APC board screentips bypassing emagged and broken checks" + - bugfix: "Fixed shuttle cleanup code bypassing move contents of turfs" + - bugfix: "Fixed tram crossing signals bypassing north and east direction checks" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-92658.yml b/html/changelogs/AutoChangeLog-pr-92658.yml new file mode 100644 index 000000000000..0eeb67f62101 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-92658.yml @@ -0,0 +1,4 @@ +author: "lelandkemble" +delete-after: True +changes: + - rscadd: "His Grace will now drink gender-change potions" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-92804.yml b/html/changelogs/AutoChangeLog-pr-92804.yml new file mode 100644 index 000000000000..f6ca47bc70fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-92804.yml @@ -0,0 +1,4 @@ +author: "SmArtKar" +delete-after: True +changes: + - bugfix: "Fixed a potential server crash caused by Mi-Gos" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-92813.yml b/html/changelogs/AutoChangeLog-pr-92813.yml new file mode 100644 index 000000000000..108672f59039 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-92813.yml @@ -0,0 +1,5 @@ +author: "agudbrand" +delete-after: True +changes: + - qol: "shift+alt will open the tgui loot panel on any tile without being intercepted by items that may be on the tile" + - code_imp: "adds a shift+alt click on proc for living mobs to explicitly open the tgui loot panel in addition to the already existing alt bind" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-92815.yml b/html/changelogs/AutoChangeLog-pr-92815.yml new file mode 100644 index 000000000000..272f172ca0e8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-92815.yml @@ -0,0 +1,4 @@ +author: "TheBoondock" +delete-after: True +changes: + - bugfix: "fixed null.ghostize() in split personality deletion" \ No newline at end of file diff --git a/html/changelogs/archive/2025-07.yml b/html/changelogs/archive/2025-07.yml index 17b4ac79232c..7ade717b2ea1 100644 --- a/html/changelogs/archive/2025-07.yml +++ b/html/changelogs/archive/2025-07.yml @@ -723,3 +723,54 @@ - balance: Sphere MODule bombs no longer hit NODE drones and minebots - balance: Ice demon/ice demon cube afterimages can now be walked through by players - bugfix: Sphere MODule bombs now aggro basicmobs hit by their explosions +2025-07-30: + Bisar: + - qol: Power cells and megacells now take much less time to print. + - balance: Power cells now take the base-item time-to-print ( 10 seconds -> 3.2 + seconds ), WITHOUT the stock-item print speed increase. + - balance: Megacells now take 5 seconds to print ( 10 seconds -> 5 seconds), WITHOUT + the stock-item print speed increase. + Rhials: + - balance: Nightmares/Shadowpeople are no longer stunned by intense flashes like + flashbangs or handheld flashes. + - balance: Nightmares/Shadowpeople are now harmed and confused by ALL flash sources, + including welding or other sources of flash-like flashing. + - sound: Nightmares now have a wretched hiss as their default scream sound. Spooky! + TealSeer: + - refactor: refactored custom vending machine brand code, a new var on /obj/machinery/vending + called allow_custom now determines whether the machine can be chosen when screwdrivering + the circuit board +2025-07-31: + Aliceee2ch: + - bugfix: Tier 3 cyber heart now prevents bleeding as intended + Bisar: + - bugfix: Fixed a couple of missing entries for user_data + - code_imp: Ore silo logs will now generate an entry for a failed ID_DATA entry + instead of not generating anything if the initial provided user_data wasn't + valid. + - bugfix: The calculation for discharged energy when committing suicide with a power + storage part should now be correctly evaluated. + Ghommie: + - bugfix: Fixes a few dishes getting a bit too, uh, meaty when cut. + - bugfix: Fixes being able to turn different types of cooked spaghetti into generic + cooked spaghetti with an oven. + JohnFulpWillard: + - rscadd: Added a new role to Mafia; the Coroner, which takes the Chaplain's ability + to see dead people's roles. + - rscadd: Mafia Chaplains now speak with the dead at night instead, and the dead + are corpselocked to prevent cheating. + - bugfix: Mafia's HoS doesn't kill himself when executing non-townies. + - qol: You can now update your notes & send them in chat while dead, as well as + look up the descriptions of other roles. + LemonInTheDark: + - bugfix: Distortion/fov effects now properly impact the full game world + Melbert: + - qol: Adds some wardrobes and backpacks to Catwalk laundry + dorms + MelokG and KREKS: + - image: resprited all RPEDs + - image: RPEDs now play an animation when replacing parts + SmArtKar: + - bugfix: Fixed fly infusion deleting the last infused organ upon activation + Thunder12345: + - map: Tramstation's xenobiology now receives xeno eggs in the middle of the chamber + instead of tucked away at the back. diff --git a/html/changelogs/archive/2025-08.yml b/html/changelogs/archive/2025-08.yml new file mode 100644 index 000000000000..d8a9259df912 --- /dev/null +++ b/html/changelogs/archive/2025-08.yml @@ -0,0 +1,672 @@ +2025-08-01: + 00-Steven: + - bugfix: Newspapers can be scrolled through again. + Glamyr: + - image: update old sprites of general minerals in hands + Maximal08: + - qol: Right-clicking with a sheet of metal on a tile puts a computer or machine + if you have a board of the appropriate type in your other hand. + SmArtKar: + - rscdel: Removes forced tint from NVGs + - bugfix: Fixed eyes not being affected by human height + - rscdel: Hitting objects at high speed in zero-g no longer makes you crash into + them. + SyncIt21: + - bugfix: reagent intercept operations use correct volumes e.g. ph buffers + - bugfix: impure cryostylane now has inverse cryogeldia effects when applied on + mods + - bugfix: exposing reagents now uses correct volumes i.e. injecting blood into mobs + don't increase it exponentially and stops when max levels are reached. Exposure + affects of all reagents are lessened upon continuous exposure + - refactor: refactors how reagent affects are applied on mobs. Report bugs on github + itsmeow: + - code_imp: Improved performance of several icon metadata operations. + - rscadd: IconForge GAGS now fully supports the OR blend mode and color matrices. + necromanceranne: + - bugfix: Operatives once again can purchase syndicate bombs. + - balance: Athletics experience gain from non-workout sources, such as climbing + ladders, hopping tables and rope climbing, experience diminishing returns as + you gain athletics levels. To reach legendary fitness, you really should hit + the gym. + projectkepler-ru: + - bugfix: .38 Truestrike speedloader not being printable + - spellcheck: .38 Truestrike Magazine no longer have the extra E and Flareshot now + no longer lose the R + trazodont: + - bugfix: honey sweetrolls can now be eaten + zxaber: + - bugfix: Cyborgs correctly take brute damage from lasers again. + - bugfix: Cyborgs correctly take burn damage from EMP again. + - bugfix: EMP Flashlights work on cyborgs for non-combat mode as well as combat + mode +2025-08-02: + Aliceee2ch: + - bugfix: Fixed the nukies outpost chemical locker not having beakers inside of + a beaker box + SmArtKar: + - bugfix: Fixed fire arrow ritual not being accessible + - bugfix: Fixed certain nullrod types not being usable for certain holy and unholy + interactions + - bugfix: Fixed emissive bloom being all white + - bugfix: Fixed M90 underbarrel having its separate inaccessible firing pin + SyncIt21: + - bugfix: reagent transfer amounts with multiplier applied(e.g. cryotubes) have + been corrected + ZeWaka: + - bugfix: tgui windows should now stop flashing for a single frame elsewhere when + opening + necromanceranne: + - bugfix: Swimming now no longer punishes you with less gains for swimming in heavy + gravity, but also weirdly easier to swim in. + subject217: + - spellcheck: fixed a typo in the operative bomb implant manual +2025-08-03: + SmArtKar: + - qol: Monster cores now display above corpses when dropped + Thunder12345: + - rscadd: Glitter can now be made from plastic polymers and aluminium. + - rscadd: Plastic polymer can be made at any temperature, and then heated to produce + sheets. + - rscadd: Glitter can now be made any colour, mix 10 units each of glitter and acetone + to change its colour to that of the other reagents in the beaker. + - rscadd: Mixing different colours of glitter will cause a random selection of those + colours to appear on the floor when released. + - rscadd: Being exposed to glitter in reagent form causes you to cough up more glitter + onto the floor + - rscadd: Dragging glittery crates will now spread a trail of glitter and angry + janitors behind them. + - image: Added new glitter sprites (that don't look like gasses) +2025-08-04: + carpotoxin: + - qol: Mobs entangled within spacevines are layered above the spacevines for as + long as they stay buckled +2025-08-05: + FalloutFalcon: + - code_imp: debug proc for painting the world based on spatial grid. + IgiariValkyr: + - bugfix: Fixes the void eater's right-hand sprite + OnlineGirlfriend: + - image: update barnyard spellbook + Pickle-Coding: + - bugfix: Fixes BZ formation not actually creating the nitrogen and oxygen when + it decomposes nitrous oxide. + SmArtKar: + - bugfix: Fixed style meter text going out of bounds + - bugfix: Fixed recovered crew bodybags being foldable while there's a "corpse" + inside + - bugfix: Knocking someone out cold now properly stops their panic attack + - bugfix: Fixed portable atmospheric machines trying to add themselves to SSair + queue when destroyed + TheEmber: + - bugfix: Fixed bitrunning psyker +2025-08-06: + Bisar: + - bugfix: Correct a few banners on Catwalk Station to be mundane banners, and not + the magic barriers that heal you and remove your stuns. + Ghommie: + - bugfix: Shooting a fish with a laser gun or otherwise damaging it like any other + item or object will reduce its health. + Rhials: + - balance: Dragon rifts no longer take damage from telekinesis-ed objects. Get in + there and fight like a man! + SmArtKar: + - bugfix: Fixed All-in-One tcomms servers not translating radio frequencies + - bugfix: Fixed RPD causing runtimes when placing atmos components for the first + time. + SyncIt21: + - code_imp: moved designs & circuitboards for bitrunning into their correct files + - qol: adds examines & screentips for bitrunning netpod, bitforge & server on how + to deconstruct them + - bugfix: bitforge can be deconstructed with a screwdriver & crowbar + - refactor: code for copying reagents has been refactored. Please report bugs on + github + - bugfix: You can no longer see parallel universes when 2 or more people gets shoved + into closets. + - code_imp: cleaned up closet see through code. It's documented & slightly faster + performance wise +2025-08-07: + Arturlang: + - code_imp: action's now pass down the clicker via the first arg of Trigger() + - code_imp: antagonist ui_act now ensures that the owners of the antag datum thesmelves + can only do stuff in the UI + - bugfix: admins giving out heretic antag no longer opens it for them. + - bugfix: Action button binding works again + Exester509: + - qol: Made angel wings more maneuverable + - spellcheck: The cytology crate no longer references the non-existent research + plumbing constructor. + FalloutFalcon: + - map: converts all non-basic space turfs to space/basic + Majkl-J: + - rscadd: Redesigned the Icebox, Tram, and Wawa gardens, adding fishing pools to + them + Rhials: + - balance: The Chain of Command will give a speed bonus to other players when right-clicking + them. + SmArtKar: + - rscadd: Added specular overlays - some items like hazard vests or firefighter + suits no longer outright glow in the dark, but instead amplify existing light + to shine brighter than their surroundings. + - rscadd: Redid unrestricted access airlock overlays to look less bad + - bugfix: Fixed unrestricted access overlays not showing up on windoors. + - bugfix: Fixed blood/glass floor glow going over objects +2025-08-08: + Arturlang: + - bugfix: ghosts can't buy heretic powers + Melbert: + - balance: Airlock crushing now does 20 damage, up from 15. Also may uncommonly + cause wounds. Also is properly affected by damage reduction or modifiers. + - balance: Mood threshold to become "crazy" changed from -7 (one moderately bad + event) to -15 (two moderately bad events). + SmArtKar: + - balance: Fluoride Stare quirk now takes much longer to start damaging your eyes, + and deals less eye damage per second + - bugfix: Fixed lizard blinking constantly freezing one of their eyes + - bugfix: Fixed brain damage not updating your blinking to be async when you get + stupid enough + - bugfix: Fixed species changing breaking passive blinking + lelandkemble: + - qol: informs changelings they can't absorb people they've already taken the DNA + of + - spellcheck: changelings refer to themselves in second-person less + necromanceranne: + - balance: Gravity anomalies can be properly clicked. Rather than chain stunning + you, the anomaly will knock you down. You can avoid the negatives of gravity + anomalies by wearing magboots. (Yes, it did not really protect you until now) + - balance: Flux anomalies detonate in a much smaller explosion, but release a wide + EMP as well. + - balance: Long range gas analyzers can now scan anomalies. + panvxv: + - rscadd: Bone bracers to Divine Adept kit + - qol: Adept robes doesn't cover arms, hands and feet as to match the sprite + - qol: Ancient armour doesn't cover hands as to match the sprite + - qol: Divine Archer coat doesn't cover arms, hands and feet as to match the sprite + - qol: Divine Archer bracers now have the same armor as Divine Archer coat + - balance: Divine Archer boots have their own unique armor +2025-08-09: + Cirrial: + - balance: You will no longer be allergic to saline-glucose solution. + LemonInTheDark: + - admin: MC tab renders without jumping around constantly now, some labels are more + readable + Melbert: + - rscadd: Adds Black Workboots to Loadout + SmArtKar: + - refactor: Refactored how human names are updated, yell at us on our github if + you spot any bugs! + - bugfix: Fixed slimepeople regenerating blood while dead + - bugfix: Rescued the station from a time-space bubble + Thunder12345: + - bugfix: CRAB-17 machines will now hold onto funds internally if they cannot find + the original user's bank account to transfer them to. +2025-08-10: + Mickyan: + - rscdel: Reduces mood penalty from Empaths examining people with the Fundamentally + Evil quirk + vinylspiders: + - code_imp: adds support to check for a required_bodytype or required_organ_flag + for the damage getter procs +2025-08-11: + Axidyuwu: + - bugfix: after lizard raid on the popular chef show "Kotra Wellington" was renamed + to "Korta Wellington" + Melbert: + - qol: Grand Pianos can be climbed on + SyncIt21: + - bugfix: deconstructing material platforms drops the correct sheet types + - bugfix: certain material platforms now have the correct amount of custom materials + in them +2025-08-12: + Absolucy: + - code_imp: Item weapon description elements are now initialized when first examined, + instead of immediately upon initialization. + Aliceee2ch: + - bugfix: Removed floating posters in DeltaStation science + Cameron-The-Raven: + - bugfix: Nar'Sie can no longer be spam-clicked as a ghost and destroy ears via + infinite shell creation. + - bugfix: Cult-banned players can no longer interact with Nar'Sie + - qol: Interacting with Nar'Sie as a ghost no longer creates a ghost query and instead + allows you to immediately become a harvester after confirming you wish to become + a harvester. + Exester509: + - rscdel: The Justice mech has been removed. + Ghommie: + - bugfix: burned mess made with a microwave, oven or griddle once again toxins. + Hatterhat: + - code_imp: Ammo boxes' multiload variable is now a bitflag that determines if a + magazine can be multiloaded into or out of. Ammo boxes can multiload in or out, + while magazines can only multiload in. + - image: .223 ammo now has a distinct casing icon. + - bugfix: Foam force magazines now have a proper description. + L0pz: + - image: Resprited the whip, chain, cat o' nine tails and liz o' nine tails + LemonInTheDark: + - bugfix: Using fake space tiles on icebox will no longer summon the endless void + Maximal08: + - bugfix: manufacturing lathe now prints items according to their quantity in the + autolathe + - bugfix: night vision module can now be activated and turned off again. + Melbert: + - qol: The access changing software (the HoP console) now has ID two slots again + (one for the HoP's id and one for the ID being changed). You can insert IDs + in the secondary slot via the UI or right click, and remove them via the UI + or alt-right click. + - qol: If your PDA is destroyed via acid or bombs, your ID (and similar contents + such as disks) are spit out instead of being deleted + - rscdel: Deletes the "New IDs and you" memo in the HoP's office. They haven't been + new for 4 years. + - bugfix: Engineering sub-tab in the access changing software no longer looks messed + up + - bugfix: Fix reversed alt-click logic for mod pcs + SSensum13: + - bugfix: fixed incorrect use of bit flags in some components. + SmArtKar: + - bugfix: Shuttle catastrophe should no longer cause random unintended crashlandings + - bugfix: Fixed light flickering potentially causing lag + - bugfix: Fixed fishes not dying on dry land + SyncIt21: + - code_imp: cleaned up vending machine code + - qol: vending machines now have more product slogans you never heard before + - qol: custom & normal vending machines now have more feedback on why an item could + not be loaded + - qol: vending machines now display random ads on the UI + - qol: custom vending machines can be deconstructed via crowbar safely only after + unlinking your account from the machine. + - qol: upon deconstructing a custom vendor all its products are moved into its refill + canister & it will be restored when reconstructing the machine elsewhere + - bugfix: Returned items to the vending machine now show up as free in the UI and + won't be greyed out if you don't have credits to get them back + - bugfix: items that leave the vending machine by any means will update the UI in + all cases + - bugfix: loading items by hand to the vending machine now respects the max_amount + for that category + - bugfix: custom vendors can now actually be used by players who are not the owner + thus enabling them to transfer credits to the owner during purchases & basically + they do their job again + - bugfix: custom vendors now show the correct icon for inserted items + - bugfix: Items with different names & custom prices now show up in unique rows + in custom vendors + - refactor: separated custom & normal vending machine code. Reduced UI code & improved + attack chain + Thunder12345: + - bugfix: Chaplain helmets and clockwork armour now have the same wound protection + as the other chaplain body armours. + Time-Green: + - rscadd: Adds an organ growing kit to medical cargo orders. Grow your very own + evolved hearts at home! + - bugfix: Mutagen can now mutate fish + tonyhawq: + - bugfix: fixes circuit gun not recharging it's internal cell when an integrated + circuit is inserted + trazodont: + - bugfix: added the CRAFT_CLEARS_REAGENTS flag to the rootdough recipes, bananas + + water will no longer doom lizard food ever again +2025-08-13: + 00-Steven: + - refactor: Refactored say modes (i.e. robotic talk, drone chat, hivemind speak), + custom say verbs (i.e. `says in a custom way*The spoken thing.`), and quoted + messages. Please report any issues. + - rscadd: You can now use custom say verbs with robotic talk, drone chat, alien + hivemind talk, AI holograms, holopad calls, modlink/scryer calls, imaginary + friends, and blob telepathy. + - rscadd: Message spans like from say modifiers carry over through robotic talk, + drone chat, alien hivemind talk, AI holograms, holopad calls, and modlink/scryer + calls. + - bugfix: Languages and say verbs carry over through holopad calls and modlink/scryer + calls. + - bugfix: You can use custom say verbs when using the department radio key. + - bugfix: Drone chat now counts as a radio message for chat settings, parallel to + binary chat. + - bugfix: No longer highlight messages you sent yourself over drone chat, blob telepathy, + and speaking as revenant. + - admin: Removed a redundant emote log entry for custom say verbs/'radio emotes' + accompanying a message. Instead it's only logged as part of the message it accompanied + in the say logs. + - admin: Pure custom say verbs without accompanying messages are now similarly tagged + with their type (i.e. robotic talk, drone chat, imaginary friend) in the emote + logs. + - admin: Pure custom say verbs without accompanying messages are properly logged + if somehow forced. + - admin: Alien hivemind talk logs are properly tagged as alien hivemind talk. + - admin: Drone chat is properly logged. + - refactor: Refactored how the newscaster network keeps track of channels. Please + report any issues. + - bugfix: Newscaster channels no longer have an increasing random chance of breaking + whenever a new channel is made. + Aliceee2ch: + - balance: Paramedic now has extra access to pharmacy on skeleton crew station. + Krysonism: + - image: The tesla cannon has new sprites. + - image: The tesla parts kit has new sprites. + - image: The tesla cannon has a new shocking beam effect when firing. + - sound: The tesla cannon has new sounds. + - balance: The tesla cannon must now be unfolded to fire. + - bugfix: looping sounds now stop playing sounds when commaned to do so. + Melbert: + - bugfix: Bashing vendors works good again + SyncIt21: + - bugfix: product category vendors start out correctly filled & can be refilled + with cargo ordered vending canisters again + TealSeer: + - bugfix: fixed firelocks spawning with no area name or ID + Thunder12345: + - code_imp: Reduced the number of files named misc.dm or similar by 14%. + - code_imp: Converted a lot of time-based variables to be expressed with time defines. + kuricityy: + - balance: Buffs godslayer armor values to be worth the effort you have to put in + to getting it. + lelandkemble: + - spellcheck: whispering now spelled correctly + - bugfix: prevents inputting letters into the abandoned crate puzzle + throwawayuseless: + - rscadd: New Diode Disks which allow you to configurate emitters with special functions. + - rscadd: New Engi & CE exclusive traitor item, a diode disk that causes an emitter + to create low radius explosions when it hits things. Note that this will reduce + the fire-rate of your emitter. + uaioy: + - qol: All coroner's offices that lacked a cabinet will now have one, coroner's + organ fridge is now more accessible +2025-08-14: + plsleavemealon: + - rscadd: Adds a new bounty app to the PDA allowing you to remotely check your bounties +2025-08-15: + EnterTheJake: + - balance: Uplink price on the suppressor has been lowered from 3 to 1 TC. + Ezel: + - balance: Removes Sinks from botany/garden + - balance: Replaces all Garden trays with soil + Melbert: + - qol: Instruments now have an ID field - Instruments with IDs will sync song and + tempo with other instruments of the same ID in view when any one starts to play. + - bugfix: Grand pianos no longer continue playing for people who move away from + them or are stunned. + OnlineGirlfriend: + - image: updates basic book sprites + SmArtKar: + - admin: Renamed "Tick Overrun" in MC overview to "Subsystem Overtime" to be true + as to what it actually displays + - bugfix: Fixed constable helmet not having any armor + - bugfix: Fixed some hair masks not working + Thunder12345: + - image: Super and hyper-tier megacells now match the appearance of their smaller + cousins. + - rscadd: A new insulated glove factory has popped up on the ice moon. + - rscadd: Freezer floor tiles now come in the full range of shapes. + Wallem: + - image: Readjusts the Bluespace RPED sprite to fit into a 32x32 space to fix multiple + oversights. + moocowswag: + - bugfix: knifed up cleanbots will now read your id card rather than your mind when + stealing valor + necromanceranne: + - balance: The effects of flashbangs become less severe the further away you are + from the flashbang. + - balance: The bang effect of flashbangs cannot affect you in a vacuum. The flash + still functions in a vacuum. + - balance: Removes the hunger protection settlers get. + - balance: Removes the items that settlers spawn with. + panvxv: + - qol: Swat and welding helmets give proper messages when adjusting visors. + zxaber: + - rscadd: AIs now get an alert when a new (non-syndicate) AI is brought online. +2025-08-16: + Exester509: + - bugfix: The death ripley can move again, and thus, kill things that aren't standing + still right next to it. + JohnFulpWillard: + - qol: Jukebox now has context tips, balloon alerts over messages to chat, and can + now RMB to quick toggle music from playing. + Melbert: + - bugfix: Fixes some potential exploits in mecha ui code + - bugfix: Item on-attack effects will trigger as expected when hitting a limb at + damage cap + Needicla: + - bugfix: Spraycan-painted clothing now displays correctly when worn by short-height + characters (e.g., Settler); paint no longer disappears on the mob sprite. + - code_imp: Worn overlay coloration now uses named filters and recurses to child + overlays, making it resilient to later filter changes (like height displacement). + Time-Green: + - rscadd: Icebox surface is now a 1x3 z-level grid! Rejoice, explorers! + panvxv: + - balance: Reduced cost of Unmelting Protection and Blazing Star + tonyhawq: + - spellcheck: shuttles will now say "arriving in 1 minute" instead of "1 minutes" +2025-08-17: + Bisar: + - balance: 'Added a list of "universal" items that can fit on any suit storage. + Mostly low-impact but high-utility items, but of special note: holsters and + the captain''s jetpack can be worn on any suit storage.' + - balance: Any item of size "tiny" can now also be worn in suit storage. + - qol: The suit storage change gives some small amount of sanity to wearing things + on suit storage, such as emergency oxygen tanks or a pack of smokes. + throwawayuseless: + - bugfix: Diode Disks are no longer improperly /improper. +2025-08-18: + 00-Steven: + - bugfix: Ending a MODlink call in any non-standard way no longer bricks your ability + to use MODlinks. + - bugfix: Ending a MODlink call in any non-standard way and then giving the item + to someone else to call with no longer moves the visuals based on the first + person to try to use the item. + HurgnDurgn: + - rscadd: Cleanbots now clean up used cigarettes. + Kashargul: + - bugfix: chat highlights + Needicla: + - bugfix: Abductor agent disguises no longer break when moving between z-levels. + NoHaxJustPi: + - spellcheck: Fixes "It is The bolts on the bottom are..." in tank holder descriptions, + and improves grammar for inserted objects. + Rhials: + - rscadd: You may now remove water cooler jugs and put whatever you want in them. + Go nuts. + - rscadd: Water coolers are now craftable (with plastic), orderable from cargo, + and tippable when unanchored. + - rscadd: Rarely, water coolers will spawn full of healing fruit punch instead of + water! Be careful not to stray from the cooler while digesting this stuff. + - rscadd: You can also just buy the punch cooler from cargo if you feel like it. + SyncIt21: + - qol: you can stock more than 30 items from a bag into an vending machine + - bugfix: fixes runtime when deconstructing custom vending machines + Zytolg: + - map: Adjusts Turret Placement in the AI Upload on Nebulastation + - map: Adds an External Security Camera to the Starboard Vault Wall overlooking + the AI Upload on Nebulastation +2025-08-20: + Cameron-The-Raven: + - bugfix: Brains will no longer runtime when owner-less + panvxv: + - bugfix: Fixed bots unable to buckle people to themselves. + scriptis: + - rscadd: nepotism +2025-08-21: + Absolucy: + - bugfix: Digital clocks now process on the correct subsystem. + panvxv: + - rscadd: Added Disabler SMG Single-Pack + - rscadd: Added Laser Carbine Sigle-Pack + - balance: Moved Laser Guns crate from security to armory category in cargo + - balance: Increased amount of Energy Guns to 3 in Energy Guns crate + - balance: Increased amount of NT BR to 3 and magazines to 6 in NT BR crate + - rscadd: Added seclight attachment for swat, riot, press helmets + - bugfix: Fixed bulletproof helmets switching sprites to normal sec helmet + - image: Added sprites of Swat helmet and riot helmet with attached seclight + - image: Reworked part of helmet sprites - seclight +2025-08-22: + LT3: + - bugfix: Fixed techfab category of janitor holographic sign projector + Paxilmaniac: + - qol: MOD tethers are now a little easier to click on + Pickle-Coding: + - bugfix: Fixes water evaporation cooling the air to 2.7 Kelvin. + - balance: Water evaporation can cool the floor. + SmArtKar: + - bugfix: Fixed spraypainted items glowing in the dark + - code_imp: Stacking status effects without visual overlays will no longer try to + create them and fail to do so. + - bugfix: Fixed newspapers not lighting on fire from lighters + - bugfix: Fixed table flipping sound/alert spam + - bugfix: Fixed plant analyzer blocking all interactions in the darkness + - bugfix: Nerfs the Safety Moth. Fixed incident displays displaying adverts even + while depowered/broken + SyncIt21: + - bugfix: converting reagents now computes correct purity & ph when conversion threshold + is set + - bugfix: converting reagents transfers reagent data correctly only when not filtering + sub types + - code_imp: converting reagents is faster performance wise + carpotoxin: + - bugfix: Mutant bodypart overlays (tails and et cetera) that are gender-specific + now display correctly + lelandkemble: + - bugfix: Lizard now have lizard brains + necromanceranne: + - rscadd: Adds the surplus energy sword; the mall katana of the future. It cuts + like shit, but if you're desperate enough, you could kill someone with it. Just + remember to keep it charged. + - balance: Energy swords are huge objects while activated. + paganiy: + - bugfix: the interns recalculated the damage of the shotguns catridges and made + corrections +2025-08-23: + lelandkemble: + - bugfix: Fishing gloves MODule now actually lowers the difficulty of fishing like + it says +2025-08-24: + grungussuss: + - qol: '*jump emote will not print a message' + lelandkemble: + - bugfix: Cargo's warehouse is now magically charged enough to cast the Grand Ritual + tontyGH: + - bugfix: New player tutorials will no longer look extremely broken +2025-08-25: + Hatterhat: + - bugfix: Stamina and projectile speed multipliers on pellet-cloud projectiles (e.g. + buckshot, rubber shot, flechettes) now respect appropriate multipliers when + fired from appropriate guns. + JohnFulpWillard: + - bugfix: The escape menu now works for non-widescreen users. + Melbert: + - bugfix: Wackier hallucinations should rear their head again + - bugfix: Ghost eyes hallucination works properly + Paxilmaniac: + - rscadd: Lets small items be stuck into slices of cheese or lunch meat + - balance: Pills in food no longer alert you that you've just swallowed one if you + like the food they were stuck in (yum... cheese...) + - image: changes the sprites of the bolt action rifles + Rhials: + - bugfix: Solo fugitives now spawn with a mechanical toolbox, as intended. + SmArtKar: + - bugfix: Fixed metal hydrogen being blocked from all material storages + - bugfix: Fixed barricades not transforming into walls when adding wood to them + - bugfix: '"Move To Top" verb no longer destroys wall-mounted intercoms' + dj-34: + - bugfix: Camera flash sound now plays before customization, fixing the delayed + sound issue caused by it. +2025-08-26: + Melbert: + - rscadd: 'Adds 5 rewards to the Spy item pool: Penbang, Camera Flash, Dagger-Boot, + Monster Cube Box, and the Spider Bite martial art' + Yobrocharlie: + - bugfix: fixed caves.dmm's runtimes for a downstream +2025-08-27: + Ben10Omintrix: + - balance: red raptors are now able to attack while ridden + Pepsilawn: + - balance: Blood beams no longer converts iron sheets into cult metal. + - bugfix: Fixes gas miners erroneously connecting to surrounding pipes, causing + runtimes + SmArtKar: + - bugfix: Machine Override mobs will no longer target/be targeted by AI turrets + - bugfix: Fixed crusher trophies sometimes not dropping when they should/dropping + duplicates + - bugfix: You can no longer adjust surgical breath masks to break their sprites. + - bugfix: Fixed chasm jaunters not working while you're buckled to a mob or an object + - code_imp: Updated chasm jaunters to use signals instead of being hardcoded in + chasm code. + - bugfix: Blood scrubber overflow no longer explodes the server + SyncIt21: + - bugfix: plumbing pill press highlights selected option & its window has been scaled + to fit all options + - bugfix: air alarm scrubber toggle mode button has its background colour again + - bugfix: vending machines with all products free now makes stuff actually free + even without ID + - bugfix: unconnected Thermomachine pipe is visible again + carpotoxin: + - bugfix: Fixes the external_bodyshapes variable of organs, like the lizard snout + which now actually flags lizards as having a snouted bodyshape + - bugfix: Dullahan's head relay properly flags their head bodypart to skip out on + the regeneration + loganuk: + - bugfix: Bitrunner virtual area smuggling exploit + - bugfix: Restores jumping emote sound + - bugfix: Prevented pink sprite when wearing trashbag on Janitor biosuit slot. + - bugfix: Admin Secrets - "Cure all diseases" now adds immunity to that disease + necromanceranne: + - admin: AFK logout report timers are now determined by a config rather than a hardcoded + value. + tontyGH: + - qol: Added [OPTIONAL] keybinds to for Swap Left/Right hands. Check your keybinds. + [NOT OPTIONAL] +2025-08-28: + Ghommie: + - balance: As a continued effort to promote art and culture among the crew, the + "Marlowe Treeby's Art Galaxy" application has been made available for download + on all computer devices, with no access restrictions. Printing can still only + be done on a stationary console. The curator's PDA has it preinstalled now. + Glamyr: + - bugfix: Xenobio pens on tramstation now has cameras + - qol: Lone freezer on tramstation ordnance connected to burn chamber + - qol: Circuit lab on tramstation now have MMI roundstart + - map: Moved ordnance canisters on tramstation + - map: Placed robo access desk opp of rnd + - map: Removed AI Monitor Upload from xenobio + SmArtKar: + - image: Resprited all mineral overlays (from mining scanners) + - code_imp: Slightly improved mining scanner code + - rscadd: A lot of lavaland mobs now have minor glowy bits, making them easier to + spot in the dark. Same applies to their attacks! + - bugfix: Legion brood (skulls) no longer float inside of rocks, or get damaged + by atmos. + - image: Legion broods now have an animation and multiple random variants. + - image: Brimdemons now play an animation while firing their beam. + - bugfix: Ensured that biogens cannot brick themselves via various means + - code_imp: Updated biogen code + - bugfix: Fixed raptors and their riders having weird/confusing pixel offsets + SyncIt21: + - image: modified BSRPED inhand sprites to match the newer version + - image: removed secret 1% probability of showing old BSRPED sprite + loganuk: + - bugfix: Prevents vent crawlers getting trapped in a static vent or scrubber. +2025-08-29: + LT3: + - code_imp: Improved powernet light flickering + Pepsilawn: + - bugfix: Wawastation's garden tables won't fling you around anymore + loganuk: + - bugfix: Moves bots elsewhere on wawa AI Sat to stop girder blockage at round start. +2025-08-30: + Ghommie: + - balance: The speed of tools used in a crafting recipe now affect the time spent + on it. Report any recipe that takes awfully little or too long to complete. + - balance: Non-humanoid mobs can now benefit from being skilled at mining when swinging + that pickaxe. + Rhials: + - bugfix: Fugitive hunters spawn again. + - bugfix: When lacking a reference picture for plastic surgery, the alert message + will be sent to the surgery performer instead of everyone nearby. + SmArtKar: + - bugfix: Fixed recovered crew blood-related runtimes + lelandkemble: + - qol: You will no longer fall asleep from bloodloss upon arriving in the Mansus. + loganuk: + - bugfix: Service achievement not being in end of round report +2025-08-31: + FalloutFalcon: + - bugfix: some rogue bitrunning gimmick items have there silly names now. + Melbert: + - config: Default max roundstart traitors per ruleset upped from 1 per 38 players + to 1 per 24 players. + SmArtKar: + - bugfix: Fixed nonhuman meat being unusable for any material crafting diff --git a/html/changelogs/archive/2025-09.yml b/html/changelogs/archive/2025-09.yml new file mode 100644 index 000000000000..2d6103da28a1 --- /dev/null +++ b/html/changelogs/archive/2025-09.yml @@ -0,0 +1,21 @@ +2025-09-01: + Melbert: + - balance: Armsky will detain people who yoink weapons out of the armory without + a permit again. + SmArtKar: + - image: Brought back "new" goliath saddles which were lost during sprite reorganization + a while back. + - bugfix: Fixed misaligned magmawing watcher sprites + - image: Swapped preparing/ready to attack eye sprites on base watchers + - bugfix: You cannot stack infinite amount of cards in decks to explode clients + of whoever they get thrown at. + - refactor: Rewrote card items to use new interaction code. + TheBoondock: + - refactor: split personality/blackout drunk/brainwashed now uses temporary body + component, should be less buggy + tonyhawq: + - rscadd: Added a portable wind turbine which can charge things when you walk around + - rscadd: Added a signal that procs when an object resists space wind (from being + anchored / pulled) + - sound: added woosh.ogg as a low "wooshing" noise + - image: added a wind turbine sprite diff --git a/html/statbrowser.css b/html/statbrowser.css index f7b09a2cde60..da470bc4ae13 100644 --- a/html/statbrowser.css +++ b/html/statbrowser.css @@ -99,6 +99,21 @@ img { border-bottom-color: #000000; } +.statcontent { + flex: 1; + padding: 0.75em 0.5em; + overflow-y: auto; + overflow-x: hidden; +} + +.mcstatcontent { + flex: 1; + padding: 0.75em 0.5em; + overflow-y: auto; + overflow-x: auto; + white-space: pre; +} + #under-menu { height: 0.5em; background-color: #eeeeee; @@ -109,13 +124,6 @@ img { background-color: #eeeeee; } -#statcontent { - flex: 1; - padding: 0.75em 0.5em; - overflow-y: auto; - overflow-x: hidden; -} - .grid-container { margin: -0.25em; } diff --git a/html/statbrowser.html b/html/statbrowser.html index 9b1862912502..bbbd8fa53ab9 100644 --- a/html/statbrowser.html +++ b/html/statbrowser.html @@ -1,6 +1,6 @@
-
+
diff --git a/html/statbrowser.js b/html/statbrowser.js index 3bc8336012b1..f9b889cd9f83 100644 --- a/html/statbrowser.js +++ b/html/statbrowser.js @@ -236,6 +236,7 @@ function tab_change(tab) { document.getElementById(tab).className = "button active"; // make current button active var spell_tabs_thingy = spell_tabs.includes(tab); var verb_tabs_thingy = verb_tabs.includes(tab); + statcontentdiv.className = "statcontent" if (tab == "Status") { draw_status(); } else if (tab == "MC") { @@ -389,6 +390,7 @@ function draw_status() { function draw_mc() { statcontentdiv.textContent = ""; + statcontentdiv.className = "mcstatcontent" var table = document.createElement("table"); for (var i = 0; i < mc_tab_parts.length; i++) { var part = mc_tab_parts[i]; diff --git a/icons/area/areas_station.dmi b/icons/area/areas_station.dmi index 7d6739d9bbda..487883d24a64 100644 Binary files a/icons/area/areas_station.dmi and b/icons/area/areas_station.dmi differ diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index 12bbd4788f0f..9915bcf238dc 100644 Binary files a/icons/effects/beam.dmi and b/icons/effects/beam.dmi differ diff --git a/icons/effects/glitter.dmi b/icons/effects/glitter.dmi new file mode 100644 index 000000000000..6beb6c9821b6 Binary files /dev/null and b/icons/effects/glitter.dmi differ diff --git a/icons/effects/ore_visuals.dmi b/icons/effects/ore_visuals.dmi index 87c31c8c7df6..a27dbc30a3b9 100644 Binary files a/icons/effects/ore_visuals.dmi and b/icons/effects/ore_visuals.dmi differ diff --git a/icons/effects/progressbar.dmi b/icons/effects/progressbar.dmi index 3eed14db704a..3a17281e786b 100644 Binary files a/icons/effects/progressbar.dmi and b/icons/effects/progressbar.dmi differ diff --git a/icons/hud/screen_alert.dmi b/icons/hud/screen_alert.dmi index d7a288212b67..d308aea2e2f7 100644 Binary files a/icons/hud/screen_alert.dmi and b/icons/hud/screen_alert.dmi differ diff --git a/icons/hud/style_meter.dmi b/icons/hud/style_meter.dmi index 5da5f72c3eef..8e8c61ba8523 100644 Binary files a/icons/hud/style_meter.dmi and b/icons/hud/style_meter.dmi differ diff --git a/icons/map_icons/clothing/accessory.dmi b/icons/map_icons/clothing/accessory.dmi index 1f048116d9ad..1719b8a73bbd 100644 Binary files a/icons/map_icons/clothing/accessory.dmi and b/icons/map_icons/clothing/accessory.dmi differ diff --git a/icons/map_icons/clothing/head/_head.dmi b/icons/map_icons/clothing/head/_head.dmi index 4032ed9f1028..b05d7b9b050d 100644 Binary files a/icons/map_icons/clothing/head/_head.dmi and b/icons/map_icons/clothing/head/_head.dmi differ diff --git a/icons/map_icons/clothing/head/beret.dmi b/icons/map_icons/clothing/head/beret.dmi index 9fb1cf8fa9e1..975bbf80cf2c 100644 Binary files a/icons/map_icons/clothing/head/beret.dmi and b/icons/map_icons/clothing/head/beret.dmi differ diff --git a/icons/map_icons/clothing/mask.dmi b/icons/map_icons/clothing/mask.dmi index 2651067be636..e8fa3c8594ca 100644 Binary files a/icons/map_icons/clothing/mask.dmi and b/icons/map_icons/clothing/mask.dmi differ diff --git a/icons/map_icons/clothing/neck.dmi b/icons/map_icons/clothing/neck.dmi index 10a1bd2ddfed..a477d15da68c 100644 Binary files a/icons/map_icons/clothing/neck.dmi and b/icons/map_icons/clothing/neck.dmi differ diff --git a/icons/map_icons/clothing/shoes.dmi b/icons/map_icons/clothing/shoes.dmi index b73fd466d3f1..1381efbf904f 100644 Binary files a/icons/map_icons/clothing/shoes.dmi and b/icons/map_icons/clothing/shoes.dmi differ diff --git a/icons/map_icons/clothing/suit/_suit.dmi b/icons/map_icons/clothing/suit/_suit.dmi index 43b0400ab55d..ef633374f891 100644 Binary files a/icons/map_icons/clothing/suit/_suit.dmi and b/icons/map_icons/clothing/suit/_suit.dmi differ diff --git a/icons/map_icons/clothing/suit/costume.dmi b/icons/map_icons/clothing/suit/costume.dmi index 7dbba8d3e16b..3db984062306 100644 Binary files a/icons/map_icons/clothing/suit/costume.dmi and b/icons/map_icons/clothing/suit/costume.dmi differ diff --git a/icons/map_icons/clothing/under/_under.dmi b/icons/map_icons/clothing/under/_under.dmi index 7549dc9baa5a..82a09867c533 100644 Binary files a/icons/map_icons/clothing/under/_under.dmi and b/icons/map_icons/clothing/under/_under.dmi differ diff --git a/icons/map_icons/clothing/under/color.dmi b/icons/map_icons/clothing/under/color.dmi index c091de182d64..aa09a947f9dc 100644 Binary files a/icons/map_icons/clothing/under/color.dmi and b/icons/map_icons/clothing/under/color.dmi differ diff --git a/icons/map_icons/clothing/under/costume.dmi b/icons/map_icons/clothing/under/costume.dmi index 4402789a4c54..4f3d049fe179 100644 Binary files a/icons/map_icons/clothing/under/costume.dmi and b/icons/map_icons/clothing/under/costume.dmi differ diff --git a/icons/map_icons/clothing/under/dress.dmi b/icons/map_icons/clothing/under/dress.dmi index 6e6a9883a126..fde8dfbebaaa 100644 Binary files a/icons/map_icons/clothing/under/dress.dmi and b/icons/map_icons/clothing/under/dress.dmi differ diff --git a/icons/map_icons/items/_item.dmi b/icons/map_icons/items/_item.dmi index 4083e71b68bb..c81bfa7d4f4c 100644 Binary files a/icons/map_icons/items/_item.dmi and b/icons/map_icons/items/_item.dmi differ diff --git a/icons/map_icons/items/encryptionkey.dmi b/icons/map_icons/items/encryptionkey.dmi index c44fac3a26e7..be7514ad789c 100644 Binary files a/icons/map_icons/items/encryptionkey.dmi and b/icons/map_icons/items/encryptionkey.dmi differ diff --git a/icons/map_icons/items/pda.dmi b/icons/map_icons/items/pda.dmi index 6ba874d57fba..488e0ea2e7ac 100644 Binary files a/icons/map_icons/items/pda.dmi and b/icons/map_icons/items/pda.dmi differ diff --git a/icons/map_icons/objects.dmi b/icons/map_icons/objects.dmi index 8fc20d26983f..faefc9cb0d61 100644 Binary files a/icons/map_icons/objects.dmi and b/icons/map_icons/objects.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index eb14a71a0f72..d73e28d1aec2 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 5afb56d1012a..023652ea9a33 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/clothing/head/helmet.dmi b/icons/mob/clothing/head/helmet.dmi index 6a3a60c60b05..9c7389788cee 100644 Binary files a/icons/mob/clothing/head/helmet.dmi and b/icons/mob/clothing/head/helmet.dmi differ diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index 49dbe635e56f..1e880ce0bf7f 100644 Binary files a/icons/mob/inhands/64x64_lefthand.dmi and b/icons/mob/inhands/64x64_lefthand.dmi differ diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index 952d85c83fd0..1f653793710d 100644 Binary files a/icons/mob/inhands/64x64_righthand.dmi and b/icons/mob/inhands/64x64_righthand.dmi differ diff --git a/icons/mob/inhands/antag/voidwalker_righthand.dmi b/icons/mob/inhands/antag/voidwalker_righthand.dmi index f227c6105ad1..17dc25516335 100644 Binary files a/icons/mob/inhands/antag/voidwalker_righthand.dmi and b/icons/mob/inhands/antag/voidwalker_righthand.dmi differ diff --git a/icons/mob/inhands/items/devices_lefthand.dmi b/icons/mob/inhands/items/devices_lefthand.dmi index 87c186dcf7d0..d09914af22e9 100644 Binary files a/icons/mob/inhands/items/devices_lefthand.dmi and b/icons/mob/inhands/items/devices_lefthand.dmi differ diff --git a/icons/mob/inhands/items/devices_righthand.dmi b/icons/mob/inhands/items/devices_righthand.dmi index 6c12c632e73f..db9a225ff8c5 100644 Binary files a/icons/mob/inhands/items/devices_righthand.dmi and b/icons/mob/inhands/items/devices_righthand.dmi differ diff --git a/icons/mob/inhands/items/sheets_lefthand.dmi b/icons/mob/inhands/items/sheets_lefthand.dmi index aed1d5eddca1..6bfb4fbfdeb5 100644 Binary files a/icons/mob/inhands/items/sheets_lefthand.dmi and b/icons/mob/inhands/items/sheets_lefthand.dmi differ diff --git a/icons/mob/inhands/items/sheets_righthand.dmi b/icons/mob/inhands/items/sheets_righthand.dmi index e669afcae7db..c49274871318 100644 Binary files a/icons/mob/inhands/items/sheets_righthand.dmi and b/icons/mob/inhands/items/sheets_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/64x_guns_left.dmi b/icons/mob/inhands/weapons/64x_guns_left.dmi index faeae6f2eea5..ac78bda58263 100644 Binary files a/icons/mob/inhands/weapons/64x_guns_left.dmi and b/icons/mob/inhands/weapons/64x_guns_left.dmi differ diff --git a/icons/mob/inhands/weapons/64x_guns_right.dmi b/icons/mob/inhands/weapons/64x_guns_right.dmi index 2ccdeb577fed..575a60967159 100644 Binary files a/icons/mob/inhands/weapons/64x_guns_right.dmi and b/icons/mob/inhands/weapons/64x_guns_right.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 0b6aaa7bca6a..236df169bdde 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index d90292c72cb2..e82b236027c3 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/mob/rideables/mech_construct.dmi b/icons/mob/rideables/mech_construct.dmi index 656322b8187a..c25eb971f2e3 100644 Binary files a/icons/mob/rideables/mech_construct.dmi and b/icons/mob/rideables/mech_construct.dmi differ diff --git a/icons/mob/rideables/mech_construction.dmi b/icons/mob/rideables/mech_construction.dmi index 6e1cdbc3a2d4..f26dbe17fd03 100644 Binary files a/icons/mob/rideables/mech_construction.dmi and b/icons/mob/rideables/mech_construction.dmi differ diff --git a/icons/mob/rideables/mecha.dmi b/icons/mob/rideables/mecha.dmi index a52a3ff5d4be..d21037c49ab0 100644 Binary files a/icons/mob/rideables/mecha.dmi and b/icons/mob/rideables/mecha.dmi differ diff --git a/icons/mob/simple/animal.dmi b/icons/mob/simple/animal.dmi index ed63ab39ad7c..e09af620e944 100644 Binary files a/icons/mob/simple/animal.dmi and b/icons/mob/simple/animal.dmi differ diff --git a/icons/mob/simple/icemoon/icemoon_monsters.dmi b/icons/mob/simple/icemoon/icemoon_monsters.dmi index 9439e504d6eb..a909a7ca7b5a 100644 Binary files a/icons/mob/simple/icemoon/icemoon_monsters.dmi and b/icons/mob/simple/icemoon/icemoon_monsters.dmi differ diff --git a/icons/mob/simple/lavaland/bileworm.dmi b/icons/mob/simple/lavaland/bileworm.dmi index b8235ca77a14..e3072364e934 100644 Binary files a/icons/mob/simple/lavaland/bileworm.dmi and b/icons/mob/simple/lavaland/bileworm.dmi differ diff --git a/icons/mob/simple/lavaland/lavaland_monsters.dmi b/icons/mob/simple/lavaland/lavaland_monsters.dmi index 5ef7df49ea64..3f5eb9cbd3b5 100644 Binary files a/icons/mob/simple/lavaland/lavaland_monsters.dmi and b/icons/mob/simple/lavaland/lavaland_monsters.dmi differ diff --git a/icons/mob/simple/lavaland/lavaland_monsters_wide.dmi b/icons/mob/simple/lavaland/lavaland_monsters_wide.dmi index 808fdc59d9ba..4faf31f89cbe 100644 Binary files a/icons/mob/simple/lavaland/lavaland_monsters_wide.dmi and b/icons/mob/simple/lavaland/lavaland_monsters_wide.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index f67ef3c216cf..a000a50c34a9 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 0239023ae6e6..e80090a80642 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/head/helmet.dmi b/icons/obj/clothing/head/helmet.dmi index 18bce46da678..a9aaad49000c 100644 Binary files a/icons/obj/clothing/head/helmet.dmi and b/icons/obj/clothing/head/helmet.dmi differ diff --git a/icons/obj/clothing/modsuit/mod_modules.dmi b/icons/obj/clothing/modsuit/mod_modules.dmi index f91f9f0b9dca..c0a6103d3fe2 100644 Binary files a/icons/obj/clothing/modsuit/mod_modules.dmi and b/icons/obj/clothing/modsuit/mod_modules.dmi differ diff --git a/icons/obj/fluff/billboard.dmi b/icons/obj/fluff/billboard.dmi index f9f6445a77d9..b428ce22c1ee 100644 Binary files a/icons/obj/fluff/billboard.dmi and b/icons/obj/fluff/billboard.dmi differ diff --git a/icons/obj/lighting_overlay.dmi b/icons/obj/lighting_overlay.dmi index de25dbe17096..df3f480f25c7 100644 Binary files a/icons/obj/lighting_overlay.dmi and b/icons/obj/lighting_overlay.dmi differ diff --git a/icons/obj/machines/bitrunning.dmi b/icons/obj/machines/bitrunning.dmi index d61e910d195b..626ab4ff4f39 100644 Binary files a/icons/obj/machines/bitrunning.dmi and b/icons/obj/machines/bitrunning.dmi differ diff --git a/icons/obj/machines/cell_charger.dmi b/icons/obj/machines/cell_charger.dmi index 1082130dadb1..4644f5387b66 100644 Binary files a/icons/obj/machines/cell_charger.dmi and b/icons/obj/machines/cell_charger.dmi differ diff --git a/icons/obj/machines/vending.dmi b/icons/obj/machines/vending.dmi index 8c39296a155f..f8f1f80cdce3 100644 Binary files a/icons/obj/machines/vending.dmi and b/icons/obj/machines/vending.dmi differ diff --git a/icons/obj/mafia.dmi b/icons/obj/mafia.dmi index 7c3b525c0055..49e3e5767480 100644 Binary files a/icons/obj/mafia.dmi and b/icons/obj/mafia.dmi differ diff --git a/icons/obj/medical/chemical_tanks.dmi b/icons/obj/medical/chemical_tanks.dmi index 41f859b1d9ef..96582c2ae299 100644 Binary files a/icons/obj/medical/chemical_tanks.dmi and b/icons/obj/medical/chemical_tanks.dmi differ diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index 5f045ac4f9b5..cadfac4b9928 100644 Binary files a/icons/obj/medical/organs/organs.dmi and b/icons/obj/medical/organs/organs.dmi differ diff --git a/icons/obj/medical/reagent_fillings.dmi b/icons/obj/medical/reagent_fillings.dmi index 67da42a4d31d..c60fa1c7d30f 100644 Binary files a/icons/obj/medical/reagent_fillings.dmi and b/icons/obj/medical/reagent_fillings.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 7a83f5d05b15..70f5aaa62be5 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/poster.dmi b/icons/obj/poster.dmi index c497daaf177e..0ba8b30a047d 100644 Binary files a/icons/obj/poster.dmi and b/icons/obj/poster.dmi differ diff --git a/icons/obj/science/vatgrowing.dmi b/icons/obj/science/vatgrowing.dmi index ec8b5dcb6acd..4d25046ea764 100644 Binary files a/icons/obj/science/vatgrowing.dmi and b/icons/obj/science/vatgrowing.dmi differ diff --git a/icons/obj/service/hydroponics/equipment.dmi b/icons/obj/service/hydroponics/equipment.dmi index d2939bde7ff3..73166cd179d9 100644 Binary files a/icons/obj/service/hydroponics/equipment.dmi and b/icons/obj/service/hydroponics/equipment.dmi differ diff --git a/icons/obj/service/library.dmi b/icons/obj/service/library.dmi index 7a37ac0e8cc3..fd00e701de64 100644 Binary files a/icons/obj/service/library.dmi and b/icons/obj/service/library.dmi differ diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_bamboo.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_bamboo.png.toml index ca6044375c0c..29fa4cca0ff4 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_bamboo.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_bamboo.png.toml @@ -8,7 +8,3 @@ y = 33 [output_icon_size] x = 32 y = 33 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_bronze.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_bronze.png.toml index ef568da6ab27..9a8326a93bcc 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_bronze.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_bronze.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_bronze" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_cult.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_cult.png.toml index 12914b352a14..eb9c06599673 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_cult.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_cult.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_cult" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_gold.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_gold.png.toml index 4e6708939b46..528983bb0509 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_gold.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_gold.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_gold" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_iron.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_iron.png.toml index f3ccff491485..db015e176b95 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_iron.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_iron.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_iron" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_material.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_material.png.toml index 7e11ef273921..4a19e2b0fafb 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_material.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_material.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_material" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_normal.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_normal.png.toml index 90dbfccbbcd2..b66c79fe0834 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_normal.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_normal.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_normal" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_paperframe.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_paperframe.png.toml index ee2a4a251e8f..ef7ad65c2c1d 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_paperframe.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_paperframe.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_paperframe" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_pizza.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_pizza.png.toml index ee2a4a251e8f..ef7ad65c2c1d 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_pizza.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_pizza.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_paperframe" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_plastitanium.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_plastitanium.png.toml index 722035c4576f..36cf38c58322 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_plastitanium.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_plastitanium.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_plastitanium" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_rusty.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_rusty.png.toml index 80f7eeffc4fc..fd608c6597ce 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_rusty.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_rusty.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_rusty" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_sandstone.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_sandstone.png.toml index 80f7eeffc4fc..fd608c6597ce 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_sandstone.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_sandstone.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_rusty" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_shuttle.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_shuttle.png.toml index 7b69b502b72d..8f1ebaabb6be 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_shuttle.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_shuttle.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_shuttle" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_silver.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_silver.png.toml index 0785dc4d1c73..bdc754a95b2b 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_silver.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_silver.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_silver" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 \ No newline at end of file diff --git a/icons/obj/smooth_structures/platform/frame_faces/window_frame_uranium.png.toml b/icons/obj/smooth_structures/platform/frame_faces/window_frame_uranium.png.toml index 7d811bf0c73a..cbff8857a536 100644 --- a/icons/obj/smooth_structures/platform/frame_faces/window_frame_uranium.png.toml +++ b/icons/obj/smooth_structures/platform/frame_faces/window_frame_uranium.png.toml @@ -1,14 +1,2 @@ output_name = "window_frame_uranium" template = "bitmask/diagonal_32x32.toml" - -[icon_size] -x = 32 -y = 32 - -[output_icon_size] -x = 32 -y = 32 - -[cut_pos] -x = 16 -y = 16 diff --git a/icons/obj/storage/closet.dmi b/icons/obj/storage/closet.dmi index 730a3633df0a..6f5c4c1b8954 100644 Binary files a/icons/obj/storage/closet.dmi and b/icons/obj/storage/closet.dmi differ diff --git a/icons/obj/storage/storage.dmi b/icons/obj/storage/storage.dmi index f77d72dcebdf..744cfab27e18 100644 Binary files a/icons/obj/storage/storage.dmi and b/icons/obj/storage/storage.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index efcdf35d75ba..08d8f436402b 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/obj/weapons/guns/ammo.dmi b/icons/obj/weapons/guns/ammo.dmi index 183e67da699c..37533a6cdeb4 100644 Binary files a/icons/obj/weapons/guns/ammo.dmi and b/icons/obj/weapons/guns/ammo.dmi differ diff --git a/icons/obj/weapons/guns/projectiles_impact.dmi b/icons/obj/weapons/guns/projectiles_impact.dmi index 710507d4c85a..5aea86fa8dcb 100644 Binary files a/icons/obj/weapons/guns/projectiles_impact.dmi and b/icons/obj/weapons/guns/projectiles_impact.dmi differ diff --git a/icons/obj/weapons/guns/projectiles_muzzle.dmi b/icons/obj/weapons/guns/projectiles_muzzle.dmi index 9bf78ba4a539..095102f6d894 100644 Binary files a/icons/obj/weapons/guns/projectiles_muzzle.dmi and b/icons/obj/weapons/guns/projectiles_muzzle.dmi differ diff --git a/icons/obj/weapons/guns/projectiles_tracer.dmi b/icons/obj/weapons/guns/projectiles_tracer.dmi index ba3bd1f93776..d7246394e689 100644 Binary files a/icons/obj/weapons/guns/projectiles_tracer.dmi and b/icons/obj/weapons/guns/projectiles_tracer.dmi differ diff --git a/icons/obj/weapons/guns/wide_guns.dmi b/icons/obj/weapons/guns/wide_guns.dmi index e7f28f2ec38f..15a281a3c1a1 100644 Binary files a/icons/obj/weapons/guns/wide_guns.dmi and b/icons/obj/weapons/guns/wide_guns.dmi differ diff --git a/icons/obj/weapons/improvised.dmi b/icons/obj/weapons/improvised.dmi index a98d5cad860d..dc24804c54a4 100644 Binary files a/icons/obj/weapons/improvised.dmi and b/icons/obj/weapons/improvised.dmi differ diff --git a/icons/obj/weapons/transforming_energy.dmi b/icons/obj/weapons/transforming_energy.dmi index 44191656e894..6c664b2a0635 100644 Binary files a/icons/obj/weapons/transforming_energy.dmi and b/icons/obj/weapons/transforming_energy.dmi differ diff --git a/icons/obj/weapons/whip.dmi b/icons/obj/weapons/whip.dmi index b067b11af5b8..884c496ae8e7 100644 Binary files a/icons/obj/weapons/whip.dmi and b/icons/obj/weapons/whip.dmi differ diff --git a/icons/obj/wind_turbine.dmi b/icons/obj/wind_turbine.dmi new file mode 100644 index 000000000000..ed3cec49443c Binary files /dev/null and b/icons/obj/wind_turbine.dmi differ diff --git a/icons/turf/decals.dmi b/icons/turf/decals.dmi index a8d4b0b32d76..3d8c170cf885 100644 Binary files a/icons/turf/decals.dmi and b/icons/turf/decals.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index ea6d10e15ecc..8e7a10bc6571 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/smooth_wall.dmi b/icons/turf/smooth_wall.dmi index e46ea0ae7789..d7d58faded2e 100644 Binary files a/icons/turf/smooth_wall.dmi and b/icons/turf/smooth_wall.dmi differ diff --git a/icons/turf/smooth_wall.png b/icons/turf/smooth_wall.png new file mode 100644 index 000000000000..a13fd5985bc7 Binary files /dev/null and b/icons/turf/smooth_wall.png differ diff --git a/icons/turf/smooth_wall.png.toml b/icons/turf/smooth_wall.png.toml new file mode 100644 index 000000000000..9804c0e9ced2 --- /dev/null +++ b/icons/turf/smooth_wall.png.toml @@ -0,0 +1,2 @@ +output_name = "smooth_wall" +template = "bitmask/diagonal_corner_32x32" diff --git a/icons/turf/space.dmi b/icons/turf/space.dmi index 5123f115876b..e115c405954b 100644 Binary files a/icons/turf/space.dmi and b/icons/turf/space.dmi differ diff --git a/icons/turf/walls/abductor_wall.dmi b/icons/turf/walls/abductor_wall.dmi index 4f731d99f4cd..fbec7aeca5e9 100644 Binary files a/icons/turf/walls/abductor_wall.dmi and b/icons/turf/walls/abductor_wall.dmi differ diff --git a/icons/turf/walls/abductor_wall.png b/icons/turf/walls/abductor_wall.png new file mode 100644 index 000000000000..b42e86351025 Binary files /dev/null and b/icons/turf/walls/abductor_wall.png differ diff --git a/icons/turf/walls/abductor_wall.png.toml b/icons/turf/walls/abductor_wall.png.toml new file mode 100644 index 000000000000..f7ae578260f8 --- /dev/null +++ b/icons/turf/walls/abductor_wall.png.toml @@ -0,0 +1,2 @@ +output_name = "abductor_wall" +template = "bitmask/diagonal_corner_32x32" diff --git a/icons/turf/walls/misc_wall.dmi b/icons/turf/walls/misc_wall.dmi new file mode 100644 index 000000000000..99f0a553a017 Binary files /dev/null and b/icons/turf/walls/misc_wall.dmi differ diff --git a/icons/turf/walls/plastinum_wall.dmi b/icons/turf/walls/plastinum_wall.dmi index 30ea5dbf945a..7d9880abb05f 100644 Binary files a/icons/turf/walls/plastinum_wall.dmi and b/icons/turf/walls/plastinum_wall.dmi differ diff --git a/icons/turf/walls/plastinum_wall.png b/icons/turf/walls/plastinum_wall.png new file mode 100644 index 000000000000..9f26835b5613 Binary files /dev/null and b/icons/turf/walls/plastinum_wall.png differ diff --git a/icons/turf/walls/plastinum_wall.png.toml b/icons/turf/walls/plastinum_wall.png.toml new file mode 100644 index 000000000000..dfd0ce9953ad --- /dev/null +++ b/icons/turf/walls/plastinum_wall.png.toml @@ -0,0 +1,2 @@ +output_name = "plastinum_wall" +template = "bitmask/diagonal_corner_32x32" diff --git a/icons/turf/walls/plastitanium_wall.dmi b/icons/turf/walls/plastitanium_wall.dmi index 078d4642785a..ec1d09356f12 100644 Binary files a/icons/turf/walls/plastitanium_wall.dmi and b/icons/turf/walls/plastitanium_wall.dmi differ diff --git a/icons/turf/walls/plastitanium_wall.png b/icons/turf/walls/plastitanium_wall.png new file mode 100644 index 000000000000..1e5c17c5a158 Binary files /dev/null and b/icons/turf/walls/plastitanium_wall.png differ diff --git a/icons/turf/walls/plastitanium_wall.png.toml b/icons/turf/walls/plastitanium_wall.png.toml new file mode 100644 index 000000000000..48e4487f3612 --- /dev/null +++ b/icons/turf/walls/plastitanium_wall.png.toml @@ -0,0 +1,2 @@ +output_name = "plastitanium_wall" +template = "bitmask/diagonal_corner_32x32" diff --git a/icons/turf/walls/shuttle_wall.dmi b/icons/turf/walls/shuttle_wall.dmi index 3d9374b4a30d..f11a7dce2db2 100644 Binary files a/icons/turf/walls/shuttle_wall.dmi and b/icons/turf/walls/shuttle_wall.dmi differ diff --git a/icons/turf/walls/shuttle_wall.png b/icons/turf/walls/shuttle_wall.png new file mode 100644 index 000000000000..b3166417938b Binary files /dev/null and b/icons/turf/walls/shuttle_wall.png differ diff --git a/icons/turf/walls/shuttle_wall.png.toml b/icons/turf/walls/shuttle_wall.png.toml new file mode 100644 index 000000000000..87655f3687dd --- /dev/null +++ b/icons/turf/walls/shuttle_wall.png.toml @@ -0,0 +1,2 @@ +output_name = "shuttle_wall" +template = "bitmask/diagonal_corner_32x32.toml" diff --git a/icons/turf/walls/survival_pod_walls.dmi b/icons/turf/walls/survival_pod_walls.dmi index 01700f1ed6f9..74ea1da99ef8 100644 Binary files a/icons/turf/walls/survival_pod_walls.dmi and b/icons/turf/walls/survival_pod_walls.dmi differ diff --git a/icons/turf/walls/survival_pod_walls.png b/icons/turf/walls/survival_pod_walls.png new file mode 100644 index 000000000000..c3eb4b8e1c3b Binary files /dev/null and b/icons/turf/walls/survival_pod_walls.png differ diff --git a/icons/turf/walls/survival_pod_walls.png.toml b/icons/turf/walls/survival_pod_walls.png.toml new file mode 100644 index 000000000000..ea4f6553fa30 --- /dev/null +++ b/icons/turf/walls/survival_pod_walls.png.toml @@ -0,0 +1,2 @@ +output_name = "survival_pod_walls" +template = "bitmask/diagonal_corner_32x32" diff --git a/rust_g.dll b/rust_g.dll index 4401dd48583d..ee66aafe9d3f 100644 Binary files a/rust_g.dll and b/rust_g.dll differ diff --git a/sound/attributions.txt b/sound/attributions.txt index 9ffbe3d39eec..a45b2c7b5c4b 100644 --- a/sound/attributions.txt +++ b/sound/attributions.txt @@ -235,4 +235,6 @@ sound/effects/siren.ogg -- siren.wav by IFartInUrGeneralDirection -- https://fre sound/mobs/non-humanoids/stoats/stoat_sound.ogg -- https://suche.tierstimmenarchiv.de/ -sounds/mobs/humanoids/shadow/shadow_wail.ogg -- https://freesound.org/people/Robinhood76/sounds/585631/ -- License: Attribution 4.0 \ No newline at end of file +sounds/mobs/humanoids/shadow/shadow_wail.ogg -- https://freesound.org/people/Robinhood76/sounds/585631/ -- License: Attribution 4.0 + +sound/mobs/non-humanoids/roro/roro_warble.ogg -- Made by cutting, adjusting pitch, and adding echo of https://freesound.org/people/danlucaz/sounds/517734/ -- License: Creating Commons 0 \ No newline at end of file diff --git a/sound/items/weapons/gun/tesla/attributions.txt b/sound/items/weapons/gun/tesla/attributions.txt new file mode 100644 index 000000000000..c0584097eb97 --- /dev/null +++ b/sound/items/weapons/gun/tesla/attributions.txt @@ -0,0 +1,7 @@ +{ + tesla_loop.ogg - https://freesound.org/people/Department64/sounds/554749/, License: CC BY 4.0 + tesla_start.ogg - https://freesound.org/people/Department64/sounds/554749/, https://freesound.org/people/iainmccurdy/sounds/759257/, License: CC BY 4.0 + click_creak.ogg - https://freesound.org/people/Sonicquinn/sounds/435834/, https://freesound.org/people/holisoysilvi/sounds/610182/, License: CC 0 + squeak_latch.ogg - https://freesound.org/people/Sonicquinn/sounds/435834/, https://freesound.org/people/holisoysilvi/sounds/610182/, License: CC 0 + power_breaker_fan.ogg - https://freesound.org/people/Yoyodaman234/sounds/183544/, https://freesound.org/people/jessepash/sounds/139970/, https://freesound.org/people/sribubba/sounds/130154/, License: CC 0 +} \ No newline at end of file diff --git a/sound/items/weapons/gun/tesla/click_creak.ogg b/sound/items/weapons/gun/tesla/click_creak.ogg new file mode 100644 index 000000000000..10327062765e Binary files /dev/null and b/sound/items/weapons/gun/tesla/click_creak.ogg differ diff --git a/sound/items/weapons/gun/tesla/power_breaker_fan.ogg b/sound/items/weapons/gun/tesla/power_breaker_fan.ogg new file mode 100644 index 000000000000..7896f50e46b9 Binary files /dev/null and b/sound/items/weapons/gun/tesla/power_breaker_fan.ogg differ diff --git a/sound/items/weapons/gun/tesla/squeak_latch.ogg b/sound/items/weapons/gun/tesla/squeak_latch.ogg new file mode 100644 index 000000000000..773aefcb32b5 Binary files /dev/null and b/sound/items/weapons/gun/tesla/squeak_latch.ogg differ diff --git a/sound/items/weapons/gun/tesla/tesla_loop.ogg b/sound/items/weapons/gun/tesla/tesla_loop.ogg new file mode 100644 index 000000000000..3cafcbf5a6cb Binary files /dev/null and b/sound/items/weapons/gun/tesla/tesla_loop.ogg differ diff --git a/sound/items/weapons/gun/tesla/tesla_start.ogg b/sound/items/weapons/gun/tesla/tesla_start.ogg new file mode 100644 index 000000000000..4869cee74594 Binary files /dev/null and b/sound/items/weapons/gun/tesla/tesla_start.ogg differ diff --git a/sound/machines/woosh.ogg b/sound/machines/woosh.ogg new file mode 100644 index 000000000000..313d12523fdc Binary files /dev/null and b/sound/machines/woosh.ogg differ diff --git a/sound/mobs/non-humanoids/roro/roro_warble.ogg b/sound/mobs/non-humanoids/roro/roro_warble.ogg new file mode 100644 index 000000000000..5a7809ae1bb4 Binary files /dev/null and b/sound/mobs/non-humanoids/roro/roro_warble.ogg differ diff --git a/strings/names/posibrain.txt b/strings/names/posibrain.txt index 0662d34b27b1..73b13aabe87e 100644 --- a/strings/names/posibrain.txt +++ b/strings/names/posibrain.txt @@ -48,6 +48,7 @@ PKP RR RZH SANS +SCR SINA SLI STLP diff --git a/tgstation.dme b/tgstation.dme index b9aa093b989a..0f20c40f0218 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -556,10 +556,14 @@ #include "code\_globalvars\lists\canisters.dm" #include "code\_globalvars\lists\cargo.dm" #include "code\_globalvars\lists\client.dm" +#include "code\_globalvars\lists\clothing.dm" #include "code\_globalvars\lists\color.dm" +#include "code\_globalvars\lists\communication.dm" #include "code\_globalvars\lists\crafting.dm" +#include "code\_globalvars\lists\department.dm" +#include "code\_globalvars\lists\disposals.dm" #include "code\_globalvars\lists\engineering.dm" -#include "code\_globalvars\lists\flavor_misc.dm" +#include "code\_globalvars\lists\ghost.dm" #include "code\_globalvars\lists\icons.dm" #include "code\_globalvars\lists\keybindings.dm" #include "code\_globalvars\lists\maintenance_loot.dm" @@ -576,6 +580,9 @@ #include "code\_globalvars\lists\reagents.dm" #include "code\_globalvars\lists\rtd.dm" #include "code\_globalvars\lists\silo.dm" +#include "code\_globalvars\lists\sound.dm" +#include "code\_globalvars\lists\status_display.dm" +#include "code\_globalvars\lists\strings.dm" #include "code\_globalvars\lists\typecache.dm" #include "code\_globalvars\lists\wiremod.dm" #include "code\_globalvars\lists\xenobiology.dm" @@ -864,6 +871,7 @@ #include "code\datums\world_topic.dm" #include "code\datums\achievements\_achievement_data.dm" #include "code\datums\achievements\_awards.dm" +#include "code\datums\achievements\admin_panel.dm" #include "code\datums\achievements\boss_achievements.dm" #include "code\datums\achievements\boss_scores.dm" #include "code\datums\achievements\job_achievements.dm" @@ -1461,6 +1469,7 @@ #include "code\datums\dna\blocks\dna_features_block.dm" #include "code\datums\dna\blocks\dna_identity_block.dm" #include "code\datums\elements\_element.dm" +#include "code\datums\elements\above_mob_drop.dm" #include "code\datums\elements\ai_control_examine.dm" #include "code\datums\elements\ai_flee_while_injured.dm" #include "code\datums\elements\ai_held_item.dm" @@ -1741,6 +1750,7 @@ #include "code\datums\martial\plasma_fist.dm" #include "code\datums\martial\psychotic_brawl.dm" #include "code\datums\martial\sleeping_carp.dm" +#include "code\datums\martial\spiders_bite.dm" #include "code\datums\martial\wrestling.dm" #include "code\datums\materials\_material.dm" #include "code\datums\materials\alloys.dm" @@ -2366,15 +2376,18 @@ #include "code\game\objects\effects\anomalies\anomalies_hallucination.dm" #include "code\game\objects\effects\anomalies\anomalies_pyroclastic.dm" #include "code\game\objects\effects\anomalies\anomalies_vortex.dm" +#include "code\game\objects\effects\decals\chemspray.dm" #include "code\game\objects\effects\decals\cleanable.dm" #include "code\game\objects\effects\decals\crayon.dm" #include "code\game\objects\effects\decals\decal.dm" -#include "code\game\objects\effects\decals\misc.dm" #include "code\game\objects\effects\decals\remains.dm" +#include "code\game\objects\effects\decals\structure.dm" #include "code\game\objects\effects\decals\cleanable\aliens.dm" +#include "code\game\objects\effects\decals\cleanable\ants.dm" #include "code\game\objects\effects\decals\cleanable\blood.dm" #include "code\game\objects\effects\decals\cleanable\food.dm" -#include "code\game\objects\effects\decals\cleanable\misc.dm" +#include "code\game\objects\effects\decals\cleanable\fuel.dm" +#include "code\game\objects\effects\decals\cleanable\mess.dm" #include "code\game\objects\effects\decals\cleanable\robots.dm" #include "code\game\objects\effects\decals\turfdecal\dirt.dm" #include "code\game\objects\effects\decals\turfdecal\markings.dm" @@ -2391,10 +2404,12 @@ #include "code\game\objects\effects\effect_system\fluid_spread\effects_smoke.dm" #include "code\game\objects\effects\landmarks\atmospherics_sanity_landmarks.dm" #include "code\game\objects\effects\particles\acid.dm" +#include "code\game\objects\effects\particles\echo.dm" #include "code\game\objects\effects\particles\fire.dm" +#include "code\game\objects\effects\particles\food.dm" #include "code\game\objects\effects\particles\gravity.dm" -#include "code\game\objects\effects\particles\misc.dm" #include "code\game\objects\effects\particles\note_particles.dm" +#include "code\game\objects\effects\particles\plant.dm" #include "code\game\objects\effects\particles\slime.dm" #include "code\game\objects\effects\particles\smoke.dm" #include "code\game\objects\effects\particles\water.dm" @@ -2543,6 +2558,7 @@ #include "code\game\objects\items\wall_mounted.dm" #include "code\game\objects\items\weaponry.dm" #include "code\game\objects\items\wiki_manuals.dm" +#include "code\game\objects\items\wind_turbine.dm" #include "code\game\objects\items\wizard_clothes.dm" #include "code\game\objects\items\wizard_weapons.dm" #include "code\game\objects\items\AI_modules\_AI_modules.dm" @@ -2667,6 +2683,7 @@ #include "code\game\objects\items\granters\martial_arts\cqc.dm" #include "code\game\objects\items\granters\martial_arts\plasma_fist.dm" #include "code\game\objects\items\granters\martial_arts\sleeping_carp.dm" +#include "code\game\objects\items\granters\martial_arts\spider_bite.dm" #include "code\game\objects\items\grenades\_grenade.dm" #include "code\game\objects\items\grenades\antigravity.dm" #include "code\game\objects\items\grenades\atmos_grenades.dm" @@ -2875,6 +2892,7 @@ #include "code\game\objects\structures\spirit_board.dm" #include "code\game\objects\structures\stairs.dm" #include "code\game\objects\structures\steps.dm" +#include "code\game\objects\structures\syndicate_uplink_beacon.dm" #include "code\game\objects\structures\table_frames.dm" #include "code\game\objects\structures\tables_racks.dm" #include "code\game\objects\structures\tank_dispenser.dm" @@ -3460,13 +3478,40 @@ #include "code\modules\antagonists\spy\spy_uplink.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" #include "code\modules\antagonists\syndicate_monkey\syndicate_monkey.dm" +#include "code\modules\antagonists\traitor\balance_helper.dm" #include "code\modules\antagonists\traitor\datum_traitor.dm" +#include "code\modules\antagonists\traitor\objective_category.dm" +#include "code\modules\antagonists\traitor\traitor_objective.dm" #include "code\modules\antagonists\traitor\uplink_handler.dm" #include "code\modules\antagonists\traitor\components\demoraliser.dm" +#include "code\modules\antagonists\traitor\components\traitor_objective_helpers.dm" +#include "code\modules\antagonists\traitor\components\traitor_objective_limit_per_time.dm" +#include "code\modules\antagonists\traitor\components\traitor_objective_mind_tracker.dm" #include "code\modules\antagonists\traitor\contractor\contract_teammate.dm" #include "code\modules\antagonists\traitor\contractor\contractor_hub.dm" #include "code\modules\antagonists\traitor\contractor\contractor_items.dm" #include "code\modules\antagonists\traitor\contractor\syndicate_contract.dm" +#include "code\modules\antagonists\traitor\objectives\assassination.dm" +#include "code\modules\antagonists\traitor\objectives\demoralise_assault.dm" +#include "code\modules\antagonists\traitor\objectives\destroy_heirloom.dm" +#include "code\modules\antagonists\traitor\objectives\destroy_item.dm" +#include "code\modules\antagonists\traitor\objectives\eyesnatching.dm" +#include "code\modules\antagonists\traitor\objectives\hack_comm_console.dm" +#include "code\modules\antagonists\traitor\objectives\infect.dm" +#include "code\modules\antagonists\traitor\objectives\kidnapping.dm" +#include "code\modules\antagonists\traitor\objectives\kill_pet.dm" +#include "code\modules\antagonists\traitor\objectives\locate_weakpoint.dm" +#include "code\modules\antagonists\traitor\objectives\sabotage_machinery.dm" +#include "code\modules\antagonists\traitor\objectives\steal.dm" +#include "code\modules\antagonists\traitor\objectives\abstract\target_player.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\battle_royale.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\battlecruiser.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\final_objective.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\infect_ai.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\no_escape.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\objective_dark_matteor.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\romerol.dm" +#include "code\modules\antagonists\traitor\objectives\final_objective\supermatter_cascade.dm" #include "code\modules\antagonists\valentines\heartbreaker.dm" #include "code\modules\antagonists\valentines\valentine.dm" #include "code\modules\antagonists\venus_human_trap\venus_human_trap.dm" @@ -3694,7 +3739,6 @@ #include "code\modules\bitrunning\abilities.dm" #include "code\modules\bitrunning\alerts.dm" #include "code\modules\bitrunning\areas.dm" -#include "code\modules\bitrunning\designs.dm" #include "code\modules\bitrunning\event.dm" #include "code\modules\bitrunning\job.dm" #include "code\modules\bitrunning\outfits.dm" @@ -4732,8 +4776,8 @@ #include "code\modules\mafia\map_pieces.dm" #include "code\modules\mafia\outfits.dm" #include "code\modules\mafia\abilities\abilities.dm" +#include "code\modules\mafia\abilities\investigative\autopsy.dm" #include "code\modules\mafia\abilities\investigative\investigate.dm" -#include "code\modules\mafia\abilities\investigative\pray.dm" #include "code\modules\mafia\abilities\investigative\reveal.dm" #include "code\modules\mafia\abilities\investigative\thoughtfeed.dm" #include "code\modules\mafia\abilities\killing\alert.dm" @@ -4742,6 +4786,7 @@ #include "code\modules\mafia\abilities\protective\heal.dm" #include "code\modules\mafia\abilities\protective\vest.dm" #include "code\modules\mafia\abilities\support\roleblock.dm" +#include "code\modules\mafia\abilities\support\seance.dm" #include "code\modules\mafia\abilities\support\self_reveal.dm" #include "code\modules\mafia\abilities\voting\changeling_kill.dm" #include "code\modules\mafia\abilities\voting\day_voting.dm" @@ -4774,6 +4819,7 @@ #include "code\modules\mapfluff\ruins\icemoonruin_code\library.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\mailroom.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\mining_site.dm" +#include "code\modules\mapfluff\ruins\icemoonruin_code\roroco.dm" #include "code\modules\mapfluff\ruins\icemoonruin_code\wrath.dm" #include "code\modules\mapfluff\ruins\lavalandruin_code\biodome_clown_planet.dm" #include "code\modules\mapfluff\ruins\lavalandruin_code\biodome_winter.dm" @@ -5231,6 +5277,7 @@ #include "code\modules\mob\living\basic\space_fauna\morph.dm" #include "code\modules\mob\living\basic\space_fauna\mushroom.dm" #include "code\modules\mob\living\basic\space_fauna\robot_customer.dm" +#include "code\modules\mob\living\basic\space_fauna\roro.dm" #include "code\modules\mob\living\basic\space_fauna\spaceman.dm" #include "code\modules\mob\living\basic\space_fauna\supermatter_spider.dm" #include "code\modules\mob\living\basic\space_fauna\bear\_bear.dm" @@ -5579,6 +5626,7 @@ #include "code\modules\modular_computers\file_system\programs\budgetordering.dm" #include "code\modules\modular_computers\file_system\programs\card.dm" #include "code\modules\modular_computers\file_system\programs\cargoship.dm" +#include "code\modules\modular_computers\file_system\programs\civilian_bounty.dm" #include "code\modules\modular_computers\file_system\programs\coupon.dm" #include "code\modules\modular_computers\file_system\programs\crewmanifest.dm" #include "code\modules\modular_computers\file_system\programs\dept_order.dm" @@ -5623,11 +5671,11 @@ #include "code\modules\modular_computers\file_system\programs\messenger\messenger_data.dm" #include "code\modules\modular_computers\file_system\programs\messenger\messenger_program.dm" #include "code\modules\movespeed\_movespeed_modifier.dm" +#include "code\modules\movespeed\modifiers\admin.dm" #include "code\modules\movespeed\modifiers\components.dm" #include "code\modules\movespeed\modifiers\drugs.dm" #include "code\modules\movespeed\modifiers\innate.dm" #include "code\modules\movespeed\modifiers\items.dm" -#include "code\modules\movespeed\modifiers\misc.dm" #include "code\modules\movespeed\modifiers\mobs.dm" #include "code\modules\movespeed\modifiers\reagent.dm" #include "code\modules\movespeed\modifiers\status_effects.dm" @@ -5951,13 +5999,14 @@ #include "code\modules\reagents\reagent_containers\blood_pack.dm" #include "code\modules\reagents\reagent_containers\chem_pack.dm" #include "code\modules\reagents\reagent_containers\condiment.dm" +#include "code\modules\reagents\reagent_containers\cooler_jug.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm" #include "code\modules\reagents\reagent_containers\jerrycan.dm" #include "code\modules\reagents\reagent_containers\medigel.dm" -#include "code\modules\reagents\reagent_containers\misc.dm" #include "code\modules\reagents\reagent_containers\patch.dm" #include "code\modules\reagents\reagent_containers\pill.dm" +#include "code\modules\reagents\reagent_containers\rag.dm" #include "code\modules\reagents\reagent_containers\spray.dm" #include "code\modules\reagents\reagent_containers\syringes.dm" #include "code\modules\reagents\reagent_containers\watering_can.dm" @@ -5967,6 +6016,7 @@ #include "code\modules\reagents\reagent_containers\cups\drinkingglass.dm" #include "code\modules\reagents\reagent_containers\cups\drinks.dm" #include "code\modules\reagents\reagent_containers\cups\glassbottle.dm" +#include "code\modules\reagents\reagent_containers\cups\mauna_mug.dm" #include "code\modules\reagents\reagent_containers\cups\organ_jar.dm" #include "code\modules\reagents\reagent_containers\cups\soda.dm" #include "code\modules\reagents\withdrawal\_addiction.dm" @@ -6099,6 +6149,7 @@ #include "code\modules\research\xenobiology\vatgrowing\samples\_micro_organism.dm" #include "code\modules\research\xenobiology\vatgrowing\samples\_sample.dm" #include "code\modules\research\xenobiology\vatgrowing\samples\cell_lines\common.dm" +#include "code\modules\research\xenobiology\vatgrowing\samples\cell_lines\organs.dm" #include "code\modules\research\xenobiology\vatgrowing\samples\viruses\_virus.dm" #include "code\modules\security_levels\keycard_authentication.dm" #include "code\modules\security_levels\security_level_datums.dm" @@ -6462,7 +6513,6 @@ #include "code\modules\vehicles\mecha\combat\durand.dm" #include "code\modules\vehicles\mecha\combat\gygax.dm" #include "code\modules\vehicles\mecha\combat\honker.dm" -#include "code\modules\vehicles\mecha\combat\justice.dm" #include "code\modules\vehicles\mecha\combat\marauder.dm" #include "code\modules\vehicles\mecha\combat\phazon.dm" #include "code\modules\vehicles\mecha\combat\reticence.dm" @@ -6479,7 +6529,6 @@ #include "code\modules\vehicles\mecha\medical\odysseus.dm" #include "code\modules\vehicles\mecha\working\clarke.dm" #include "code\modules\vehicles\mecha\working\ripley.dm" -#include "code\modules\vending\_vending.dm" #include "code\modules\vending\assist.dm" #include "code\modules\vending\autodrobe.dm" #include "code\modules\vending\boozeomat.dm" @@ -6488,6 +6537,7 @@ #include "code\modules\vending\clothesmate.dm" #include "code\modules\vending\coffee.dm" #include "code\modules\vending\cola.dm" +#include "code\modules\vending\custom.dm" #include "code\modules\vending\cytopro.dm" #include "code\modules\vending\donk.dm" #include "code\modules\vending\drinnerware.dm" @@ -6512,9 +6562,16 @@ #include "code\modules\vending\sovietsoda.dm" #include "code\modules\vending\subtype.dm" #include "code\modules\vending\sustenance.dm" +#include "code\modules\vending\syndichem.dm" #include "code\modules\vending\toys.dm" #include "code\modules\vending\wardrobes.dm" #include "code\modules\vending\youtool.dm" +#include "code\modules\vending\vendor\_vending.dm" +#include "code\modules\vending\vendor\interaction.dm" +#include "code\modules\vending\vendor\inventory.dm" +#include "code\modules\vending\vendor\throwing.dm" +#include "code\modules\vending\vendor\tilting.dm" +#include "code\modules\vending\vendor\ui_data.dm" #include "code\modules\visuals\render_steps.dm" #include "code\modules\wiremod\components\abstract\assoc_list_variable.dm" #include "code\modules\wiremod\components\abstract\compare.dm" @@ -6680,32 +6737,4 @@ #include "interface\fonts\vcr_osd_mono.dm" #include "massmeta\modular_meta_features.dm" #include "modular_meta\main_modular_include.dm" -#include "code\game\objects\structures\syndicate_uplink_beacon.dm" -#include "code\modules\antagonists\traitor\objectives\assassination.dm" -#include "code\modules\antagonists\traitor\objectives\demoralise_assault.dm" -#include "code\modules\antagonists\traitor\objectives\destroy_heirloom.dm" -#include "code\modules\antagonists\traitor\objectives\destroy_item.dm" -#include "code\modules\antagonists\traitor\objectives\eyesnatching.dm" -#include "code\modules\antagonists\traitor\objectives\hack_comm_console.dm" -#include "code\modules\antagonists\traitor\objectives\infect.dm" -#include "code\modules\antagonists\traitor\objectives\kidnapping.dm" -#include "code\modules\antagonists\traitor\objectives\kill_pet.dm" -#include "code\modules\antagonists\traitor\objectives\locate_weakpoint.dm" -#include "code\modules\antagonists\traitor\objectives\sabotage_machinery.dm" -#include "code\modules\antagonists\traitor\objectives\steal.dm" -#include "code\modules\antagonists\traitor\objectives\abstract\target_player.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\battle_royale.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\battlecruiser.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\final_objective.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\infect_ai.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\no_escape.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\objective_dark_matteor.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\romerol.dm" -#include "code\modules\antagonists\traitor\objectives\final_objective\supermatter_cascade.dm" -#include "code\modules\antagonists\traitor\components\traitor_objective_helpers.dm" -#include "code\modules\antagonists\traitor\components\traitor_objective_limit_per_time.dm" -#include "code\modules\antagonists\traitor\components\traitor_objective_mind_tracker.dm" -#include "code\modules\antagonists\traitor\objective_category.dm" -#include "code\modules\antagonists\traitor\traitor_objective.dm" -#include "code\modules\antagonists\traitor\balance_helper.dm" // END_INCLUDE diff --git a/tgui/packages/tgui-panel/chat/renderer.jsx b/tgui/packages/tgui-panel/chat/renderer.jsx index e73df1aab0b8..4c30678367e8 100644 --- a/tgui/packages/tgui-panel/chat/renderer.jsx +++ b/tgui/packages/tgui-panel/chat/renderer.jsx @@ -218,17 +218,20 @@ class ChatRenderer { const lines = String(text) .split(',') .map((str) => str.trim()) - .filter( - (str) => - // Must be longer than one character - str && - str.length > 1 && - // Must be alphanumeric (with some punctuation) - (allowedRegex.test(str) || - (str.charAt(0) === '/' && str.charAt(str.length - 1) === '/')) && - // Reset lastIndex so it does not mess up the next word - ((allowedRegex.lastIndex = 0) || true), - ); + .filter((str) => { + // Must be longer than one character + if (!str || str.length <= 1) return false; + + // Must be alphanumeric (with some punctuation) + const isValidFormat = + allowedRegex.test(str) || + (str.charAt(0) === '/' && str.charAt(str.length - 1) === '/'); + + // Reset lastIndex so it does not mess up the next word + allowedRegex.lastIndex = 0; + + return isValidFormat; + }); let highlightWords; let highlightRegex; // Nothing to match, reset highlighting @@ -429,13 +432,14 @@ class ChatRenderer { const reactRoot = createRoot(childNode); - /* eslint-disable react/no-danger */ + // biome-ignore-start lint/security/noDangerouslySetInnerHtml: ignore reactRoot.render( , childNode, ); + // biome-ignore-end lint/security/noDangerouslySetInnerHtml: ignore } // Highlight text diff --git a/tgui/packages/tgui-panel/chat/replaceInTextNode.js b/tgui/packages/tgui-panel/chat/replaceInTextNode.ts similarity index 60% rename from tgui/packages/tgui-panel/chat/replaceInTextNode.js rename to tgui/packages/tgui-panel/chat/replaceInTextNode.ts index 171043ceb43a..f58ca0fe4fd3 100644 --- a/tgui/packages/tgui-panel/chat/replaceInTextNode.js +++ b/tgui/packages/tgui-panel/chat/replaceInTextNode.ts @@ -4,36 +4,51 @@ * @license MIT */ +type NodeCreator = (text: string) => Node; + +type ReplaceInTextNodeParams = { + node: Node; + regex: RegExp; + createNode: NodeCreator; + captureAdjust?: (str: string) => string; +}; + /** * Replaces text matching a regular expression with a custom node. */ -const regexParseNode = (params) => { +function regexParseNode(params: ReplaceInTextNodeParams): { + nodes: Node[]; + n: number; +} { const { node, regex, createNode, captureAdjust } = params; const text = node.textContent; + + if (!text || !regex) { + return { nodes: [], n: 0 }; + } + + const nodes: Node[] = []; const textLength = text.length; - let nodes; - let new_node; - let match; + let fragment: Node | undefined; + let count = 0; let lastIndex = 0; - let fragment; + let match: RegExpExecArray | null; let n = 0; - let count = 0; - // eslint-disable-next-line no-cond-assign - while ((match = regex.exec(text))) { + let new_node: Node; + + while (true) { + match = regex.exec(text); + if (!match) break; n += 1; - // Safety check to prevent permanent - // client crashing + // Safety check to prevent permanent client crashing if (++count > 9999) { - return {}; + return { nodes: [], n: 0 }; } // Lazy init fragment if (!fragment) { fragment = document.createDocumentFragment(); } - // Lazy init nodes - if (!nodes) { - nodes = []; - } + const matchText = captureAdjust ? captureAdjust(match[0]) : match[0]; const matchLength = matchText.length; // If matchText is set to be a substring nested within the original @@ -59,70 +74,72 @@ const regexParseNode = (params) => { fragment.appendChild(new_node); } // Commit the fragment - node.parentNode.replaceChild(fragment, node); + node.parentNode?.replaceChild(fragment, node); } return { nodes: nodes, n: n, }; -}; +} /** - * Replace text of a node with custom nades if they match + * Replace text of a node with custom nodes if they match * a regex expression or are in a word list */ -export const replaceInTextNode = (regex, words, createNode) => (node) => { - let nodes; - let result; - let n = 0; +export const replaceInTextNode = + (regex: RegExp, words: string[] | null, createNode: NodeCreator) => + (node: Node) => { + let nodes; + let result; + let n = 0; - if (regex) { - result = regexParseNode({ - node: node, - regex: regex, - createNode: createNode, - }); - nodes = result.nodes; - n += result.n; - } + if (regex) { + result = regexParseNode({ + node: node, + regex: regex, + createNode: createNode, + }); + nodes = result.nodes; + n += result.n; + } - if (words) { - let i = 0; - let wordRegexStr = '('; - for (const word of words) { - // Capture if the word is at the beginning, end, middle, - // or by itself in a message - wordRegexStr += `^${word}\\s\\W|\\s\\W${word}\\s\\W|\\s\\W${word}$|^${word}\\s\\W$`; - // Make sure the last character for the expression is NOT '|' - if (++i !== words.length) { - wordRegexStr += '|'; + if (words) { + let i = 0; + let wordRegexStr = '('; + for (const word of words) { + // Capture if the word is at the beginning, end, middle, + // or by itself in a message + wordRegexStr += `^${word}\\s\\W|\\s\\W${word}\\s\\W|\\s\\W${word}$|^${word}\\s\\W$`; + // Make sure the last character for the expression is NOT '|' + if (++i !== words.length) { + wordRegexStr += '|'; + } } - } - wordRegexStr += ')'; - const wordRegex = new RegExp(wordRegexStr, 'gi'); - if (regex && nodes) { - for (const a_node of nodes) { + wordRegexStr += ')'; + const wordRegex = new RegExp(wordRegexStr, 'gi'); + if (regex && nodes) { + for (const a_node of nodes) { + result = regexParseNode({ + node: a_node, + regex: wordRegex, + createNode: createNode, + captureAdjust: (str) => str.replace(/^\W|\W$/g, ''), + }); + n += result.n; + } + } else { result = regexParseNode({ - node: a_node, + node: node, regex: wordRegex, createNode: createNode, captureAdjust: (str) => str.replace(/^\W|\W$/g, ''), }); n += result.n; } - } else { - result = regexParseNode({ - node: node, - regex: wordRegex, - createNode: createNode, - captureAdjust: (str) => str.replace(/^\W|\W$/g, ''), - }); - n += result.n; } - } - return n; -}; + return n; + }; // Highlight // -------------------------------------------------------- @@ -130,27 +147,25 @@ export const replaceInTextNode = (regex, words, createNode) => (node) => { /** * Default highlight node. */ -const createHighlightNode = (text) => { +function createHighlightNode(text: string): Node { const node = document.createElement('span'); node.setAttribute('style', 'background-color:#fd4;color:#000'); node.textContent = text; return node; -}; +} /** * Highlights the text in the node based on the provided regular expression. - * - * @param {Node} node Node which you want to process - * @param {RegExp} regex Regular expression to highlight - * @param {(text: string) => Node} createNode Highlight node creator - * @returns {number} Number of matches */ -export const highlightNode = ( - node, - regex, - words, - createNode = createHighlightNode, -) => { +export function highlightNode( + /** Node which you want to process */ + node: Node, + /** Regular expression to highlight */ + regex: RegExp, + /** List of words to highlight */ + words: string[], + createNode: NodeCreator = createHighlightNode, +): number { if (!createNode) { createNode = createHighlightNode; } @@ -166,7 +181,7 @@ export const highlightNode = ( } } return n; -}; +} // Linkify // -------------------------------------------------------- @@ -176,11 +191,8 @@ const URL_REGEX = /** * Highlights the text in the node based on the provided regular expression. - * - * @param {Node} node Node which you want to process - * @returns {number} Number of matches */ -export const linkifyNode = (node) => { +export function linkifyNode(node: Node): number { let n = 0; const childNodes = node.childNodes; for (let i = 0; i < childNodes.length; i++) { @@ -194,7 +206,7 @@ export const linkifyNode = (node) => { } } return n; -}; +} const linkifyTextNode = replaceInTextNode(URL_REGEX, null, (text) => { const node = document.createElement('a'); diff --git a/tgui/packages/tgui-setup/helpers.js b/tgui/packages/tgui-setup/helpers.js index 4ac03c083187..f4965d635b5d 100644 --- a/tgui/packages/tgui-setup/helpers.js +++ b/tgui/packages/tgui-setup/helpers.js @@ -1,5 +1,3 @@ -/* eslint-disable */ - (function () { // Utility functions var hasOwn = Object.prototype.hasOwnProperty; diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts index 59833af5798d..83afa926022c 100644 --- a/tgui/packages/tgui/backend.ts +++ b/tgui/packages/tgui/backend.ts @@ -209,7 +209,10 @@ export const backendMiddleware = (store) => { suspendRenderer(); clearInterval(suspendInterval); suspendInterval = undefined; + // Tiny window to not show previous content when resumed Byond.winset(Byond.windowId, { + size: '1x1', + pos: '1,1', 'is-visible': false, }); setTimeout(() => focusMap()); diff --git a/tgui/packages/tgui/interfaces/AchievementsAdminPanel.tsx b/tgui/packages/tgui/interfaces/AchievementsAdminPanel.tsx new file mode 100644 index 000000000000..3c61c688bef4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/AchievementsAdminPanel.tsx @@ -0,0 +1,72 @@ +import { Button, LabeledList, NoticeBox, Section } from 'tgui-core/components'; +import { useBackend } from '../backend'; +import { Window } from '../layouts'; + +type Data = { + orphaned_keys: string[]; + archived_keys: string[]; +}; + +export const AchievementsAdminPanel = (props) => { + const { act, data } = useBackend(); + const { orphaned_keys } = data; + return ( + + +
+ + These achievements are present in the database but are missing + definitions in code. Most likely these were removed and can be + cleaned up safely. If you're sharing the same database on multiple + servers it's possible these come from a server with later version of + the code than this one. + + + {orphaned_keys.map((key) => ( + + act('archive', { key: key })} + > + Archive + + act('cleanup_orphan', { key: key })} + > + Cleanup + + + } + > + {key} + + ))} + +
+
+ Archived achievements in the database. + + {orphaned_keys.map((key) => ( + act('cleanup_orphan', { key: key })} + > + Cleanup + + } + > + {key} + + ))} + +
+
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Aquarium.tsx b/tgui/packages/tgui/interfaces/Aquarium.tsx index 2ab43d3fcdaa..cc6f75eec00e 100644 --- a/tgui/packages/tgui/interfaces/Aquarium.tsx +++ b/tgui/packages/tgui/interfaces/Aquarium.tsx @@ -44,7 +44,7 @@ type FishData = { fish_happiness: number; fish_icon: string; fish_icon_state: string; - fish_health: number; + fish_alive: BooleanLike; }; type PropData = { @@ -129,8 +129,8 @@ const FishInfo = (props: FishInfoProps) => { > {fish.fish_name} - 0 ? -4 : 1}> - {fish.fish_health > 0 ? ( + + {fish.fish_alive ? ( ) : ( diff --git a/tgui/packages/tgui/interfaces/Canvas.tsx b/tgui/packages/tgui/interfaces/Canvas.tsx index fbdcf022d349..dadd0cc202a1 100644 --- a/tgui/packages/tgui/interfaces/Canvas.tsx +++ b/tgui/packages/tgui/interfaces/Canvas.tsx @@ -89,9 +89,7 @@ class PaintCanvas extends Component { if (this.zoom !== this.props.zoom) { this.prepareCanvas(); this.syncCanvas(); - } - // eslint-disable-next-line max-len - else if ( + } else if ( (this.props.value !== undefined && JSON.stringify(this.baseImageData) !== JSON.stringify(fromDM(this.props.value))) || diff --git a/tgui/packages/tgui/interfaces/ChemPress.tsx b/tgui/packages/tgui/interfaces/ChemPress.tsx index 2a13ad1e3e50..df20028a1689 100644 --- a/tgui/packages/tgui/interfaces/ChemPress.tsx +++ b/tgui/packages/tgui/interfaces/ChemPress.tsx @@ -1,7 +1,7 @@ import { useState } from 'react'; import { - Box, Button, + ImageButton, Input, LabeledList, NumberInput, @@ -34,7 +34,7 @@ type Data = { packaging_type: string; }; -export const ChemPress = (props) => { +export const ChemPress = () => { const { act, data } = useBackend(); const { current_volume, @@ -52,7 +52,7 @@ export const ChemPress = (props) => { packaging_types.find((category) => category.cat_name === categoryName) || packaging_types[0]; return ( - +
@@ -60,10 +60,11 @@ export const ChemPress = (props) => { {packaging_types.map((category, i) => ( setCategoryName(category.cat_name)} - /> + > + {capitalizeAll(category.cat_name)} + ))} @@ -112,7 +113,9 @@ export const ChemPress = (props) => { {shownCategory.products.map((design, j) => ( - + /> ))} diff --git a/tgui/packages/tgui/interfaces/ControllerOverview/contants.ts b/tgui/packages/tgui/interfaces/ControllerOverview/contants.ts index 62953cc7dd0b..accad5034121 100644 --- a/tgui/packages/tgui/interfaces/ControllerOverview/contants.ts +++ b/tgui/packages/tgui/interfaces/ControllerOverview/contants.ts @@ -41,8 +41,8 @@ export const SORTING_TYPES: readonly SortType[] = [ inDeciseconds: true, }, { - label: 'Tick Overrun', - propName: 'tick_overrun', + label: 'Subsystem Overtime', + propName: 'overtime', inDeciseconds: true, }, ]; diff --git a/tgui/packages/tgui/interfaces/DetectiveBoard/Evidence.tsx b/tgui/packages/tgui/interfaces/DetectiveBoard/Evidence.tsx index dfbe54ae1cfa..e0e4125901c8 100644 --- a/tgui/packages/tgui/interfaces/DetectiveBoard/Evidence.tsx +++ b/tgui/packages/tgui/interfaces/DetectiveBoard/Evidence.tsx @@ -170,7 +170,7 @@ export function Evidence(props: Props) { {evidence.type === 'photo' ? ( ) : ( - // eslint-disable-next-line react/no-danger + // biome-ignore lint/security/noDangerouslySetInnerHtml: ignore
)} diff --git a/tgui/packages/tgui/interfaces/InstrumentEditor.tsx b/tgui/packages/tgui/interfaces/InstrumentEditor.tsx index 9f68ab52e460..d1e7b4936cd7 100644 --- a/tgui/packages/tgui/interfaces/InstrumentEditor.tsx +++ b/tgui/packages/tgui/interfaces/InstrumentEditor.tsx @@ -7,6 +7,8 @@ import { NumberInput, Section, Stack, + Input, + Tooltip, } from 'tgui-core/components'; import type { BooleanLike } from 'tgui-core/react'; @@ -14,6 +16,7 @@ import { useBackend } from '../backend'; import { Window } from '../layouts'; type Data = { + id: string; using_instrument: string; note_shift_min: number; note_shift_max: number; @@ -73,6 +76,7 @@ export const InstrumentEditor = (props) => { const InstrumentSettings = (props) => { const { act, data } = useBackend(); const { + id, playing, repeat, max_repeats, @@ -106,15 +110,37 @@ const InstrumentSettings = (props) => { return (
{lines.length > 0 && ( - + )} + + + + ID: + + + act('set_instrument_id', { id: value })} + /> + Repeats Left: { {sustain_mode_button}: {
{ } > - + - You are the {roleinfo.role} - {roleinfo.desc} + You are the {roleinfo.role} + {!!roleinfo.role_dead && ( + + You are currently dead. You may speak with the Chaplain at night, + if there is one. + + )} + {!roleinfo.role_dead && {roleinfo.desc}} { content = sanitizeText(content, /* advHtml = */ false); } - // eslint-disable-next-line react/no-danger + // biome-ignore lint/security/noDangerouslySetInnerHtml: ignore return
; }; diff --git a/tgui/packages/tgui/interfaces/Newspaper.tsx b/tgui/packages/tgui/interfaces/Newspaper.tsx index fca6f8772942..b92899f5bf2a 100644 --- a/tgui/packages/tgui/interfaces/Newspaper.tsx +++ b/tgui/packages/tgui/interfaces/Newspaper.tsx @@ -40,7 +40,7 @@ export const Newspaper = (props) => { return ( - + {current_page === channels.length + 1 ? ( ) : current_page ? ( diff --git a/tgui/packages/tgui/interfaces/NtosCard.tsx b/tgui/packages/tgui/interfaces/NtosCard.tsx index 542d4b5f45c5..133788d96c79 100644 --- a/tgui/packages/tgui/interfaces/NtosCard.tsx +++ b/tgui/packages/tgui/interfaces/NtosCard.tsx @@ -1,8 +1,9 @@ import { - Box, Button, Dropdown, + Flex, Input, + NoticeBox, NumberInput, Section, Stack, @@ -14,20 +15,29 @@ import { NtosWindow } from '../layouts'; import type { NTOSData } from '../layouts/NtosWindow'; import { AccessList } from './common/AccessList'; -type Data = { - access_on_card: Array; - accessFlagNames: Record; - accessFlags: Record; - hasTrim: BooleanLike; +type CardData = { + has_trim: BooleanLike; id_age: number; id_owner: string; id_rank: string; + trim_access: string[]; + access_on_card: Array; + trim_assignment: string | null; + wildcard_slots: Record; +}; + +type Data = { + modified_card: CardData | null; + auth_card: CardData | null; + authed_user: string | null; + is_holding_id: BooleanLike; + // static data + access_flag_names: Record; + access_flags: Record; regions: Region[]; - showBasic: BooleanLike; + show_basic: BooleanLike; templates: Record; - trimAccess: string[]; - wildcardFlags: Record; - wildcardSlots: Record; + wildcard_flags: Record; } & NTOSData; type Region = { @@ -58,62 +68,65 @@ export const NtosCard = (props) => { export const NtosCardContent = (props) => { const { act, data } = useBackend(); const { - access_on_card = [], - accessFlagNames, - accessFlags, - authenticatedUser, - has_id, - regions = [], - showBasic, - templates = {}, - trimAccess, - wildcardFlags, - wildcardSlots, - hasTrim, + authed_user, + modified_card, + templates, + regions, + wildcard_flags, + access_flags, + access_flag_names, + show_basic, } = data; return ( - <> - - - + + + + + + + + + + + + {!!modified_card && !!authed_user && ( + +
+ } + > + {modified_card.has_trim ? ( + + ) : ( + 'Templates require a trim already applied to the card. Please use an ID Painter to apply a trim.' + )} +
-
- {!!has_id && !!authenticatedUser && ( -
- } - > - {hasTrim ? ( - - ) : ( - 'Templates require a trim already applied to the card. Please use an ID Painter to apply a trim.' - )} -
)} - - - {!!has_id && !!authenticatedUser && ( - + + + + {!!modified_card && !!authed_user && ( { }) } /> - - )} + )} + + +
+
+ ); +}; + +const LoginPage = () => { + const { act, data } = useBackend(); + const { authed_user, auth_card, is_holding_id } = data; + + return ( +
+ + + + {authed_user + ? `Login: ${authed_user}` + : 'Please log in to continue.'} + + + + + + + + + + + - +
); }; const IdCardPage = (props) => { const { act, data } = useBackend(); - const { authenticatedUser, id_rank, id_owner, has_id, id_age, authIDName } = - data; + const { authed_user, auth_card, modified_card, is_holding_id } = data; return ( -
- - - - Login: {authenticatedUser || '-----'} + + + + + + + + - {!!(has_id && authenticatedUser) && ( + {!!(modified_card && authed_user) && ( <> Details: act('PRG_edit', { name: value, @@ -197,7 +253,7 @@ const IdCardPage = (props) => { { act('PRG_assign', { assignment: value, diff --git a/tgui/packages/tgui/interfaces/NtosCivCargoHoldTerminal.jsx b/tgui/packages/tgui/interfaces/NtosCivCargoHoldTerminal.jsx new file mode 100644 index 000000000000..0c3658654956 --- /dev/null +++ b/tgui/packages/tgui/interfaces/NtosCivCargoHoldTerminal.jsx @@ -0,0 +1,138 @@ +import { + Box, + Button, + Flex, + LabeledList, + NoticeBox, + Section, +} from 'tgui-core/components'; + +import { useBackend } from '../backend'; +import { NtosWindow } from '../layouts'; + +export const NtosCivCargoHoldTerminal = (props) => { + const { act, data } = useBackend(); + const { status_report, id_inserted, id_bounty_info, picking } = data; + const in_text = 'Welcome valued employee.'; + const out_text = 'To begin, insert your ID into the console.'; + return ( + + + + + + {id_inserted ? in_text : out_text} + +
act('bounty')} + /> + } + > + + + {status_report} + + +
+ {picking ? : } +
+
+
+
+ ); +}; + +const BountyTextBox = (props) => { + const { data } = useBackend(); + const { id_bounty_info, id_bounty_value, id_bounty_num } = data; + const na_text = 'N/A, please add a new bounty.'; + return ( +
+ + + {id_bounty_info ? id_bounty_info : na_text} + + + {id_bounty_info ? id_bounty_num : 'N/A'} + + + {id_bounty_info ? id_bounty_value : 'N/A'} + + +
+ ); +}; + +const BountyPickBox = (props) => { + const { act, data } = useBackend(); + const { id_bounty_names, id_bounty_infos, id_bounty_values } = data; + return ( +
+ + + + + + + + + + + +
+ ); +}; + +const BountyPickButton = (props) => { + return ( + + ); +}; diff --git a/tgui/packages/tgui/interfaces/NtosPortraitPrinter.jsx b/tgui/packages/tgui/interfaces/NtosPortraitPrinter.jsx index 4e817f3bb532..101d77113e28 100644 --- a/tgui/packages/tgui/interfaces/NtosPortraitPrinter.jsx +++ b/tgui/packages/tgui/interfaces/NtosPortraitPrinter.jsx @@ -15,7 +15,7 @@ import { NtosWindow } from '../layouts'; export const NtosPortraitPrinter = (props) => { const { act, data } = useBackend(); const [listIndex, setListIndex] = useState(0); - const { paintings, search_string, search_mode } = data; + const { paintings, search_string, search_mode, is_console } = data; const got_paintings = !!paintings.length; const current_portrait_title = got_paintings && paintings[listIndex].title; const current_portrait_author = @@ -113,8 +113,8 @@ export const NtosPortraitPrinter = (props) => {